From 464d0a0e3351bdecbfbf2db553d6190c80ad4b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Mon, 4 Dec 2023 23:05:15 +0300 Subject: [PATCH] add input and deck variables access to expression node --- classes/deck/nodes/expression_node.gd | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/classes/deck/nodes/expression_node.gd b/classes/deck/nodes/expression_node.gd index 5a67666..f85e77c 100644 --- a/classes/deck/nodes/expression_node.gd +++ b/classes/deck/nodes/expression_node.gd @@ -10,7 +10,19 @@ func _init(): props_to_serialize = [] - add_output_port(DeckType.Types.ANY, "Expression Text", "codeblock") + # TODO: order of ports is changed + # due to https://github.com/godotengine/godot/issues/85558 + # when it's fixed, switch it back + add_input_port( + DeckType.Types.DICTIONARY, + "Expression Input" + ) + + add_output_port( + DeckType.Types.STRING, + "Expression Text", + "codeblock" + ) @@ -18,14 +30,14 @@ func _value_request(_from_port : int) -> Variant: var text = get_output_ports()[0].value_callback.call() - var err = expr.parse(text) + var err = expr.parse(text, ["deck_var", "input"]) if err != OK: printerr(err) return null - var res = expr.execute() + var res = expr.execute([_belonging_to.variable_stack, request_value(0)]) if expr.has_execute_failed(): printerr("Expression Execution Failed: ", text)