Files
MovementTests/addons/guide/guide_set.gd
2025-05-27 19:20:46 +02:00

41 lines
720 B
GDScript

## Helper class for modelling sets
var _values:Dictionary = {}
func add(value:Variant) -> void:
_values[value] = value
func remove(value:Variant) -> void:
_values.erase(value)
func clear() -> void:
_values.clear()
func is_empty() -> bool:
return _values.is_empty()
func pull() -> Variant:
if is_empty():
return null
var key = _values.keys()[0]
remove(key)
return key
func has(value:Variant) -> bool:
return _values.has(value)
## Returns the first item for which the given matcher function returns
## a true value.
func first_match(matcher:Callable) -> Variant:
for key in _values.keys():
if matcher.call(key):
return key
return null
func values() -> Array:
return _values.keys()