PERRY v1.0.0
P-E-R-R-Y/PERRY helps creating games with a bunch of tools.
Loading...
Searching...
No Matches
ecs::Registry Class Reference

define the Registry class More...

#include <Registry.hpp>

Classes

struct  is_tuple
 
struct  is_tuple< std::tuple< Args... > >
 

Public Member Functions

Entity createEntity ()
 handling entities (define in Registry.cpp)
 
Entity entityFromIndex (std::size_t idx)
 Create a Entity object from an index.
 
void killEntity (Entity const &e)
 Kill the given entity.
 
template<class Component>
SparseArray< Component > & registerComponent ()
 handling components (define in Registry_impl.hpp)
 
template<class ... Components>
void registerComponents ()
 register a list of components
 
template<class Tuple>
void registerComponentsByExtraction ()
 register every components by extraction from a tuple
 
template<class Component>
SparseArray< Component > & getComponents ()
 get components of a given type
 
template<class Component>
const SparseArray< Component > & getComponents () const
 get immutable components of a given type
 
template<typename Component>
SparseArray< Component >::reference_type addComponent (Entity const &to, Component &&c)
 
template<typename Component, typename ... Params>
SparseArray< Component >::reference_type emplaceComponent (Entity const &to, Params &&... p)
 emplace a component to the given entity
 
template<typename Component>
void removeComponent (Entity const &from)
 remove a component from the given entity
 
template<typename T, typename... Args>
size_t addSystem (Args &&... args)
 handling systems
 
template<typename T>
size_t addSystem (std::unique_ptr< T > existingSystem)
 add a system to the registry
 
template<typename T>
void removeSystem ()
 remove a system from the registry
 
template<typename T>
void callSystem ()
 call a system
 
void callSystems ()
 call all systems
 

Private Attributes

size_t _entitiesCount = 0
 
std::vector< EntitykilledEntities
 
std::unordered_map< std::type_index, std::any > componentsArrays
 
std::unordered_map< std::type_index, std::any > systemsArrays
 
std::vector< std::function< void(Registry &, Entity const &)> > componentsRemoves
 
std::unordered_map< std::type_index, std::unique_ptr< System > > systems
 

Detailed Description

define the Registry class


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