From 877e29f5805152298947d16f22d348309cefbcb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Sun, 17 Mar 2024 06:54:45 +0000 Subject: [PATCH] add pass if equal node (#120) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes #119 Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/120 Co-authored-by: Lera ElvoƩ Co-committed-by: Lera ElvoƩ --- classes/deck/nodes/general/pass_if_equal.gd | 55 +++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 classes/deck/nodes/general/pass_if_equal.gd diff --git a/classes/deck/nodes/general/pass_if_equal.gd b/classes/deck/nodes/general/pass_if_equal.gd new file mode 100644 index 0000000..cb69e7d --- /dev/null +++ b/classes/deck/nodes/general/pass_if_equal.gd @@ -0,0 +1,55 @@ +# (c) 2023-present Eroax +# (c) 2023-present Yagich +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +extends DeckNode + + +func _init() -> void: + name = "Pass If Equal" + node_type = name.to_snake_case() + description = "Receives a trigger and passes it if the values are equal." + + add_input_port( + DeckType.Types.ANY, + "Input", + "", + Port.UsageType.TRIGGER, + ) + + add_input_port( + DeckType.Types.ANY, + "Value A", + "field", + Port.UsageType.VALUE_REQUEST, + ) + + add_input_port( + DeckType.Types.ANY, + "Value B", + "field", + Port.UsageType.VALUE_REQUEST, + ) + + add_output_port( + DeckType.Types.ANY, + "Equal", + "", + Port.UsageType.TRIGGER + ) + + add_output_port( + DeckType.Types.ANY, + "Not Equal", + "", + Port.UsageType.TRIGGER + ) + + +func _receive(_to_input_port: int, data: Variant) -> void: + var value_a = await resolve_input_port_value_async(1) + var value_b = await resolve_input_port_value_async(2) + + if value_a == value_b: + send(0, data) + else: + send(1, data)