summaryrefslogtreecommitdiff
path: root/src/ecs.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ecs.hpp')
-rw-r--r--src/ecs.hpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/ecs.hpp b/src/ecs.hpp
new file mode 100644
index 0000000..d37ff57
--- /dev/null
+++ b/src/ecs.hpp
@@ -0,0 +1,25 @@
+#ifndef PKE_ECS_HPP
+#define PKE_ECS_HPP
+
+#include "dynamic-array.hpp"
+#include "macros.hpp"
+#include "memory.hpp"
+
+#include "glm/vec3.hpp"
+
+TypeSafeInt_H(EntityHandle, uint64_t, UINT64_MAX);
+
+extern DynArray<EntityHandle> EntitiesToBeRemoved;
+
+struct Entity {
+ EntityHandle handle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}};
+ EntityHandle parentHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}};
+ bool isMarkedForRemoval = false;
+};
+
+void ECS_Init();
+void ECS_Tick(double delta);
+EntityHandle ECS_CreateEntity(EntityHandle parentEntityHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}});
+void ECS_MarkForRemoval(EntityHandle entityHandle);
+
+#endif /* PKE_ECS_HPP */