aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/system')
-rw-r--r--src/crepe/system/CMakeLists.txt6
-rw-r--r--src/crepe/system/ParticleSystem.cpp5
-rw-r--r--src/crepe/system/ParticleSystem.h15
-rw-r--r--src/crepe/system/PhysicsSystem.cpp2
-rw-r--r--src/crepe/system/PhysicsSystem.h12
-rw-r--r--src/crepe/system/ScriptSystem.h3
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();