From 807a5db33b28b984c39364b33ec1248c38411e63 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Wed, 4 Oct 2023 16:00:31 -0400 Subject: get instance buckets from ECS --- src/ecs.cpp | 13 +++++++++++++ src/ecs.hpp | 2 ++ 2 files changed, 15 insertions(+) (limited to 'src') 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 */ -- cgit v1.2.3