Added a Initialize function for systems.
This commit is contained in:
@@ -15,10 +15,10 @@ public:
|
|||||||
, m_ComponentType(componentType)
|
, m_ComponentType(componentType)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
virtual void Initialize();
|
virtual void Initialize() { }
|
||||||
virtual void Update(World* world, ComponentWrapper& component, double dt) = 0;
|
virtual void Update(World* world, ComponentWrapper& component, double dt) = 0;
|
||||||
|
|
||||||
private:
|
protected:
|
||||||
std::string m_ComponentType;
|
std::string m_ComponentType;
|
||||||
EventBroker* m_EventBroker;
|
EventBroker* m_EventBroker;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,6 +21,16 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Initialize()
|
||||||
|
{
|
||||||
|
for (auto& pair : m_Systems) {
|
||||||
|
auto& systems = pair.second;
|
||||||
|
for (auto& system : systems) {
|
||||||
|
system->Initialize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T, typename... Arguments>
|
template <typename T, typename... Arguments>
|
||||||
void AddSystem(Arguments... args)
|
void AddSystem(Arguments... args)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,13 +17,12 @@ public:
|
|||||||
: System(eventBroker, "Player")
|
: System(eventBroker, "Player")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void Initialize();
|
virtual void Initialize();
|
||||||
virtual void Update(World* world, ComponentWrapper& player, double dt) override;
|
virtual void Update(World* world, ComponentWrapper& player, double dt) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float m_Speed;
|
float m_Speed;
|
||||||
glm::vec3 m_Direction;
|
glm::vec3 m_Direction;
|
||||||
EventBroker* m_EventBroker;
|
|
||||||
|
|
||||||
EventRelay<PlayerSystem, Events::KeyDown> m_EKeyDown;
|
EventRelay<PlayerSystem, Events::KeyDown> m_EKeyDown;
|
||||||
bool OnKeyDown(const Events::KeyDown &event);
|
bool OnKeyDown(const Events::KeyDown &event);
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ public:
|
|||||||
: System(eventBroker, "RaptorCopter")
|
: System(eventBroker, "RaptorCopter")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
virtual void Initialize() { }
|
||||||
|
|
||||||
virtual void Update(World* world, ComponentWrapper& raptorCopter, double dt) override
|
virtual void Update(World* world, ComponentWrapper& raptorCopter, double dt) override
|
||||||
{
|
{
|
||||||
ComponentWrapper& transform = world->GetComponent(raptorCopter.EntityID, "Transform");
|
ComponentWrapper& transform = world->GetComponent(raptorCopter.EntityID, "Transform");
|
||||||
|
|||||||
@@ -47,9 +47,13 @@ Game::Game(int argc, char* argv[])
|
|||||||
m_SystemPipeline->AddSystem<RaptorCopterSystem>();
|
m_SystemPipeline->AddSystem<RaptorCopterSystem>();
|
||||||
m_SystemPipeline->AddSystem<PlayerSystem>();
|
m_SystemPipeline->AddSystem<PlayerSystem>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
m_LastTime = glfwGetTime();
|
m_LastTime = glfwGetTime();
|
||||||
|
|
||||||
testIntialize();
|
testIntialize();
|
||||||
|
|
||||||
|
m_SystemPipeline->Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
Game::~Game()
|
Game::~Game()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ void PlayerSystem::Update(World * world, ComponentWrapper & player, double dt)
|
|||||||
|
|
||||||
bool PlayerSystem::OnKeyDown(const Events::KeyDown & event)
|
bool PlayerSystem::OnKeyDown(const Events::KeyDown & event)
|
||||||
{
|
{
|
||||||
if (event.KeyCode == GLFW_KEY_P) {
|
if (event.KeyCode == GLFW_KEY_UP) {
|
||||||
m_Direction.z == -1;
|
m_Direction.z == -1;
|
||||||
}
|
}
|
||||||
if (event.KeyCode == GLFW_KEY_LEFT) {
|
if (event.KeyCode == GLFW_KEY_LEFT) {
|
||||||
|
|||||||
Reference in New Issue
Block a user