CSC3224_Computer_Games_Development / GameEngine / Engine_Physics / EnginePhysicsSystem.h
EnginePhysicsSystem.h
Raw
#pragma once
#include "../Engine_Messaging_System/EngineMessageSystem.h"
#include "../Engine_Graphics/Scene.h"
#include "../Engine_Common/Common.h"
#include "Box2D/Box2D/Dynamics/b2World.h"
#include "Box2D/Box2D/Dynamics/b2Body.h"
// Engine Physics System
class EnginePhysicsSystem : public EngineMessageSystem
{
public:
	explicit EnginePhysicsSystem(Scene& inputScene, b2Vec2 gravityFactor);
	void play(const sf::Time& elapsedTime) override;

	b2Body* createBody(b2BodyDef& bodyDefinition)
	{
		return physicsScene.CreateBody(&bodyDefinition);
	};
	void setContactListener(b2ContactListener* inputList);
	void clear();
	void recieveEngineMessage(const SystemMessage& inputMessage) override {}
	Profiler enginePhysicsSystemProfiler;
protected:
	b2World physicsScene;
};