summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ecs.cpp13
-rw-r--r--src/ecs.hpp2
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 */