summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-10-04 16:00:31 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-10-04 16:00:31 -0400
commit807a5db33b28b984c39364b33ec1248c38411e63 (patch)
tree0d979de97df9c69475525fe7cbe6bbf0362050ec
parent70b9cc994d084ea486b28d3e33415ba7e109bf6e (diff)
get instance buckets from ECS
-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 */