Blamite Game Engine - blam!  00296.01.12.21.0102.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 
28 {
29 private:
30  std::vector<BlamEventType> subscribed_events;
31  int priority = 0;
32 
33 public:
40  void Subscribe(BlamEventType type);
41 
43 
49  std::vector<BlamEventType> GetSubscribedEvents();
50 
58  bool IsSubscribed(BlamEventType type);
59 
67  void SetPriority(int new_priority);
68 
74  int GetPriority();
75 
83 
91 
98  virtual void OnKeyPressEvent(KeyPressEvent* event) {}
99 
106  virtual void OnMouseClickEvent(MouseClickEvent* event) {}
107 
114  virtual void OnMouseMoveEvent(MouseMoveEvent* event) {}
115 
122  virtual void OnTickEvent(TickEvent* event) {}
123 
130  virtual void OnNewFrameEvent(NewFrameEvent* event) {}
131 };
132 
136 namespace Blam::Events
137 {
146  BLAM void FireEvent(BlamEvent* event);
147 
155  BLAM void RegisterListener(BlamEventListener* listener);
156 
164  BLAM void UnregisterListener(BlamEventListener* listener);
165 
174  BLAM void ResortListeners(BlamEventListener* requesting_listener);
175 }
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:106
Blam::Events::RegisterListener
BLAM void RegisterListener(BlamEventListener *listener)
Registers a an event listener.
Definition: events.cpp:75
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:98
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:20
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:130
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:82
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:136
Blam::Events::FireEvent
BLAM void FireEvent(BlamEvent *event)
Fires an event.
Definition: events.cpp:59
MouseMoveEvent
Class representing a mouse movement event.
Definition: MouseMoveEvent.h:10
MouseClickEvent
Class representing a mouse button press.
Definition: MouseClickEvent.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:122
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:80
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:106
BlamEventListener
Class representing an Event Listener.
Definition: events.h:27
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:114
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:90
BlamEventListener::GetPriority
int GetPriority()
Retrieves the priority of the listener.
Definition: BlamEventListener.cpp:38