summaryrefslogtreecommitdiff
path: root/src/ecs.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-08-30 11:00:04 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-09-06 17:19:09 -0400
commitea218cad0ee862964e12bb7f15d442acb7de6c43 (patch)
treef9c15c073e2a60e957d6d6b74f5f991a28b222a9 /src/ecs.hpp
parent2bdb644e2f4f821a367713ad951369013be8b611 (diff)
first pass add ecs
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 */