Blamite Game Engine - blam!  00272.10.26.20.0001.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 
6 {
10 };
11 
12 #include "events/Event.hpp"
14 #include "events/KeyPressEvent.hpp"
15 #include "events/TickEvent.hpp"
16 
17 #ifndef BLAM
18 #define BLAM
19 #endif
20 
24 namespace Blam::Events
25 {
26  class EventListener;
27  BLAM void ResortListeners(EventListener* requesting_listener);
28  BLAM void UnregisterListener(EventListener* listener);
29 
39  {
40  private:
41  std::vector<EventType> subscribed_events;
42  int priority = 0;
43 
44  public:
51  void Subscribe(EventType type)
52  {
53  subscribed_events.push_back(type);
54  }
55 
57  {
59  }
60 
66  std::vector<EventType> getSubscribedEvents()
67  {
68  return subscribed_events;
69  }
70 
79  {
80  for (int i = 0; i < subscribed_events.size(); i++)
81  {
82  if (subscribed_events.at(i) == type)
83  {
84  return true;
85  }
86  }
87 
88  return false;
89  }
90 
98  void SetPriority(int new_priority)
99  {
100  priority = new_priority;
101 
103  }
104 
111  {
112  return priority;
113  }
114 
122 
130 
137  virtual void onTickEvent(Blam::Events::TickEvent* event) {}
138  };
139 
148  BLAM void FireEvent(Event* event);
149 
157  BLAM void RegisterListener(EventListener* listener);
158 
166  BLAM void UnregisterListener(EventListener* listener);
167 
176  BLAM void ResortListeners(EventListener* requesting_listener);
177 }
EventType
EventType
Definition: events.h:5
Blam::Events::EventListener::GetPriority
int GetPriority()
Retrieves the priority of the listener.
Definition: events.h:110
Blam::Events::RegisterListener
BLAM void RegisterListener(EventListener *listener)
Registers a an event listener.
Definition: events.cpp:62
Blam::Events::EventListener::onCharacterInputEvent
virtual void onCharacterInputEvent(Blam::Events::CharacterInputEvent *event)
Called when the listener is subscribed to Character Input events, and a new CharacterInputEvent is fi...
Definition: events.h:121
Tick
@ Tick
Definition: events.h:9
Blam::Events::EventListener::Subscribe
void Subscribe(EventType type)
Subscribes to an event type.
Definition: events.h:51
Blam::Events::TickEvent
Class representing an engine tick event.
Definition: TickEvent.hpp:12
Blam::Events::FireEvent
BLAM void FireEvent(Event *event)
Fires an event.
Definition: events.cpp:46
Blam::Events::UnregisterListener
BLAM void UnregisterListener(EventListener *listener)
Unregisters a an event listener.
Definition: events.cpp:67
Blam::Events
Namespace for handling things related to Events.
Definition: CharacterInputEvent.hpp:5
Event.hpp
Blam::Events::CharacterInputEvent
Class representing a character being pressed.
Definition: CharacterInputEvent.hpp:12
Blam::Events::EventListener::~EventListener
~EventListener()
Definition: events.h:56
Blam::Events::EventListener::onTickEvent
virtual void onTickEvent(Blam::Events::TickEvent *event)
Called when the listener is subscribed to Key Press events, and a new TickEvent is fired.
Definition: events.h:137
Blam::Events::EventListener::isSubscribed
bool isSubscribed(EventType type)
Determines whether or not the listener is subscribed to the specified event type.
Definition: events.h:78
TickEvent.hpp
CharacterInput
@ CharacterInput
Definition: events.h:8
BLAM
#define BLAM
Definition: discord_rpc.h:8
KeyPress
@ KeyPress
Definition: events.h:7
CharacterInputEvent.hpp
Blam::Events::EventListener::onKeyPressEvent
virtual void onKeyPressEvent(Blam::Events::KeyPressEvent *event)
Called when the listener is subscribed to Key Press events, and a new KeyPressEvent is fired.
Definition: events.h:129
Blam::Events::EventListener::SetPriority
void SetPriority(int new_priority)
Sets the priority of the listener.
Definition: events.h:98
Blam::Events::KeyPressEvent
Class representing a virtual key press.
Definition: KeyPressEvent.hpp:14
KeyPressEvent.hpp
Blam::Events::ResortListeners
BLAM void ResortListeners(EventListener *requesting_listener)
Re-sorts the list of registered listeners after a priority modification.
Definition: events.cpp:93
Blam::Events::EventListener::getSubscribedEvents
std::vector< EventType > getSubscribedEvents()
Retrieves the list of subscribed event types.
Definition: events.h:66
Blam::Events::EventListener
Class representing an Event Listener.
Definition: events.h:38