Elaztek Developer Hub
Blamite Game Engine - blam!  00357.06.18.22.0809.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 #include <string>
5 
6 #include "events/BlamEvent.h"
7 
8 #ifndef BLAM
9 #define BLAM
10 #endif
11 
14 class KeyPressEvent;
15 class MouseClickEvent;
16 class MouseMoveEvent;
17 class NewFrameEvent;
18 class TickEvent;
19 class LogMessageEvent;
20 
30 {
31 private:
32  std::vector<BlamEventType> subscribed_events;
33  int priority = 0;
34 
35 public:
36  std::string name = "";
37 
44  void Subscribe(BlamEventType type);
45 
47 
53  std::vector<BlamEventType> GetSubscribedEvents();
54 
62  bool IsSubscribed(BlamEventType type);
63 
71  void SetPriority(int new_priority);
72 
78  int GetPriority();
79 
87 
95 
102  virtual void OnKeyPressEvent(KeyPressEvent* event) {}
103 
110  virtual void OnMouseClickEvent(MouseClickEvent* event) {}
111 
118  virtual void OnMouseMoveEvent(MouseMoveEvent* event) {}
119 
126  virtual void OnTickEvent(TickEvent* event) {}
127 
134  virtual void OnNewFrameEvent(NewFrameEvent* event) {}
135 
142  virtual void OnLogMessageEvent(LogMessageEvent* event) {}
143 };
144 
148 namespace Blam::Events
149 {
158  BLAM void FireEvent(BlamEvent* event);
159 
168  BLAM void RegisterListener(BlamEventListener* listener, std::string name);
169 
177  BLAM void UnregisterListener(BlamEventListener* listener);
178 
182  BLAM void UnregisterListeners();
183 
192  BLAM void ResortListeners(BlamEventListener* requesting_listener);
193 
199  BLAM std::vector<BlamEventListener*> GetListeners();
200 }
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:110
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:142
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:102
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:24
BLAM
#define BLAM
Definition: events.h:9
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:134
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:86
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:12
Blam::Events
Namespace for handling things related to Events.
Definition: events.h:148
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
BlamEventListener::name
std::string name
The name of the listener. Used for debugging purposes.
Definition: events.h:36
MouseClickEvent
Class representing a mouse button press.
Definition: MouseClickEvent.h:12
LogMessageEvent
Class representing a log message event.
Definition: LogMessage.h:12
Blam::Events::RegisterListener
BLAM void RegisterListener(BlamEventListener *listener, std::string name)
Registers a an event listener.
Definition: events.cpp:80
BlamEventType
BlamEventType
Enumerator listing all possible event types.
Definition: BlamEvent.h:6
Blam::Events::GetListeners
BLAM std::vector< BlamEventListener * > GetListeners()
Retrieves a list of currently registered listeners.
Definition: events.cpp:133
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:126
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:89
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:126
BlamEventListener
Class representing an Event Listener.
Definition: events.h:29
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:118
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:94
BlamEventListener::GetPriority
int GetPriority()
Retrieves the priority of the listener.
Definition: BlamEventListener.cpp:38
Blam::Events::UnregisterListeners
BLAM void UnregisterListeners()
Unregisters all listeners.
Definition: events.cpp:101