16template<
typename ExtraComponents>
19template<
typename ExtraComponents = ComponentGroup<>,
typename... Components>
59 template<
typename Component>
63template<
typename ExtraComponents>
71 "Duplicate component type in ECS schema");
74 template<
typename T,
typename...
Args>
120 template<
typename... Ts>
126 template<
typename... Ts>
132 template<
typename...
Args>
Definition Application.hpp:22
typename ConcatComponentGroups< A, B >::type ConcatComponentGroups_t
Definition component_registration.hpp:30
Definition arena_vec.hpp:6
U64 count
Definition arena_vec.hpp:8
void clear()
Definition arena_vec.hpp:22
void clear(this Arena &arena)
Definition arena.cpp:242
Definition component_registration.hpp:12
Definition component_registration.hpp:19
Definition EntityManager.hpp:116
static constexpr bool is_group
Definition EntityManager.hpp:117
Definition EntityManager.hpp:64
ArenaVec< U32 > m_free_list
Definition EntityManager.hpp:154
const T & get_component(Entity e) const
T * add_component(Entity e, Args &&... args)
void serialize(Serializer &s) const
Definition EntityManager.inl:279
ArenaVec< U32 > m_generations
Definition EntityManager.hpp:153
bool is_alive(Entity e) const
Definition EntityManager.inl:267
std::tuple< Components &... > get_component_group(Entity e)
std::tuple< const Components &... > get_component_group(Entity e) const
SparseEntitySet< ComponentMask > m_entity_masks
Definition EntityManager.hpp:159
Entity create()
Definition EntityManager.inl:234
int get_entity_count() const
Definition EntityManager.hpp:104
ArenaVec< ComponentPoolNode > m_component_pools
Definition EntityManager.hpp:156
std::bitset< 256 > ComponentMask
Definition EntityManager.hpp:158
int get_alive_entity_count() const
Definition EntityManager.hpp:105
bool has_component(Entity e) const
U32 pop_free_list()
Definition EntityManager.inl:272
void deserialize(Serializer &s)
Definition EntityManager.inl:335
Arena * m_pool_arena
Definition EntityManager.hpp:150
void destroy(Entity e)
Definition EntityManager.inl:249
T * try_get_component(Entity e)
SparseEntitySet< T > * get_component_pool()
ConcatComponentGroups_t< components::EngineComponents, ExtraComponents > all_components
Definition EntityManager.hpp:65
bool has_component_pool()
bool try_remove_component(Entity e)
T & get_component(Entity e)
void clear()
Definition EntityManager.hpp:94
Definition component_registration.hpp:33
Definition RuntimeStateManager.hpp:24
Definition serialization.hpp:38
Definition SparseEntitySet.hpp:12
const ArenaVec< Entity > & get_dense_entities() const
Definition SparseEntitySet.hpp:130
void clear()
Definition SparseEntitySet.hpp:134
USize size() const
Definition SparseEntitySet.hpp:132
Definition EntityManager.hpp:29
std::ptrdiff_t difference_type
Definition EntityManager.hpp:36
bool is_valid() const
Definition EntityManager.inl:44
Iterator & operator++()
Definition EntityManager.inl:21
manager_type & manager
Definition EntityManager.hpp:30
void next()
Definition EntityManager.inl:35
std::forward_iterator_tag iterator_category
Definition EntityManager.hpp:34
bool operator==(const Iterator &other) const
Definition EntityManager.hpp:43
USize index
Definition EntityManager.hpp:32
bool operator!=(const Iterator &other) const
Definition EntityManager.hpp:47
value_type reference
Definition EntityManager.hpp:38
const ArenaVec< Entity > * entities
Definition EntityManager.hpp:31
std::tuple< Entity, Components &... > operator*() const
Definition EntityManager.inl:28
void pointer
Definition EntityManager.hpp:37
std::tuple< Entity, Components &... > value_type
Definition EntityManager.hpp:35
Definition EntityManager.hpp:20
manager_type & m_manager
Definition EntityManager.hpp:24
const ArenaVec< Entity > * m_smallest_pool
Definition EntityManager.hpp:25
void check_size(USize &minSize)
Iterator end()
Definition EntityManager.inl:64
Iterator begin()
Definition EntityManager.inl:53
ConcatComponentGroups_t< components::EngineComponents, ExtraComponents > all_components
Definition EntityManager.hpp:22
consteval U64 type_id_of()
Definition type_id.hpp:6
std::uint32_t U32
Definition types.hpp:15
std::size_t USize
Definition types.hpp:18
std::uint64_t U64
Definition types.hpp:16