diff --git a/libs/ecs/include/psemek/ecs/container.hpp b/libs/ecs/include/psemek/ecs/container.hpp index ca715d4d..2d5585b3 100644 --- a/libs/ecs/include/psemek/ecs/container.hpp +++ b/libs/ecs/include/psemek/ecs/container.hpp @@ -381,6 +381,8 @@ namespace psemek::ecs template std::size_t memory_usage(); + std::size_t entity_count(); + std::size_t cache_count(); std::size_t table_count(); diff --git a/libs/ecs/include/psemek/ecs/detail/entity_list.hpp b/libs/ecs/include/psemek/ecs/detail/entity_list.hpp index 4fc2febd..62300c80 100644 --- a/libs/ecs/include/psemek/ecs/detail/entity_list.hpp +++ b/libs/ecs/include/psemek/ecs/detail/entity_list.hpp @@ -32,6 +32,11 @@ namespace psemek::ecs::detail return entities_; } + std::size_t size() const + { + return entities_.size() - free_ids_.size(); + } + private: std::vector entities_; std::vector free_ids_; diff --git a/libs/ecs/source/container.cpp b/libs/ecs/source/container.cpp index 96fd665a..dd27db1a 100644 --- a/libs/ecs/source/container.cpp +++ b/libs/ecs/source/container.cpp @@ -116,6 +116,11 @@ namespace psemek::ecs } } + std::size_t container::entity_count() + { + return entity_list_.size(); + } + std::size_t container::cache_count() { return query_cache_container_.cache_count();