EvilCocoGame1/addons/reactivex/engine/abc/readonlyreactivedictionary.gd

162 lines
3.9 KiB
GDScript3
Raw Normal View History

2025-01-11 00:25:52 +01:00
extends Comparable
class_name ReadOnlyReactiveDictionaryBase
class DictionaryAddKeyEvent extends Comparable:
var key
var value
func _init(key_, value_):
self.key = key_
self.value = value_
func _to_string() -> String:
return "Key: " + str(key) + " Value: " + str(value)
func get_hash_code() -> int:
return hash(key) ^ hash(value) << 2
func eq(other) -> bool:
if not (other is DictionaryAddKeyEvent):
return false
return GDRx.eq(key, other.key) and GDRx.eq(value, other.value)
class DictionaryRemoveKeyEvent extends Comparable:
var key
var value
func _init(key_, value_):
self.key = key_
self.value = value_
func _to_string() -> String:
return "Key: " + str(key) + " Value: " + str(value)
func get_hash_code() -> int:
return hash(key) ^ hash(value) << 2
func eq(other) -> bool:
if not (other is DictionaryRemoveKeyEvent):
return false
return GDRx.eq(key, other.key) and GDRx.eq(value, other.value)
class DictionaryUpdateValueEvent extends Comparable:
var key
var value
func _init(key_, value_):
self.key = key_
self.value = value_
func _to_string() -> String:
return "Key: " + str(key) + " Value: " + str(value)
func get_hash_code() -> int:
return hash(key) ^ hash(value) << 2
func eq(other) -> bool:
if not (other is DictionaryUpdateValueEvent):
return false
return GDRx.eq(key, other.key) and GDRx.eq(value, other.value)
var Count : int:
get: return self.size()
## [Observable]<[ReadOnlyReactiveDictionaryBase.DictionaryAddKeyEvent]>
var ObserveAddKey : Observable:
get: return self._observe_add_key.oftype(ReadOnlyReactiveDictionaryBase.DictionaryAddKeyEvent)
var _observe_add_key : Observable = GDRx.throw(NotImplementedError.new())
## Creates an [Observable] which emits the dictionary's current key count
## when the size changes.
func ObserveCountChanged(_notify_current_count : bool = false) -> Observable:
return GDRx.throw(NotImplementedError.new())
## [Observable]<[int]>
var ObserveCount : Observable:
get: return ObserveCountChanged(true).oftype(TYPE_INT)
## [Observable]<[ReadOnlyReactiveDictionaryBase.DictionaryRemoveKeyEvent]>
var ObserveRemoveKey : Observable:
get: return self._observe_remove_key.oftype(ReadOnlyReactiveDictionaryBase.DictionaryRemoveKeyEvent)
var _observe_remove_key : Observable = GDRx.throw(NotImplementedError.new())
## [Observable]<[ReadOnlyReactiveDictionaryBase.DictionaryUpdateValueEvent]>
var ObserveUpdateValue : Observable:
get: return self._observer_update_value.oftype(ReadOnlyReactiveDictionaryBase.DictionaryUpdateValueEvent)
var _observer_update_value : Observable = GDRx.throw(NotImplementedError.new())
var this
func _init():
this = self
this.unreference()
func _notification(what):
if what == NOTIFICATION_PREDELETE:
this.dispose()
func to_dict() -> Dictionary:
NotImplementedError.raise()
return {}
func find_key(value) -> Variant:
NotImplementedError.raise()
return null
func get_value(key, default = null) -> Variant:
NotImplementedError.raise()
return null
func has_key(key) -> bool:
NotImplementedError.raise()
return false
func has_all(keys : Array) -> bool:
NotImplementedError.raise()
return false
func hash() -> int:
NotImplementedError.raise()
return 0
func is_empty() -> bool:
NotImplementedError.raise()
return false
func keys() -> Array:
NotImplementedError.raise()
return []
func size() -> int:
NotImplementedError.raise()
return -1
func values() -> Array:
NotImplementedError.raise()
return []
func dispose():
NotImplementedError.raise()
func iter() -> Iterator:
NotImplementedError.raise()
return null
var __it__ : Iterator
var __curr__ : Variant
func _iter_init(arg):
self.__it__ = self.iter()
var continue_ = self.__it__.has_next()
self.__curr__ = self.__it__.next()
return continue_
func _iter_next(arg):
var continue_ = self.__it__.has_next()
self.__curr__ = self.__it__.next()
return continue_
func _iter_get(arg):
return self.__curr__