TestGame/addons/reactivex/observable/groupedobservable.gd
2024-12-27 21:00:07 +01:00

31 lines
930 B
GDScript

extends Observable
class_name GroupedObservable
var key
var underlying_observable : Observable
func _init(
key_,
underlying_observable_ : Observable,
merged_disposable : RefCountDisposable = null):
super._init()
self.key = key_
@warning_ignore("shadowed_variable")
var subscribe = func(
observer : ObserverBase,
scheduler : SchedulerBase = null
) -> DisposableBase:
return CompositeDisposable.new([
merged_disposable.disposable if merged_disposable != null else Disposable.new(),
underlying_observable_.subscribe(observer, GDRx.basic.noop, GDRx.basic.noop, scheduler)
])
self.underlying_observable = underlying_observable_ if merged_disposable == null else Observable.new(subscribe)
func _subscribe_core(
observer : ObserverBase,
scheduler : SchedulerBase = null
) -> DisposableBase:
return self.underlying_observable.subscribe(observer, GDRx.basic.noop, GDRx.basic.noop, scheduler)