AireEngine
A 3D Open-World Game Engine
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
Aire::EventManager Struct Reference

#include <event.h>

Static Public Member Functions

static void registerForEvent (GameObject *obj, std::string eventType)
 
static void unregisterFromEvent (GameObject *obj, std::string eventType)
 
static void unregisterFromAllEvents (GameObject *obj)
 
static void dispatchEvent (const Event &eventInstance)
 
static StagedEventstageEvent (Event *eventToStage, float timer, bool destroyWhenDone)
 
static void updateEventTimer (float dt)
 
static const HashSet< GameObject * > & getAllRegisteredObjects (const std::string &eventType)
 
static const HashSet< std::string > & getAllRegiteredEvents (GameObject *obj)
 
static void freeMem ()
 Use this to free all memory used by internal static members.
 

Detailed Description

Event manager to handle registering, unregistering, and dispatching events. Defined as a purely static class, so all methods are globally accessible. This simplifies the architecture as it does not require passing EventManager references around. The downside of this is that the used memory will be freed only when the application terminates.

Member Function Documentation

◆ dispatchEvent()

static void Aire::EventManager::dispatchEvent ( const Event & eventInstance)
inlinestatic

Trigger an event. This calls the event handling method of all objects registered for this type of event.

Parameters
eventInstanceThe event to trigger.
Here is the caller graph for this function:

◆ getAllRegisteredObjects()

static const HashSet< GameObject * > & Aire::EventManager::getAllRegisteredObjects ( const std::string & eventType)
inlinestatic

Get the list of all objects registered for a given event type.

Parameters
eventTypeThe event type to query.
Returns
A hash set of all game objects that are registered for the event type.

◆ getAllRegiteredEvents()

static const HashSet< std::string > & Aire::EventManager::getAllRegiteredEvents ( GameObject * obj)
inlinestatic

Query all events an object is registered for.

Parameters
objThe game object to query.
Returns
A hash set of all events the game object is registered for.

◆ registerForEvent()

static void Aire::EventManager::registerForEvent ( GameObject * obj,
std::string eventType )
inlinestatic

Register and object for an event type. When the event is triggered, the object's event handling method will be called automatically. Does nothing if the object is already registered for the event

Parameters
objThe game object to register.
eventTypeThe event type to register the event for (case sensitive).

◆ stageEvent()

static StagedEvent * Aire::EventManager::stageEvent ( Event * eventToStage,
float timer,
bool destroyWhenDone )
inlinestatic

Stage an event for a later execution, after a fixed amount of time (in s).

Parameters
eventToStageEvent to stage for a delayed execution.
timerAmound of time (in s) to wait before triggering the event
destroyWhenDoneIf true, the event object will be automatically deleted. If false, responsibility of freeing the object is left to the user.

◆ unregisterFromAllEvents()

static void Aire::EventManager::unregisterFromAllEvents ( GameObject * obj)
inlinestatic

Unregister a game object from all events it is registered for. Does nothing is the object is not registered to any events.

Parameters
objThe game object to unregister.
Here is the caller graph for this function:

◆ unregisterFromEvent()

static void Aire::EventManager::unregisterFromEvent ( GameObject * obj,
std::string eventType )
inlinestatic

Unregister a game object from a given event type. If the object was not registered to the event, the method does nothing.

Parameters
objThe game object to unregister.
eventTypeThe event type to register the event for (case sensitive).

◆ updateEventTimer()

static void Aire::EventManager::updateEventTimer ( float dt)
inlinestatic

Update the timer of all staged events by decreasing it by dt seconds. To be called once every frame.

Parameters
dtTime delta to decrease timers of staged events.
Here is the call graph for this function:

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