Elaztek Developer Hub
Blamite Game Engine - blam!  00346.12.11.21.0529.blamite
The core library for the Blamite Game Engine.
events.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 
5 #include "events/BlamEvent.h"
6 
7 #ifndef BLAM
8 #define BLAM
9 #endif
10 
13 class KeyPressEvent;
14 class MouseClickEvent;
15 class MouseMoveEvent;
16 class NewFrameEvent;
17 class TickEvent;
18 class LogMessageEvent;
19 
29 {
30 private:
31  std::vector<BlamEventType> subscribed_events;
32  int priority = 0;
33 
34 public:
41  void Subscribe(BlamEventType type);
42 
44 
50  std::vector<BlamEventType> GetSubscribedEvents();
51 
59  bool IsSubscribed(BlamEventType type);
60 
68  void SetPriority(int new_priority);
69 
75  int GetPriority();
76 
84 
92 
99  virtual void OnKeyPressEvent(KeyPressEvent* event) {}
100 
107  virtual void OnMouseClickEvent(MouseClickEvent* event) {}
108 
115  virtual void OnMouseMoveEvent(MouseMoveEvent* event) {}
116 
123  virtual void OnTickEvent(TickEvent* event) {}
124 
131  virtual void OnNewFrameEvent(NewFrameEvent* event) {}
132 
139  virtual void OnLogMessageEvent(LogMessageEvent* event) {}
140 };
141 
145 namespace Blam::Events
146 {
155  BLAM void FireEvent(BlamEvent* event);
156 
164  BLAM void RegisterListener(BlamEventListener* listener);
165 
173  BLAM void UnregisterListener(BlamEventListener* listener);
174 
183  BLAM void ResortListeners(BlamEventListener* requesting_listener);
184 }
CharacterInputEvent
Class representing a character input event.
Definition: CharacterInputEvent.h:10
BlamEventListener::OnMouseClickEvent
virtual void OnMouseClickEvent(MouseClickEvent *event)
Called when the listener is subscribed to Mouse Click events, and a new MouseClickEvent is fired.
Definition: events.h:107
Blam::Events::RegisterListener
BLAM void RegisterListener(BlamEventListener *listener)
Registers a an event listener.
Definition: events.cpp:80
BlamEventListener::OnLogMessageEvent
virtual void OnLogMessageEvent(LogMessageEvent *event)
Called when the listener is subscribed to Log Message events, and a new LogMessageEvent is fired.
Definition: events.h:139
BlamEvent.h
ConfigurationReloadEvent
Class representing a configuration reload event.
Definition: ConfigurationReloadEvent.h:13
BlamEventListener::OnKeyPressEvent
virtual void OnKeyPressEvent(KeyPressEvent *event)
Called when the listener is subscribed to Key Press events, and a new KeyPressEvent is fired.
Definition: events.h:99
BlamEventListener::SetPriority
void SetPriority(int new_priority)
Sets the priority of the listener.
Definition: BlamEventListener.cpp:31
KeyPressEvent
Class representing a virtual key press.
Definition: KeyPressEvent.h:12
BlamEvent
Class representing a generic event.
Definition: BlamEvent.h:21
BLAM
#define BLAM
Definition: events.h:8
BlamEventListener::OnNewFrameEvent
virtual void OnNewFrameEvent(NewFrameEvent *event)
Called when the listener is subscribed to New Frame events, and a new NewFrameEvent is fired.
Definition: events.h:131
BlamEventListener::~BlamEventListener
~BlamEventListener()
Definition: BlamEventListener.cpp:8
BlamEventListener::OnCharacterInputEvent
virtual void OnCharacterInputEvent(CharacterInputEvent *event)
Called when the listener is subscribed to Character Input events, and a new CharacterInputEvent is fi...
Definition: events.h:83
BlamEventListener::GetSubscribedEvents
std::vector< BlamEventType > GetSubscribedEvents()
Retrieves the list of subscribed event types.
Definition: BlamEventListener.cpp:13
TickEvent
Class representing an engine tick event.
Definition: TickEvent.h:10
Blam::Events
Namespace for handling things related to Events.
Definition: events.h:145
Blam::Events::FireEvent
BLAM void FireEvent(BlamEvent *event)
Fires an event.
Definition: events.cpp:64
MouseMoveEvent
Class representing a mouse movement event.
Definition: MouseMoveEvent.h:10
MouseClickEvent
Class representing a mouse button press.
Definition: MouseClickEvent.h:12
LogMessageEvent
Class representing a log message event.
Definition: LogMessage.h:12
BlamEventType
BlamEventType
Definition: BlamEvent.h:3
BlamEventListener::OnTickEvent
virtual void OnTickEvent(TickEvent *event)
Called when the listener is subscribed to Key Press events, and a new TickEvent is fired.
Definition: events.h:123
BlamEventListener::Subscribe
void Subscribe(BlamEventType type)
Subscribes to an event type.
Definition: BlamEventListener.cpp:3
Blam::Events::UnregisterListener
BLAM void UnregisterListener(BlamEventListener *listener)
Unregisters a an event listener.
Definition: events.cpp:85
BlamEventListener::IsSubscribed
bool IsSubscribed(BlamEventType type)
Determines whether or not the listener is subscribed to the specified event type.
Definition: BlamEventListener.cpp:18
Blam::Events::ResortListeners
BLAM void ResortListeners(BlamEventListener *requesting_listener)
Re-sorts the list of registered listeners after a priority modification.
Definition: events.cpp:111
BlamEventListener
Class representing an Event Listener.
Definition: events.h:28
BlamEventListener::OnMouseMoveEvent
virtual void OnMouseMoveEvent(MouseMoveEvent *event)
Called when the listener is subscribed to Mouse Move events, and a new MouseMoveEvent is fired.
Definition: events.h:115
NewFrameEvent
Class representing an engine frame event.
Definition: NewFrameEvent.h:13
BlamEventListener::OnConfigurationReloadEvent
virtual void OnConfigurationReloadEvent(ConfigurationReloadEvent *event)
Called when the listener is subscribed to configuration reload events, and a new ConfigurationReloadE...
Definition: events.h:91
BlamEventListener::GetPriority
int GetPriority()
Retrieves the priority of the listener.
Definition: BlamEventListener.cpp:38