CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::EntityEventManager Class Referencefinal

#include <CeresEngine/Entity/EventManager.hpp>

Public Member Functions

 EntityEventManager ()
 
 EntityEventManager (const EntityEventManager &)=delete
 
EntityEventManageroperator= (const EntityEventManager &)=delete
 
 EntityEventManager (EntityEventManager &&)=delete
 
EntityEventManageroperator= (EntityEventManager &&)=delete
 
 ~EntityEventManager ()
 
template<CEntityEvent E, typename... Args>
void emit (Entity entity, Args &&... args) const
 Emits a event of type E.
 
template<CEntityEvent E, typename Subscriber >
WeakEventConnection subscribe (Subscriber &&subscriber)
 
template<CEntityEvent E, typename Subscriber >
WeakEventConnection subscribe (EntityID entityID, Subscriber &&subscriber)
 

Private Member Functions

void remove (EntityID entityID)
 
template<CEntityEvent E>
EntityEventDispatcher< E > & eventDispatcher ()
 
template<CEntityEvent E>
const EntityEventDispatcher< E > * eventDispatcher () const
 
template<CEntityEvent E>
EntityEventDispatcher< E > & eventDispatcher (EntityID entityID)
 
template<CEntityEvent E>
const EntityEventDispatcher< E > * eventDispatcher (EntityID entityID) const
 

Private Attributes

Vector< UPtr< AbstractEntityEventDispatcher > > mEventDispatchers
 
Map< EntityIndex, Vector< UPtr< AbstractEntityEventDispatcher > > > mEntityEventDispatchers
 

Friends

class EntityManager
 

Constructor & Destructor Documentation

◆ EntityEventManager() [1/3]

CeresEngine::EntityEventManager::EntityEventManager ( )

◆ EntityEventManager() [2/3]

CeresEngine::EntityEventManager::EntityEventManager ( const EntityEventManager )
delete

◆ EntityEventManager() [3/3]

CeresEngine::EntityEventManager::EntityEventManager ( EntityEventManager &&  )
delete

◆ ~EntityEventManager()

CeresEngine::EntityEventManager::~EntityEventManager ( )

Member Function Documentation

◆ emit()

template<CEntityEvent E, typename... Args>
void CeresEngine::EntityEventManager::emit ( Entity  entity,
Args &&...  args 
) const
inline

Emits a event of type E.

The event is constructed by passing args to E constructor.

Template Parameters
Ethe event type to be emitted
Argsthe event constructor argument types
Parameters
entityThe entity to emit an event for
argsThe event constructor arguments

◆ eventDispatcher() [1/4]

template<CEntityEvent E>
EntityEventDispatcher< E > & CeresEngine::EntityEventManager::eventDispatcher ( )
inlineprivate

◆ eventDispatcher() [2/4]

template<CEntityEvent E>
const EntityEventDispatcher< E > * CeresEngine::EntityEventManager::eventDispatcher ( ) const
inlineprivate

◆ eventDispatcher() [3/4]

template<CEntityEvent E>
EntityEventDispatcher< E > & CeresEngine::EntityEventManager::eventDispatcher ( EntityID  entityID)
inlineprivate

◆ eventDispatcher() [4/4]

template<CEntityEvent E>
const EntityEventDispatcher< E > * CeresEngine::EntityEventManager::eventDispatcher ( EntityID  entityID) const
inlineprivate

◆ operator=() [1/2]

EntityEventManager & CeresEngine::EntityEventManager::operator= ( const EntityEventManager )
delete

◆ operator=() [2/2]

EntityEventManager & CeresEngine::EntityEventManager::operator= ( EntityEventManager &&  )
delete

◆ remove()

void CeresEngine::EntityEventManager::remove ( EntityID  entityID)
private

◆ subscribe() [1/2]

template<CEntityEvent E, typename Subscriber >
WeakEventConnection CeresEngine::EntityEventManager::subscribe ( EntityID  entityID,
Subscriber &&  subscriber 
)
inline

◆ subscribe() [2/2]

template<CEntityEvent E, typename Subscriber >
WeakEventConnection CeresEngine::EntityEventManager::subscribe ( Subscriber &&  subscriber)
inline

Friends And Related Symbol Documentation

◆ EntityManager

Member Data Documentation

◆ mEntityEventDispatchers

Map<EntityIndex, Vector<UPtr<AbstractEntityEventDispatcher> > > CeresEngine::EntityEventManager::mEntityEventDispatchers
private

◆ mEventDispatchers

Vector<UPtr<AbstractEntityEventDispatcher> > CeresEngine::EntityEventManager::mEventDispatchers
private

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