SDEngine
Game Engine
Loading...
Searching...
No Matches
sd::EntityManager< ExtraComponents > Struct Template Reference

#include <EntityManager.hpp>

+ Collaboration diagram for sd::EntityManager< ExtraComponents >:

Classes

struct  UnpackGroup
 
struct  UnpackGroup< ComponentGroup< Ts... > >
 
struct  UnpackGroup< std::tuple< Ts... > >
 

Public Types

using all_components = ConcatComponentGroups_t< components::EngineComponents, ExtraComponents >
 
template<typename T >
using component_info = ComponentTraits< T, all_components >
 
using ComponentMask = std::bitset< 256 >
 

Public Member Functions

Entity create ()
 
template<typename T , typename... Args>
T * add_component (Entity e, Args &&... args)
 
template<typename T >
T * try_get_component (Entity e)
 
template<typename T >
T & get_component (Entity e)
 
template<typename T >
const T & get_component (Entity e) const
 
void serialize (Serializer &s) const
 
void deserialize (Serializer &s)
 
template<typename T >
bool try_remove_component (Entity e)
 
void destroy (Entity e)
 
void clear ()
 
bool is_alive (Entity e) const
 
int get_entity_count () const
 
int get_alive_entity_count () const
 
template<typename... Args>
auto view ()
 
template<typename T >
bool has_component (Entity e) const
 
template<typename... Components>
std::tuple< Components &... > get_component_group (Entity e)
 
template<typename... Components>
std::tuple< const Components &... > get_component_group (Entity e) const
 
template<typename T >
SparseEntitySet< T > * get_component_pool ()
 
template<typename T >
bool has_component_pool ()
 
U32 pop_free_list ()
 
template<typename T , typename... Args>
T * add_component (Entity e, Args &&... args)
 
template<typename T >
T * try_get_component (Entity e)
 
template<typename T >
T & get_component (Entity e)
 
template<typename T >
const T & get_component (Entity e) const
 
template<typename T >
bool try_remove_component (Entity e)
 
template<typename... Args>
auto view ()
 
template<typename T >
bool has_component (Entity e) const
 
template<typename... Components>
std::tuple< Components &... > get_component_group (Entity e)
 
template<typename... Components>
std::tuple< const Components &... > get_component_group (Entity e) const
 
template<typename T >
SparseEntitySet< T > * get_component_pool ()
 
template<typename T >
bool has_component_pool ()
 

Public Attributes

Arenam_pool_arena = nullptr
 
ArenaVec< U32m_generations
 
ArenaVec< U32m_free_list
 
ArenaVec< ComponentPoolNodem_component_pools
 
SparseEntitySet< ComponentMaskm_entity_masks
 

Friends

class RuntimeStateManager
 

Member Typedef Documentation

◆ all_components

◆ component_info

◆ ComponentMask

using sd::EntityManager< ExtraComponents >::ComponentMask = std::bitset<256>

Member Function Documentation

◆ add_component() [1/2]

template<typename T , typename... Args>
T * sd::EntityManager< ExtraComponents >::add_component ( Entity  e,
Args &&...  args 
)

◆ add_component() [2/2]

template<typename T , typename... Args>
T * sd::EntityManager< ExtraComponents >::add_component ( Entity  e,
Args &&...  args 
)

◆ clear()

◆ create()

Entity EntityManager::create ( )
inline

◆ deserialize()

void EntityManager::deserialize ( Serializer s)
inline

◆ destroy()

void EntityManager::destroy ( Entity  e)
inline

◆ get_alive_entity_count()

int sd::EntityManager< ExtraComponents >::get_alive_entity_count ( ) const
inline

◆ get_component() [1/4]

template<typename T >
T & sd::EntityManager< ExtraComponents >::get_component ( Entity  e)

◆ get_component() [2/4]

template<typename T >
T & sd::EntityManager< ExtraComponents >::get_component ( Entity  e)

◆ get_component() [3/4]

template<typename T >
const T & sd::EntityManager< ExtraComponents >::get_component ( Entity  e) const

◆ get_component() [4/4]

template<typename T >
const T & sd::EntityManager< ExtraComponents >::get_component ( Entity  e) const

◆ get_component_group() [1/4]

template<typename... Components>
std::tuple< Components &... > sd::EntityManager< ExtraComponents >::get_component_group ( Entity  e)

◆ get_component_group() [2/4]

template<typename... Components>
std::tuple< Components &... > sd::EntityManager< ExtraComponents >::get_component_group ( Entity  e)

◆ get_component_group() [3/4]

template<typename... Components>
std::tuple< const Components &... > sd::EntityManager< ExtraComponents >::get_component_group ( Entity  e) const

◆ get_component_group() [4/4]

template<typename... Components>
std::tuple< const Components &... > sd::EntityManager< ExtraComponents >::get_component_group ( Entity  e) const

◆ get_component_pool() [1/2]

template<typename T >
SparseEntitySet< T > * sd::EntityManager< ExtraComponents >::get_component_pool ( )

◆ get_component_pool() [2/2]

template<typename T >
SparseEntitySet< T > * sd::EntityManager< ExtraComponents >::get_component_pool ( )

◆ get_entity_count()

int sd::EntityManager< ExtraComponents >::get_entity_count ( ) const
inline

◆ has_component() [1/2]

template<typename T >
bool sd::EntityManager< ExtraComponents >::has_component ( Entity  e) const

◆ has_component() [2/2]

template<typename T >
bool sd::EntityManager< ExtraComponents >::has_component ( Entity  e) const

◆ has_component_pool() [1/2]

template<typename T >
bool sd::EntityManager< ExtraComponents >::has_component_pool ( )

◆ has_component_pool() [2/2]

template<typename T >
bool sd::EntityManager< ExtraComponents >::has_component_pool ( )

◆ is_alive()

bool EntityManager::is_alive ( Entity  e) const
inline

◆ pop_free_list()

uint32_t EntityManager::pop_free_list ( )
inline

◆ serialize()

void EntityManager::serialize ( Serializer s) const
inline

◆ try_get_component() [1/2]

template<typename T >
T * sd::EntityManager< ExtraComponents >::try_get_component ( Entity  e)

◆ try_get_component() [2/2]

template<typename T >
T * sd::EntityManager< ExtraComponents >::try_get_component ( Entity  e)

◆ try_remove_component() [1/2]

template<typename T >
bool sd::EntityManager< ExtraComponents >::try_remove_component ( Entity  e)

◆ try_remove_component() [2/2]

template<typename T >
bool sd::EntityManager< ExtraComponents >::try_remove_component ( Entity  e)

◆ view() [1/2]

template<typename... Args>
auto sd::EntityManager< ExtraComponents >::view ( )

◆ view() [2/2]

template<typename... Args>
auto sd::EntityManager< ExtraComponents >::view ( )

Friends And Related Symbol Documentation

◆ RuntimeStateManager

Member Data Documentation

◆ m_component_pools

◆ m_entity_masks

◆ m_free_list

◆ m_generations

◆ m_pool_arena


The documentation for this struct was generated from the following files: