diff options
Diffstat (limited to 'src/ecs.hpp')
| -rw-r--r-- | src/ecs.hpp | 17 |
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 */ |
