67 template<
typename Component>
87 template<
typename T,
typename...
Args>
127 template<
typename...
Ts>
132 template<
typename...
Ts>
138 template<
typename...
Args>
Definition EntityManager.hpp:83
int get_entity_count() const
Definition EntityManager.hpp:112
std::vector< u32 > m_free_list
Definition EntityManager.hpp:160
bool has_component_pool()
int get_alive_entity_count() const
Definition EntityManager.hpp:113
bool is_alive(Entity e) const
Definition EntityManager.inl:242
Entity create()
Definition EntityManager.inl:192
void serialize(Serializer &s) const override
Definition EntityManager.inl:251
std::tuple< const Components &... > get_component_group(Entity e) const
std::vector< u32 > m_generations
Definition EntityManager.hpp:159
std::bitset< 256 > ComponentMask
Definition EntityManager.hpp:164
const T & get_component(Entity e) const
void ValidateInvariants() const
Definition EntityManager.hpp:174
bool has_component(Entity e) const
u32 pop_free_list()
Definition EntityManager.inl:245
std::tuple< Components &... > get_component_group(Entity e)
T * add_component(Entity e, Args &&... args)
bool try_remove_component(Entity e)
void destroy(Entity e)
Definition EntityManager.inl:206
T * try_get_component(Entity e)
SparseEntitySet< T > * get_component_pool()
void deserialize(Serializer &s) override
Definition EntityManager.inl:306
SparseEntitySet< ComponentMask > m_entity_masks
Definition EntityManager.hpp:165
T & get_component(Entity e)
See TryGetComponent for safe pointer version.
std::vector< std::unique_ptr< SparseEntitySetBase > > m_component_pools
Definition EntityManager.hpp:162
std::vector< ComponentDebugInfo > get_all_component_info(Entity e) const
Definition EntityManager.inl:228
Definition RuntimeStateManager.hpp:24
Definition serialization.hpp:16
Definition serialization.hpp:36
Definition SparseEntitySet.hpp:42
const std::vector< Entity > & get_dense_entities() const
Definition SparseEntitySet.hpp:90
usize size() const
Definition SparseEntitySet.hpp:92
Definition EntityManager.hpp:27
Iterator begin()
Definition EntityManager.inl:43
void check_size(usize &minSize)
const std::vector< Entity > * m_smallest_pool
Definition EntityManager.hpp:29
Iterator end()
Definition EntityManager.inl:52
EntityManager & m_manager
Definition EntityManager.hpp:28
Definition Application.hpp:28
Definition component_registration.hpp:44
Definition EntityManager.hpp:124
static constexpr bool is_group
Definition EntityManager.hpp:125
Definition EntityManager.hpp:33
bool is_valid() const
Definition EntityManager.inl:36
bool operator==(const Iterator &other) const
Definition EntityManager.hpp:47
EntityManager & manager
Definition EntityManager.hpp:34
std::forward_iterator_tag iterator_category
Definition EntityManager.hpp:38
std::tuple< Entity, Components &... > value_type
Definition EntityManager.hpp:39
void next()
Definition EntityManager.inl:28
value_type reference
Definition EntityManager.hpp:42
Iterator & operator++()
Definition EntityManager.inl:17
usize index
Definition EntityManager.hpp:36
const std::vector< Entity > * entities
Definition EntityManager.hpp:35
std::ptrdiff_t difference_type
Definition EntityManager.hpp:40
bool operator!=(const Iterator &other) const
Definition EntityManager.hpp:51
void pointer
Definition EntityManager.hpp:41
std::tuple< Entity, Components &... > operator*() const
Definition EntityManager.inl:22
std::uint32_t u32
Definition types.hpp:15
constexpr T g_type_max
Definition types.hpp:21
std::size_t usize
Definition types.hpp:18