Elaztek Developer Hub
Blamite Game Engine - Strings  00453.06.08.26.0624.blamite
A library containing general purpose utilities and classes for use in multiple projects.
events.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 #include <string>
5 
6 #include "BlamEvent.h"
7 
8 #ifdef STRINGS_EXPORTS
9 #define STRINGS_API __declspec(dllexport)
10 #else
11 #define STRINGS_API __declspec(dllimport)
12 #endif
13 
16 class KeyPressEvent;
17 class MouseClickEvent;
18 class MouseUnclickEvent;
19 class MouseMoveEvent;
20 class NewFrameEvent;
21 class TickEvent;
22 class LogMessageEvent;
23 class ObjectDeleteEvent;
25 class MouseWheelEvent;
26 
27 class EditorTickEvent;
29 class TagTreeReloadEvent;
31 
44 {
45 private:
46  std::vector<BlamEventType> subscribed_events;
47  int priority = 0;
48 
49 public:
50  std::string name = "";
51 
58  void Subscribe(BlamEventType type);
59 
61 
67  std::vector<BlamEventType> GetSubscribedEvents();
68 
76  bool IsSubscribed(BlamEventType type);
77 
85  void SetPriority(int new_priority);
86 
92  int GetPriority();
93 
101 
109 
116  virtual void OnKeyPressEvent(KeyPressEvent* event) {}
117 
124  virtual void OnMouseClickEvent(MouseClickEvent* event) {}
125 
132  virtual void OnMouseUnclickEvent(MouseUnclickEvent* event) {}
133 
140  virtual void OnMouseMoveEvent(MouseMoveEvent* event) {}
141 
148  virtual void OnMouseWheelEvent(MouseWheelEvent* event) {}
149 
156  virtual void OnTickEvent(TickEvent* event) {}
157 
164  virtual void OnNewFrameEvent(NewFrameEvent* event) {}
165 
172  virtual void OnLogMessageEvent(LogMessageEvent* event) {}
173 
180  virtual void OnObjectDeleteEvent(ObjectDeleteEvent* event) {}
181 
188  virtual void OnEditorTickEvent(EditorTickEvent* event) {}
189 
197 
204  virtual void OnTagTreeReloadEvent(TagTreeReloadEvent* event) {}
205 
213 
221 };
222 
227 {
236  STRINGS_API void FireEvent(BlamEvent* event);
237 
246  STRINGS_API void RegisterListener(BlamEventListener* listener, std::string name);
247 
256 
261 
270  STRINGS_API void ResortListeners(BlamEventListener* requesting_listener);
271 
277  STRINGS_API std::vector<BlamEventListener*> GetListeners();
278 }
BlamEventListener::OnScenarioWorldStateLoadEvent
virtual void OnScenarioWorldStateLoadEvent(ScenarioWorldStateLoadEvent *event)
Called when the listener is subscribed to Scenario World State Load events, and a new ScenarioWorldSt...
Definition: events.h:220
CharacterInputEvent
Class representing a character input event.
Definition: CharacterInputEvent.h:16
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:124
logger.h
BlamStrings::Events::GetListeners
STRINGS_API std::vector< BlamEventListener * > GetListeners()
Retrieves a list of currently registered listeners.
Definition: events.cpp:218
BlamEventListener::OnEditorTickEvent
virtual void OnEditorTickEvent(EditorTickEvent *event)
Called when the listener is subscribed to Editor Tick events, and a new EditorTickEvent is fired.
Definition: events.h:188
BlamEventType::MouseWheel
@ MouseWheel
Indicates the event is a mouse move event. See MouseWheelEvent for details.
notify_listener
void notify_listener(BlamEvent *event, BlamEventListener *listener)
Notifies the specified listener about an event.
Definition: events.cpp:21
BlamEventType::ConfigurationReload
@ ConfigurationReload
Indicates the event is a configuration reload event. See ConfigurationReloadEvent for details.
listener_list_lock
std::recursive_mutex listener_list_lock
Lock to ensure that the listener list cannot be modified concurrently.
Definition: events.cpp:11
BlamEventType::Tick
@ Tick
Indicates the event is a tick event. See TickEvent for details.
BlamEventListener::OnTagTreeReloadEvent
virtual void OnTagTreeReloadEvent(TagTreeReloadEvent *event)
Called when the listener is subscribed to Tag Tree Reload events, and a new TagTreeReloadEvent is fir...
Definition: events.h:204
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:172
BlamStrings::Events
Namespace for handling things related to Events.
Definition: events.h:226
ScenarioWorldStateLoadEvent
Class representing a scenario world state load event.
Definition: ScenarioWorldStateLoadEvent.h:18
BlamEventListener::OnObjectDeleteEvent
virtual void OnObjectDeleteEvent(ObjectDeleteEvent *event)
Called when the listener is subscribed to Object Delete events, and a new ObjectDeleteEvent is fired.
Definition: events.h:180
BlamEvent.h
ConfigurationReloadEvent
Class representing a configuration reload event.
Definition: ConfigurationReloadEvent.h:19
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:116
BlamStrings::Events::FireEvent
STRINGS_API void FireEvent(BlamEvent *event)
Fires an event.
Definition: events.cpp:124
BlamStrings::Logger::LogEvent
STRINGS_API void LogEvent(BlamBasicLogMessage message)
Logs an event to the logger.
Definition: logger.cpp:41
BlamEventType::CharacterInput
@ CharacterInput
Indicates the event is a character input event. See CharacterInputEvent for details.
KeyPressEvent
Class representing a virtual key press.
Definition: KeyPressEvent.h:18
compare_listener_priority
bool compare_listener_priority(BlamEventListener *first, BlamEventListener *second)
Compares listener priority.
Definition: events.cpp:206
BlamEvent
Class representing a generic event.
Definition: BlamEvent.h:39
BlamEventType::EditorTick
@ EditorTick
Indicates the event is an editor tick event. See EditorTickEvent for details.
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:164
events.h
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:100
TickEvent
Class representing an engine tick event.
Definition: TickEvent.h:18
BlamStrings::Events::ResortListeners
STRINGS_API void ResortListeners(BlamEventListener *requesting_listener)
Re-sorts the list of registered listeners after a priority modification.
Definition: events.cpp:211
BlamEventListener::OnHierarchyReloadEvent
virtual void OnHierarchyReloadEvent(HierarchyReloadEvent *event)
Called when the listener is subscribed to Hierarchy Reload Reload events, and a new HierarchyReloadEv...
Definition: events.h:212
BlamEventListener::OnMouseWheelEvent
virtual void OnMouseWheelEvent(MouseWheelEvent *event)
Called when the listener is subscribed to Mouse Wheel events, and a new MouseWheelEvent is fired.
Definition: events.h:148
BlamStrings::Events::UnregisterListener
STRINGS_API void UnregisterListener(BlamEventListener *listener)
Unregisters a an event listener.
Definition: events.cpp:163
MouseUnclickEvent
Class representing a mouse button release.
Definition: MouseUnclickEvent.h:18
MouseMoveEvent
Class representing a mouse movement event.
Definition: MouseMoveEvent.h:16
BlamEventType::HierarchyReload
@ HierarchyReload
Indicates the event is a scenario hierarchy reload event. See HierarchyReloadEvent for details.
BlamEventType::KeyPress
@ KeyPress
Indicates the event is a key press event. See KeyPressEvent for details.
BlamEventListener::name
std::string name
The name of the listener. Used for debugging purposes.
Definition: events.h:50
BlamEvent::IsCancelled
bool IsCancelled()
Determines whether or not the event has been cancelled.
Definition: BlamEvent.cpp:18
MouseClickEvent
Class representing a mouse button press.
Definition: MouseClickEvent.h:18
LogMessageEvent
Class representing a log message event.
Definition: LogMessage.h:18
BlamEventType
BlamEventType
Enumerator listing all possible event types.
Definition: BlamEvent.h:12
BlamEventListener::OnEditorThemeChangeEvent
virtual void OnEditorThemeChangeEvent(EditorThemeChangeEvent *event)
Called when the listener is subscribed to Editor Theme Change events, and a new EditorThemeChangeEven...
Definition: events.h:196
HierarchyReloadEvent
Class representing an editor hierarchy reload event.
Definition: HierarchyReloadEvent.h:18
BlamEventType::NewFrame
@ NewFrame
Indicates the event is a new frame event. See NewFrameEvent for details.
BlamEventListener::OnTickEvent
virtual void OnTickEvent(TickEvent *event)
Called when the listener is subscribed to Tick events, and a new TickEvent is fired.
Definition: events.h:156
BlamStrings::Converters::BytesToString
STRINGS_API std::string BytesToString(void *bytes, int bytes_length, bool uppercase=false)
Converts a series of bytes to a string.
Definition: converters.cpp:214
TagTreeReloadEvent
Class representing an editor tag tree reload event.
Definition: TagTreeReloadEvent.h:18
BlamEventType::MouseUnclick
@ MouseUnclick
Indicates the event is a mouse click event. See MouseClickEvent for details.
uuids::to_string
std::basic_string< CharT, Traits, Allocator > to_string(uuid const &id)
Definition: uuid.h:581
BlamEvent::GetEventType
BlamEventType GetEventType()
Retrieves the type of the event.
Definition: BlamEvent.cpp:8
BlamEventListener::IsSubscribed
bool IsSubscribed(BlamEventType type)
Determines whether or not the listener is subscribed to the specified event type.
Definition: BlamEventListener.cpp:20
listeners
std::vector< BlamEventListener * > listeners
List of registered event listeners.
Definition: events.cpp:10
STRINGS_API
#define STRINGS_API
Definition: events.h:11
BlamEventType::ScenarioWorldStateLoad
@ ScenarioWorldStateLoad
Indicates the event is a scenario world state load event. See ScenarioWorldStateLoadEvent for details...
ObjectDeleteEvent
Class representing an object delete event.
Definition: ObjectDeleteEvent.h:21
BlamStrings::Events::RegisterListener
STRINGS_API void RegisterListener(BlamEventListener *listener, std::string name)
Registers a an event listener.
Definition: events.cpp:154
EditorTickEvent
Class representing an editor tick event.
Definition: EditorTickEvent.h:18
EditorThemeChangeEvent
Class representing an editor theme change event.
Definition: EditorThemeChange.h:27
BlamEventListener
Class representing an Event Listener.
Definition: events.h:43
BlamEventType::TagTreeReload
@ TagTreeReload
Indicates the event is a tag tree reload event. See TagTreeReloadEvent for details.
BlamStrings::Events::UnregisterListeners
STRINGS_API void UnregisterListeners()
Unregisters all listeners.
Definition: events.cpp:181
MouseWheelEvent
Class representing a mouse scroll event.
Definition: MouseWheelEvent.h:16
converters.h
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:140
BlamEventType::MouseClick
@ MouseClick
Indicates the event is a mouse click event. See MouseClickEvent for details.
NewFrameEvent
Class representing an engine frame event.
Definition: NewFrameEvent.h:19
BlamEventListener::OnConfigurationReloadEvent
virtual void OnConfigurationReloadEvent(ConfigurationReloadEvent *event)
Called when the listener is subscribed to configuration reload events, and a new ConfigurationReloadE...
Definition: events.h:108
BlamEventListener::GetPriority
int GetPriority()
Retrieves the priority of the listener.
Definition: BlamEventListener.cpp:40
BlamEventType::LogMessage
@ LogMessage
Indicates the event is a log message event. See LogMessageEvent for details.
BlamEventType::MouseMove
@ MouseMove
Indicates the event is a mouse move event. See MouseMoveEvent for details.
BlamLogLevel::Warning
@ Warning
Indicates a warning message. Not something critical, but something that could cause unexpected behavi...
BlamEventType::EditorThemeChange
@ EditorThemeChange
Indicates the event is an editor theme change event. See EditorThemeChangeEvent for details.
BlamEventListener::OnMouseUnclickEvent
virtual void OnMouseUnclickEvent(MouseUnclickEvent *event)
Called when the listener is subscribed to Mouse Unclick events, and a new MouseUnclickEvent is fired.
Definition: events.h:132
BlamEventType::ObjectDelete
@ ObjectDelete
Indicates the event is an object deletion event. See ObjectDeleteEvent for details.