From 0367826f1666c7b34e597d86a60bef3b12a71eef Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Thu, 10 Dec 2015 10:17:18 +0100 Subject: [PATCH] Added RaptorCopter example system --- assets | 2 +- include/Game/Game.h | 1 + include/Game/RaptorCopterSystem.h | 16 ++++ resources/Schema/Components.xsd | 1 + resources/Schema/Components/RaptorCopter.xml | 4 + resources/Schema/Components/RaptorCopter.xsd | 14 +++ resources/Schema/Entities/Test.xml | 93 ++++++++++++-------- resources/Schema/Types/Entity.xsd | 1 + src/Game/Game.cpp | 1 + 9 files changed, 95 insertions(+), 38 deletions(-) create mode 100644 include/Game/RaptorCopterSystem.h create mode 100644 resources/Schema/Components/RaptorCopter.xml create mode 100644 resources/Schema/Components/RaptorCopter.xsd diff --git a/assets b/assets index 8a7ecf53..b3746822 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 8a7ecf53f7ad7b8c36d778d0927fd77f7c6f6db0 +Subproject commit b37468222e45ec0b2116f1543c578cb9784d43f2 diff --git a/include/Game/Game.h b/include/Game/Game.h index d52bc8cb..500ecf3a 100644 --- a/include/Game/Game.h +++ b/include/Game/Game.h @@ -12,6 +12,7 @@ #include "Core/EKeyDown.h" #include "Core/EntityXMLFile.h" #include "Core/SystemPipeline.h" +#include "RaptorCopterSystem.h" class Game { diff --git a/include/Game/RaptorCopterSystem.h b/include/Game/RaptorCopterSystem.h new file mode 100644 index 00000000..55647004 --- /dev/null +++ b/include/Game/RaptorCopterSystem.h @@ -0,0 +1,16 @@ +#include "Common.h" +#include "Core/System.h" + +class RaptorCopterSystem : public System +{ +public: + RaptorCopterSystem(const EventBroker* eventBroker) + : System(eventBroker, "RaptorCopter") + { } + + virtual void Update(World* world, ComponentWrapper& raptorCopter, double dt) override + { + ComponentWrapper& transform = world->GetComponent(raptorCopter.EntityID, "Transform"); + (glm::vec3&)transform["Orientation"] += (float)(double)raptorCopter["Speed"] * (float)dt * (glm::vec3)raptorCopter["Axis"]; + } +}; \ No newline at end of file diff --git a/resources/Schema/Components.xsd b/resources/Schema/Components.xsd index 54896b69..d4160700 100644 --- a/resources/Schema/Components.xsd +++ b/resources/Schema/Components.xsd @@ -4,4 +4,5 @@ + \ No newline at end of file diff --git a/resources/Schema/Components/RaptorCopter.xml b/resources/Schema/Components/RaptorCopter.xml new file mode 100644 index 00000000..cc1ece52 --- /dev/null +++ b/resources/Schema/Components/RaptorCopter.xml @@ -0,0 +1,4 @@ + + 0 + + \ No newline at end of file diff --git a/resources/Schema/Components/RaptorCopter.xsd b/resources/Schema/Components/RaptorCopter.xsd new file mode 100644 index 00000000..23ee8a96 --- /dev/null +++ b/resources/Schema/Components/RaptorCopter.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/Schema/Entities/Test.xml b/resources/Schema/Entities/Test.xml index 4e7eafcf..2c3ea18e 100644 --- a/resources/Schema/Entities/Test.xml +++ b/resources/Schema/Entities/Test.xml @@ -37,57 +37,76 @@ - - Models/Core/UnitRaptor.obj - - + - - + + + + Models/Core/UnitRaptor.obj + + - - - - - Models/Core/UnitCube.obj - - - - - - - - - + - - Models/Core/UnitCube.obj - - - - - - - - - - - - - Models/Core/UnitCube.obj - - + + 20 + + + + + + + + + + + Models/Core/UnitCylinder.obj + + + + + + + + + + + + + Models/Core/UnitCube.obj + + + + + + + + + + + + + Models/Core/UnitCube.obj + + + + + diff --git a/resources/Schema/Types/Entity.xsd b/resources/Schema/Types/Entity.xsd index 49d0f895..695ae7d1 100644 --- a/resources/Schema/Types/Entity.xsd +++ b/resources/Schema/Types/Entity.xsd @@ -13,6 +13,7 @@ + diff --git a/src/Game/Game.cpp b/src/Game/Game.cpp index efa8c4b7..15dde3a0 100644 --- a/src/Game/Game.cpp +++ b/src/Game/Game.cpp @@ -44,6 +44,7 @@ Game::Game(int argc, char* argv[]) // Create system pipeline m_SystemPipeline = new SystemPipeline(m_EventBroker); + m_SystemPipeline->AddSystem(); m_LastTime = glfwGetTime();