diff options
Diffstat (limited to 'src/crepe/system')
-rw-r--r-- | src/crepe/system/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/crepe/system/ParticleSystem.cpp | 5 | ||||
-rw-r--r-- | src/crepe/system/ParticleSystem.h | 15 | ||||
-rw-r--r-- | src/crepe/system/PhysicsSystem.cpp | 2 | ||||
-rw-r--r-- | src/crepe/system/PhysicsSystem.h | 12 | ||||
-rw-r--r-- | src/crepe/system/ScriptSystem.h | 3 |
6 files changed, 23 insertions, 20 deletions
diff --git a/src/crepe/system/CMakeLists.txt b/src/crepe/system/CMakeLists.txt index 9ee12f6..2fb58dc 100644 --- a/src/crepe/system/CMakeLists.txt +++ b/src/crepe/system/CMakeLists.txt @@ -1,8 +1,8 @@ target_sources(crepe PUBLIC System.cpp - # ParticleSystem.cpp + ParticleSystem.cpp ScriptSystem.cpp - # PhysicsSystem.cpp + PhysicsSystem.cpp # CollisionSystem.cpp # RenderSystem.cpp # AnimatorSystem.cpp @@ -11,7 +11,7 @@ target_sources(crepe PUBLIC target_sources(crepe PUBLIC FILE_SET HEADERS FILES System.h ScriptSystem.h - # PhysicsSystem.h + PhysicsSystem.h # CollisionSystem.h # RenderSystem.h # AnimatorSystem.h diff --git a/src/crepe/system/ParticleSystem.cpp b/src/crepe/system/ParticleSystem.cpp index 397b586..64fee4e 100644 --- a/src/crepe/system/ParticleSystem.cpp +++ b/src/crepe/system/ParticleSystem.cpp @@ -8,10 +8,8 @@ using namespace crepe; -ParticleSystem::ParticleSystem() : elapsed_time(0.0f) {} - void ParticleSystem::update() { - ComponentManager & mgr = ComponentManager::get_instance(); + ComponentManager & mgr = this->component_manager; std::vector<std::reference_wrapper<ParticleEmitter>> emitters = mgr.get_components_by_type<ParticleEmitter>(); float delta_time = 0.10; @@ -60,3 +58,4 @@ void ParticleSystem::emit_particle(ParticleEmitter & emitter) { } } } + diff --git a/src/crepe/system/ParticleSystem.h b/src/crepe/system/ParticleSystem.h index 3ac1d3f..f171c62 100644 --- a/src/crepe/system/ParticleSystem.h +++ b/src/crepe/system/ParticleSystem.h @@ -2,17 +2,22 @@ #include "../api/ParticleEmitter.h" +#include "System.h" + namespace crepe { -class ParticleSystem { +class ParticleSystem : public System { public: - ParticleSystem(); - void update(); + using System::System; + void update() override; private: - void emit_particle(ParticleEmitter & emitter); //emits a new particle + //! Emits a new particle + void emit_particle(ParticleEmitter & emitter); - float elapsed_time; //elapsed time since the last emission + //! Elapsed time since the last emission + float elapsed_time = 0.0; + // TODO: to std::chrono::duration }; } // namespace crepe diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp index eb54ad3..da79707 100644 --- a/src/crepe/system/PhysicsSystem.cpp +++ b/src/crepe/system/PhysicsSystem.cpp @@ -11,7 +11,7 @@ using namespace crepe; void PhysicsSystem::update() { - ComponentManager & mgr = ComponentManager::get_instance(); + ComponentManager & mgr = this->component_manager; std::vector<std::reference_wrapper<Rigidbody>> rigidbodies = mgr.get_components_by_type<Rigidbody>(); std::vector<std::reference_wrapper<Transform>> transforms diff --git a/src/crepe/system/PhysicsSystem.h b/src/crepe/system/PhysicsSystem.h index cc13b70..5433a0f 100644 --- a/src/crepe/system/PhysicsSystem.h +++ b/src/crepe/system/PhysicsSystem.h @@ -1,24 +1,24 @@ #pragma once +#include "System.h" + namespace crepe { + /** * \brief System that controls all physics * * This class is a physics system that uses a rigidbody and transform * to add physics to a game object. */ -class PhysicsSystem { +class PhysicsSystem : public System { public: - /** - * Constructor is default - */ - PhysicsSystem() = default; + using System::System; /** * \brief updates the physics system. * * It calculates new velocties and changes the postion in the transform. */ - void update(); + void update() override; }; } // namespace crepe diff --git a/src/crepe/system/ScriptSystem.h b/src/crepe/system/ScriptSystem.h index b52e825..b0b4185 100644 --- a/src/crepe/system/ScriptSystem.h +++ b/src/crepe/system/ScriptSystem.h @@ -7,12 +7,11 @@ namespace crepe { class Script; -class BehaviorScript; class ScriptSystem : public System { public: using System::System; - void update(); + void update() override; private: std::forward_list<std::reference_wrapper<Script>> get_scripts(); |