diff options
| -rw-r--r-- | src/ecs.cpp | 13 | ||||
| -rw-r--r-- | src/ecs.hpp | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp index 9458506..03596f3 100644 --- a/src/ecs.cpp +++ b/src/ecs.cpp @@ -379,3 +379,16 @@ void ECS_UpdateInstance(EntityHandle entHandle, const InstPos &instPos) { inst->instPos.scale = instPos.scale; inst->isNeedingUpdated = true; } + +uint64_t ECS_GetInstances_BucketCount() { + return Comp_Instance_BucketContainer.bucketCounter + 1; +} + +CompInstance *ECS_GetInstances(uint64_t bucketIndex, uint64_t &itemCount) { + if (bucketIndex == Comp_Instance_BucketContainer.bucketCounter) { + itemCount = Comp_Instance_BucketContainer.itemCounter >> 32; + } else { + itemCount = maxBucketItemCount; + } + return Comp_Instance_BucketContainer.buckets[bucketIndex].instances; +} diff --git a/src/ecs.hpp b/src/ecs.hpp index 685dd81..a7fd2ac 100644 --- a/src/ecs.hpp +++ b/src/ecs.hpp @@ -32,5 +32,7 @@ CompGrBinds *ECS_GetGrBinds(uint64_t bucketIndex, uint64_t &itemCount); CompInstance &ECS_CreateInstance(EntityHandle entHandle, EntityHandle entityTypeEntityHandle); CompInstance *ECS_GetInstance(EntityHandle entHandle); void ECS_UpdateInstance(EntityHandle entHandle, const InstPos &instPos); +uint64_t ECS_GetInstances_BucketCount(); +CompInstance *ECS_GetInstances(uint64_t bucketIndex, uint64_t &itemCount); #endif /* PKE_ECS_HPP */ |
