starcheese/eventbus/eventbussubscription.gd
2024-10-04 09:14:09 +01:00

20 lines
473 B
GDScript

class_name EventBusSubscription
extends Subscription
var key: Array
var callback: Callable
var bus: DefaultEventBus
func _init(_key: Array, _callback: Callable, _bus: DefaultEventBus):
key = _key
callback = _callback
bus = _bus
func dispose() -> void:
var subscriber_set: Array[EventBusSubscription] = bus.subscribers.get(key, [])
subscriber_set.erase(self)
if subscriber_set.is_empty():
bus.subscribers.erase(key)
else:
bus.subscribers[key] = subscriber_set