summaryrefslogtreecommitdiff
path: root/src/ecs.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ecs.hpp')
-rw-r--r--src/ecs.hpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/ecs.hpp b/src/ecs.hpp
index d37ff57..a777a4a 100644
--- a/src/ecs.hpp
+++ b/src/ecs.hpp
@@ -4,22 +4,25 @@
#include "dynamic-array.hpp"
#include "macros.hpp"
#include "memory.hpp"
+#include "components.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;
-};
+static struct {
+ uint64_t Entity = 1ULL << 0;
+ uint64_t GrBinds = 1ULL << 1;
+} ComponentTypes;
void ECS_Init();
void ECS_Tick(double delta);
EntityHandle ECS_CreateEntity(EntityHandle parentEntityHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}});
void ECS_MarkForRemoval(EntityHandle entityHandle);
+CompGrBinds &ECS_CreateGrBinds(EntityHandle entHandle);
+CompGrBinds *ECS_GetGrBinds(EntityHandle entHandle);
+uint64_t ECS_GetGrBinds_BucketCount();
+CompGrBinds *ECS_GetGrBinds(uint64_t bucketIndex, uint64_t &itemCount);
+
#endif /* PKE_ECS_HPP */