even clear

This commit is contained in:
Jorijn van der Graaf 2026-03-13 01:16:24 +01:00
commit da211d5e46

View file

@ -35,6 +35,7 @@ namespace Crafter {
EventListener(EventListener&) = delete;
EventListener& operator=(EventListener&) = delete;
void SetEvent(Event<T>* eventToListenTo, std::function<void(T)> function, int priority = 0);
void Clear();
EventListener(Event<T>* eventToListenTo, std::function<void(T)> function, int priority = 0);
~EventListener();
Event<T>* eventToListenTo;
@ -49,6 +50,7 @@ namespace Crafter {
EventListener(EventListener&) = delete;
EventListener& operator=(EventListener&) = delete;
void SetEvent(Event<void>* eventToListenTo, std::function<void()> function, int priority = 0);
void Clear();
EventListener(Event<void>* eventToListenTo, std::function<void()> function, int priority = 0);
~EventListener();
Event<void>* eventToListenTo;
@ -263,6 +265,12 @@ namespace Crafter {
}
}
template<typename T> void EventListener<T>::Clear() {
if (eventToListenTo != nullptr) {
eventToListenTo->RemoveListener(this);
}
}
template<typename T> EventListener<T>::EventListener() {
eventToListenTo = nullptr;
}
@ -289,6 +297,12 @@ namespace Crafter {
}
}
void EventListener<void>::Clear() {
if (eventToListenTo != nullptr) {
eventToListenTo->RemoveListener(this);
}
}
EventListener<void>::EventListener() {
eventToListenTo = nullptr;
}