forked from kanium/starcheese
20 lines
473 B
GDScript3
20 lines
473 B
GDScript3
|
|
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
|