aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/Script.hpp
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-20 22:18:54 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-20 22:18:54 +0100
commitda379a58033c0ef3c9c854326a3fca25d6e54319 (patch)
treed37fe99ce6abe3190d5f41fb017de2c55f076ab1 /src/crepe/api/Script.hpp
parentdff52c72a9199ceea4eaf67c270916ae11238b45 (diff)
add Script::subscribe
Diffstat (limited to 'src/crepe/api/Script.hpp')
-rw-r--r--src/crepe/api/Script.hpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/crepe/api/Script.hpp b/src/crepe/api/Script.hpp
index 4593d69..42c8f0b 100644
--- a/src/crepe/api/Script.hpp
+++ b/src/crepe/api/Script.hpp
@@ -20,7 +20,7 @@ T & Script::get_component() const {
template <typename T>
std::vector<std::reference_wrapper<T>> Script::get_components() const {
- auto & mgr = *this->component_manager_ref;
+ ComponentManager & mgr = *this->component_manager_ref;
return mgr.get_components_by_id<T>(this->game_object_id);
}
@@ -30,4 +30,11 @@ void Script::logf(Args &&... args) {
Log::logf(std::forward<Args>(args)...);
}
+template <typename EventType>
+void Script::subscribe(const EventHandler<EventType> & callback, event_channel_t channel) {
+ EventManager & mgr = *this->event_manager_ref;
+ subscription_t listener = mgr.subscribe<EventType>(callback, channel);
+ this->listeners.push_back(listener);
+}
+
} // namespace crepe