diff options
| -rw-r--r-- | src/ecs.cpp | 9 | ||||
| -rw-r--r-- | src/ecs.hpp | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp index 14f19c2..25dcb45 100644 --- a/src/ecs.cpp +++ b/src/ecs.cpp @@ -35,6 +35,15 @@ void ECS_Init() { Buckets_Init(Comp_Instance_BucketContainer); } +uint64_t ECS_GetEntities_BucketCount() { + return Entities_BucketContainer.bucketCounter; +} +Entity *ECS_GetEntities(uint64_t bucketIndex, uint64_t &itemCount) { + assert(bucketIndex <= Entities_BucketContainer.bucketCounter); + itemCount = bucketIndex == Entities_BucketContainer.bucketCounter ? Entities_BucketContainer.itemCounter : maxBucketItemCount; + return Entities_BucketContainer.buckets[bucketIndex].entities; +} + EntityHandle ECS_CreateEntity_Inner(EntityHandle parentEntHandle) { EntityHandle_T entityHandle_T{Buckets_NewHandle<EntityBucket>(maxBucketItemCount, Entities_BucketContainer)}; EntityHandle entityHandle{entityHandle_T}; diff --git a/src/ecs.hpp b/src/ecs.hpp index baebef3..1dd8d57 100644 --- a/src/ecs.hpp +++ b/src/ecs.hpp @@ -19,6 +19,8 @@ void ECS_Init(); void ECS_Tick(double delta); EntityHandle ECS_CreateEntity(EntityHandle parentEntHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}); void ECS_MarkForRemoval(EntityHandle entHandle); +uint64_t ECS_GetEntities_BucketCount(); +Entity *ECS_GetEntities(uint64_t bucketIndex, uint64_t &itemCount); CompGrBinds &ECS_CreateGrBinds(EntityHandle entHandle); CompGrBinds *ECS_GetGrBinds(EntityHandle entHandle); |
