#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; };