aboutsummaryrefslogtreecommitdiff
path: root/mwe/ecs-homemade/inc/Components.h
diff options
context:
space:
mode:
authorjaroWMR <jarorutjes07@gmail.com>2024-10-20 13:07:02 +0200
committerjaroWMR <jarorutjes07@gmail.com>2024-10-20 13:07:02 +0200
commit4ff1159fe5f6ee6dd8becc662bc95a93acda545a (patch)
tree670caa42ad4ffbf007a6d7cba683f4f84af87592 /mwe/ecs-homemade/inc/Components.h
parent0f03cdbf23f57116b7664a7c98c4605fd69bb961 (diff)
parent77555730e3ddb811b9ce8470659663e3f1573de2 (diff)
Merge branch 'master' of github.com:lonkaars/crepe into jaro/poc-physics
Diffstat (limited to 'mwe/ecs-homemade/inc/Components.h')
-rw-r--r--mwe/ecs-homemade/inc/Components.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/mwe/ecs-homemade/inc/Components.h b/mwe/ecs-homemade/inc/Components.h
index 98c5fe7..ad491e7 100644
--- a/mwe/ecs-homemade/inc/Components.h
+++ b/mwe/ecs-homemade/inc/Components.h
@@ -1,5 +1,6 @@
#pragma once
+#include <memory>
#include <string>
class Component {
@@ -31,3 +32,35 @@ public:
int mSize;
};
+
+class IBehaviour {
+public:
+ virtual ~IBehaviour() = default;
+ virtual void onStart() = 0;
+ virtual void onUpdate() = 0;
+};
+
+template <typename T>
+class BehaviourWrapper : public IBehaviour {
+public:
+ BehaviourWrapper();
+ void onStart() override;
+ void onUpdate() override;
+
+private:
+ T instance;
+};
+
+class BehaviourScript : public Component {
+public:
+ template <typename T>
+ void addScript();
+
+ void onStart();
+ void onUpdate();
+
+private:
+ std::unique_ptr<IBehaviour> behaviour;
+};
+
+#include "Components.hpp"