aboutsummaryrefslogtreecommitdiff
path: root/src/crepe
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe')
-rw-r--r--src/crepe/api/LoopManager.cpp14
-rw-r--r--src/crepe/system/AISystem.cpp6
-rw-r--r--src/crepe/system/AISystem.h14
-rw-r--r--src/crepe/system/CMakeLists.txt2
4 files changed, 35 insertions, 1 deletions
diff --git a/src/crepe/api/LoopManager.cpp b/src/crepe/api/LoopManager.cpp
index 7edf4d1..cd602d8 100644
--- a/src/crepe/api/LoopManager.cpp
+++ b/src/crepe/api/LoopManager.cpp
@@ -1,5 +1,6 @@
#include "../facade/SDLContext.h"
+#include "../system/AISystem.h"
#include "../system/AnimatorSystem.h"
#include "../system/CollisionSystem.h"
#include "../system/ParticleSystem.h"
@@ -20,6 +21,7 @@ LoopManager::LoopManager() {
this->load_system<PhysicsSystem>();
this->load_system<RenderSystem>();
this->load_system<ScriptSystem>();
+ this->load_system<AISystem>();
}
void LoopManager::process_input() {
@@ -51,6 +53,11 @@ void LoopManager::loop() {
this->render();
timer.enforce_frame_rate();
+
+ // Stop the game after 5 seconds, for testing purposes
+ if (timer.get_current_time() > 5) {
+ this->game_running = false;
+ }
}
}
@@ -58,6 +65,7 @@ void LoopManager::setup() {
this->game_running = true;
LoopTimer::get_instance().start();
LoopTimer::get_instance().set_fps(200);
+ this->scene_manager.load_next_scene();
}
void LoopManager::render() {
@@ -66,4 +74,8 @@ void LoopManager::render() {
}
}
-void LoopManager::update() { LoopTimer & timer = LoopTimer::get_instance(); }
+void LoopManager::update() {
+ LoopTimer & timer = LoopTimer::get_instance();
+ this->get_system<AnimatorSystem>().update();
+ this->get_system<AISystem>().update();
+}
diff --git a/src/crepe/system/AISystem.cpp b/src/crepe/system/AISystem.cpp
new file mode 100644
index 0000000..012f4fa
--- /dev/null
+++ b/src/crepe/system/AISystem.cpp
@@ -0,0 +1,6 @@
+#include "AISystem.h"
+#include <iostream>
+
+using namespace crepe;
+
+void AISystem::update() { std::cout << "AI System update" << std::endl; }
diff --git a/src/crepe/system/AISystem.h b/src/crepe/system/AISystem.h
new file mode 100644
index 0000000..4138e01
--- /dev/null
+++ b/src/crepe/system/AISystem.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include "System.h"
+
+namespace crepe {
+
+class AISystem : public System {
+public:
+ using System::System;
+
+ void update() override;
+};
+
+} // namespace crepe
diff --git a/src/crepe/system/CMakeLists.txt b/src/crepe/system/CMakeLists.txt
index d658b25..ca89d4d 100644
--- a/src/crepe/system/CMakeLists.txt
+++ b/src/crepe/system/CMakeLists.txt
@@ -6,6 +6,7 @@ target_sources(crepe PUBLIC
CollisionSystem.cpp
RenderSystem.cpp
AnimatorSystem.cpp
+ AISystem.cpp
)
target_sources(crepe PUBLIC FILE_SET HEADERS FILES
@@ -15,4 +16,5 @@ target_sources(crepe PUBLIC FILE_SET HEADERS FILES
CollisionSystem.h
RenderSystem.h
AnimatorSystem.h
+ AISystem.h
)