From 3010ead296826f27f2281a82558c36e57cd069ef Mon Sep 17 00:00:00 2001 From: Eroax Date: Mon, 27 Nov 2023 09:28:36 +0000 Subject: [PATCH] Adds in Delay Node (#10) So a bit behind, but this adds in the Delay Node. Co-authored-by: Eroax Reviewed-on: https://codeberg.org/Eroax/Re-DotDeck/pulls/10 --- classes/deck/nodes/delay.gd | 42 +++++++++++++++++++ .../deck_renderer_graph_edit.tscn | 1 + 2 files changed, 43 insertions(+) create mode 100644 classes/deck/nodes/delay.gd diff --git a/classes/deck/nodes/delay.gd b/classes/deck/nodes/delay.gd new file mode 100644 index 0000000..44dd2d4 --- /dev/null +++ b/classes/deck/nodes/delay.gd @@ -0,0 +1,42 @@ +extends DeckNode + +var thread : Thread + +func _init(): + name = "Delay" + node_type = name.to_snake_case() + description = "A Node that passes through the input after the set time." + + add_output_port(Deck.Types.STRING, "Value", "") + + add_input_port(Deck.Types.NUMERIC, "Delay Time", "field") + add_input_port(Deck.Types.NUMERIC, "Value", "field") + + + +func _receive(to_input_port, data: DeckType, extra_data: Array = []): + + thread = Thread.new() + thread.start(handle_delay.bind(data)) + + +func handle_delay(data): + + var goal_time = Time.get_ticks_msec() + (int(get_input_ports()[0].value_callback.call()) * 1000) + + while Time.get_ticks_msec() < goal_time: + + pass + + + print("Delay over") + send(0, data) + + +func _notification(what): + + if what == NOTIFICATION_PREDELETE and thread != null: + + thread.wait_to_finish() + + diff --git a/graph_node_renderer/deck_renderer_graph_edit.tscn b/graph_node_renderer/deck_renderer_graph_edit.tscn index e2e70c7..1d4e361 100644 --- a/graph_node_renderer/deck_renderer_graph_edit.tscn +++ b/graph_node_renderer/deck_renderer_graph_edit.tscn @@ -9,6 +9,7 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 right_disconnects = true +show_arrange_button = false script = ExtResource("1_pojfs") [connection signal="popup_request" from="." to="." method="_on_popup_request"]