Some checks failed
Create tag and build when new code gets to main / Export (push) Failing after 6m41s
26 lines
644 B
GDScript
26 lines
644 B
GDScript
# a value provider unsing a callback to get `next` value from a certain function
|
|
class_name CallBackValueProvider
|
|
extends ValueProvider
|
|
|
|
var _cb :Callable
|
|
var _args :Array
|
|
|
|
|
|
func _init(instance :Object, func_name :String, args :Array = Array(), force_error := true) -> void:
|
|
_cb = Callable(instance, func_name);
|
|
_args = args
|
|
if force_error and not _cb.is_valid():
|
|
push_error("Can't find function '%s' checked instance %s" % [func_name, instance])
|
|
|
|
|
|
func get_value() -> Variant:
|
|
if not _cb.is_valid():
|
|
return null
|
|
if _args.is_empty():
|
|
return await _cb.call()
|
|
return await _cb.callv(_args)
|
|
|
|
|
|
func dispose() -> void:
|
|
_cb = Callable()
|