miggor-StreamGraph/classes/deck/nodes/process_node.gd
2023-12-01 12:30:35 +03:00

50 lines
835 B
GDScript

extends DeckNode
var delta: float
func _init() -> void:
name = "Process Loop"
node_type = name.to_snake_case()
description = ""
category = "general"
add_input_port(
DeckType.Types.BOOL,
"Enabled",
"checkbox"
)
add_output_port(
DeckType.Types.BOOL,
"Trigger"
)
add_output_port(
DeckType.Types.NUMERIC,
"Delta"
)
func _event_received(event_name: StringName, event_data: Dictionary = {}) -> void:
if event_name != &"process":
return
var run := false
if request_value(0) != null:
run = request_value(0)
elif ports[0].value_callback.get_object() && ports[0].value_callback.call() != null:
run = ports[0].value_callback.call()
if !run:
return
delta = event_data.delta
send(0, true)
func _value_request(on_output_port: int) -> Variant:
if on_output_port != 1:
return null
return delta