From fbeb1fb9a6c438e6bfbc02db37b2706cbfb1c7ba Mon Sep 17 00:00:00 2001 From: Stiffly Date: Wed, 9 Sep 2015 18:42:08 +0200 Subject: [PATCH] Simple HelloWorld Event for understanding. --- include/Core/Engine.h | 32 +++++++++++++++++++------------- include/Core/Sound.h | 23 ++++++++++++++++++++--- include/Core/World.h | 2 +- src/game/Core/Sound.cpp | 18 ++++++++++++++++-- src/game/Core/World.cpp | 2 ++ 5 files changed, 58 insertions(+), 19 deletions(-) diff --git a/include/Core/Engine.h b/include/Core/Engine.h index 8b16650..4f5c061 100644 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -33,6 +33,7 @@ #include "Rendering/CModel.h" #include "CTemplate.h" #include "Transform/TransformSystem.h" +#include "Core/Sound.h" namespace dd { @@ -42,24 +43,26 @@ class Engine public: Engine(int argc, char* argv[]) { -// m_EventBroker = std::make_shared(); + m_EventBroker = std::make_shared(); m_Renderer = std::make_shared(); m_Renderer->SetFullscreen(false); m_Renderer->SetResolution(Rectangle(0, 0, 1280, 720)); m_Renderer->Initialize(); -// m_InputManager = std::make_shared(m_Renderer->Window(), m_EventBroker); + m_InputManager = std::make_shared(m_Renderer->Window(), m_EventBroker); // -// m_World = std::make_shared(m_EventBroker); + m_World = std::make_shared(m_EventBroker); // -// //TODO: Move this out of engine.h -// m_World->ComponentFactory.Register(); -// m_World->SystemFactory.Register([this]() { return new Systems::TransformSystem(m_World.get(), m_EventBroker); }); -// m_World->AddSystem(); -// m_World->ComponentFactory.Register(); -// m_World->ComponentFactory.Register(); -// m_World->Initialize(); + //TODO: Move this out of engine.h + m_World->ComponentFactory.Register(); + m_World->SystemFactory.Register([this]() { return new Systems::TransformSystem(m_World.get(), m_EventBroker); }); + m_World->SystemFactory.Register([this]() {return new Systems::Sound(m_World.get(), m_EventBroker); }); + m_World->AddSystem(); + m_World->AddSystem(); + m_World->ComponentFactory.Register(); + m_World->ComponentFactory.Register(); + m_World->Initialize(); // auto ent = m_World->CreateEntity(); // std::shared_ptr transform = m_World->AddComponent(ent); @@ -82,9 +85,9 @@ public: // ResourceManager::Update(); // // // Update input -// m_InputManager->Update(dt); + m_InputManager->Update(dt); // -// m_World->Update(dt); + m_World->Update(dt); // // if (glfwGetKey(m_Renderer->Window(), GLFW_KEY_R)) { // ResourceManager::Reload("Shaders/Deferred/3/Fragment.glsl"); @@ -98,7 +101,7 @@ public: m_Renderer->Draw(m_RendererQueue); // Swap event queues -// m_EventBroker->Clear(); + m_EventBroker->Clear(); glfwPollEvents(); } @@ -175,6 +178,9 @@ private: std::shared_ptr m_InputManager; std::shared_ptr m_World; + //TODO: Delete this please + std::shared_ptr m_Sound; + double m_LastTime; }; diff --git a/include/Core/Sound.h b/include/Core/Sound.h index c86a859..943422b 100644 --- a/include/Core/Sound.h +++ b/include/Core/Sound.h @@ -5,15 +5,32 @@ #ifndef DAYDREAM_SOUND_H #define DAYDREAM_SOUND_H +#include "Core/EKeyDown.h" +#include "Core/EventBroker.h" +#include "Core/System.h" +#include "Core/World.h" + namespace dd { -class Sound +namespace Systems { +class Sound : public System { public: - void HelloWorld(); -private: + Sound(World *world, std::shared_ptr eventBroker) + : System(world, eventBroker) { EVENT_SUBSCRIBE_MEMBER(m_EKeyDown, &Sound::OnKeyDown); } + + void Init(); + + +private: + dd::EventRelay m_EKeyDown; + + bool OnKeyDown(const dd::Events::KeyDown &event); + + void HelloWorld(); }; } +} #endif //DAYDREAM_SOUND_H diff --git a/include/Core/World.h b/include/Core/World.h index b81f147..90340cb 100644 --- a/include/Core/World.h +++ b/include/Core/World.h @@ -36,6 +36,7 @@ #include "EventBroker.h" #include "EComponentCreated.h" #include "ResourceManager.h" +#include "Sound.h" namespace dd { @@ -248,7 +249,6 @@ protected: EntityID GenerateEntityID(); void RecycleEntityID(EntityID id); - }; template diff --git a/src/game/Core/Sound.cpp b/src/game/Core/Sound.cpp index 4c6f0ce..6b54ecc 100644 --- a/src/game/Core/Sound.cpp +++ b/src/game/Core/Sound.cpp @@ -1,9 +1,23 @@ // // Created by Adam on 2015-09-09. // +#include "PrecompiledHeader.h" #include "Core/Sound.h" -void dd::Sound::HelloWorld() +void dd::Systems::Sound::Init() { - std::cout << "Hej världen!" << std::endl; + +} + +void dd::Systems::Sound::HelloWorld() +{ + LOG_INFO("Hej världen!"); +} + +bool dd::Systems::Sound::OnKeyDown(const dd::Events::KeyDown &event) +{ + // #define GLFW_KEY_S 83 + if(event.KeyCode == 83){ + HelloWorld(); + } } diff --git a/src/game/Core/World.cpp b/src/game/Core/World.cpp index 6fc2b91..f0f7e8c 100644 --- a/src/game/Core/World.cpp +++ b/src/game/Core/World.cpp @@ -19,6 +19,8 @@ #include "PrecompiledHeader.h" #include "Core/World.h" +//TODO Delete this please + void dd::World::RecycleEntityID(EntityID id) { m_RecycledEntityIDs.push(id);