From 889e0bb3d35987e0887ea8e6baad2330a71872f8 Mon Sep 17 00:00:00 2001 From: stiffly Date: Tue, 15 Dec 2015 16:35:09 +0100 Subject: [PATCH] Cleaned up PlayerSystem. Sets velocity to 0 every frame. --- include/Game/PlayerSystem.h | 31 +------------------ src/Game/PlayerSystem.cpp | 62 ++----------------------------------- 2 files changed, 3 insertions(+), 90 deletions(-) diff --git a/include/Game/PlayerSystem.h b/include/Game/PlayerSystem.h index b722751c..aad6e3c5 100644 --- a/include/Game/PlayerSystem.h +++ b/include/Game/PlayerSystem.h @@ -6,45 +6,16 @@ #include "Common.h" #include "Core/System.h" -#include "Core/EventBroker.h" -#include "Core/EKeyDown.h" -#include "Core/EKeyUp.h" -#include "ECreatePlayer.h" - -struct KeyInput -{ - bool Forward = false; - bool Left = false; - bool Back = false; - bool Right = false; -}; class PlayerSystem : public PureSystem { public: PlayerSystem(EventBroker* eventBroker) : PureSystem(eventBroker, "Player") - { - EVENT_SUBSCRIBE_MEMBER(m_EKeyDown, &PlayerSystem::OnKeyDown); - EVENT_SUBSCRIBE_MEMBER(m_EKeyUp, &PlayerSystem::OnKeyUp); - EVENT_SUBSCRIBE_MEMBER(m_ECreatePlayer, &PlayerSystem::OnCreatePlayer); - } - + { } virtual void UpdateComponent(World* world, ComponentWrapper& player, double dt) override; - private: float m_Speed = 5; - glm::vec3 m_Direction; - KeyInput input; - bool ShouldCreatePlayer = false; - - void CreatePlayer(World * world, unsigned int& entityID); - EventRelay m_EKeyDown; - bool OnKeyDown(const Events::KeyDown &event); - EventRelay m_EKeyUp; - bool OnKeyUp(const Events::KeyUp &event); - EventRelay m_ECreatePlayer; - bool OnCreatePlayer(const Events::CreatePlayer &event); }; #endif \ No newline at end of file diff --git a/src/Game/PlayerSystem.cpp b/src/Game/PlayerSystem.cpp index 6be82702..02e7ab22 100644 --- a/src/Game/PlayerSystem.cpp +++ b/src/Game/PlayerSystem.cpp @@ -2,6 +2,7 @@ void PlayerSystem::UpdateComponent(World * world, ComponentWrapper & player, double dt) { + (glm::vec3)player["Velocity"] = glm::vec3(0.f); if (player["Forward"]) { ((glm::vec3&)player["Velocity"]).z = m_Speed * float(dt) * -1; } @@ -14,66 +15,7 @@ void PlayerSystem::UpdateComponent(World * world, ComponentWrapper & player, dou if (player["Right"]) { ((glm::vec3&)player["Velocity"]).x = m_Speed * float(dt); } + ComponentWrapper& transform = world->GetComponent(player.EntityID, "Transform"); (glm::vec3&)transform["Position"] += (glm::vec3)player["Velocity"]; - - //m_EventBroker->Process(); - - //// TODO Jag tror inte vi kan göra det vi vill i updaten. - //// om man lägger till parametrar och tar bort overriden så blir det kanske inte så kul? - //// aja, lycka till! - //if (ShouldCreatePlayer) { - // int entityID = world->CreateEntity(); - // ComponentWrapper transform = world->AttachComponent(entityID, "Transform"); - // transform["Position"] = glm::vec3(-1.5f, 0.f, 0.f); - // ComponentWrapper model = world->AttachComponent(entityID, "Model"); - // model["Resource"] = "Models/Core/UnitSphere.obj";//modelPath; // You fix this :) - // model["Color"] = glm::vec4(rand()%255 / 255.f, rand()%255 / 255.f, rand() %255 / 255.f, 1.f); - // ShouldCreatePlayer = false; - //} -} - -void PlayerSystem::CreatePlayer(World * world, unsigned int& entityID) -{ - -} - -bool PlayerSystem::OnKeyDown(const Events::KeyDown & event) -{ - if (event.KeyCode == GLFW_KEY_W) { - input.Forward = true; - } - if (event.KeyCode == GLFW_KEY_A) { - input.Left = true; - } - if (event.KeyCode == GLFW_KEY_S) { - input.Back = true; - } - if (event.KeyCode == GLFW_KEY_D) { - input.Right = true; - } - return true; -} - -bool PlayerSystem::OnKeyUp(const Events::KeyUp & event) -{ - if (event.KeyCode == GLFW_KEY_W) { - input.Forward = false; - } - if (event.KeyCode == GLFW_KEY_A) { - input.Left = false; - } - if (event.KeyCode == GLFW_KEY_S) { - input.Back = false; - } - if (event.KeyCode == GLFW_KEY_D) { - input.Right = false; - } - return false; -} - -bool PlayerSystem::OnCreatePlayer(const Events::CreatePlayer & event) -{ - ShouldCreatePlayer = true; - return false; }