From c7e003ffe66ab1b5eacbfcbd9a8e69b6fbeb3d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Thu, 22 Feb 2024 06:59:23 +0000 Subject: [PATCH] make descriptor renderers into scenes (#74) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes #60 Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/74 Co-authored-by: Lera ElvoƩ Co-committed-by: Lera ElvoƩ --- .../deck_node_renderer_graph_node.gd | 106 +++--------------- .../descriptors/button_descriptor.gd | 21 ++++ .../descriptors/button_descriptor.tscn | 12 ++ .../descriptors/check_box_descriptor.gd | 16 +++ .../descriptors/check_box_descriptor.tscn | 12 ++ .../descriptors/codeblock_descriptor.gd | 16 +++ .../descriptors/codeblock_descriptor.tscn | 12 ++ .../descriptors/descriptor_container.gd | 37 ++++++ .../descriptors/descriptor_container.tscn | 15 +++ .../descriptors/field_descriptor.gd | 14 +++ .../descriptors/field_descriptor.tscn | 13 +++ .../descriptors/label_descriptor.gd | 12 ++ .../descriptors/label_descriptor.tscn | 12 ++ .../descriptors/single_choice_descriptor.gd | 23 ++++ .../descriptors/single_choice_descriptor.tscn | 12 ++ .../descriptors/spin_box_descriptor.gd | 27 +++++ .../descriptors/spin_box_descriptor.tscn | 12 ++ graph_node_renderer/textures/type_array.svg | 55 +++++++++ .../textures/type_array.svg.import | 37 ++++++ graph_node_renderer/textures/type_bool.svg | 55 +++++++++ .../textures/type_bool.svg.import | 37 ++++++ .../textures/type_dictionary.svg | 59 ++++++++++ .../textures/type_dictionary.svg.import | 37 ++++++ graph_node_renderer/textures/type_numeric.svg | 23 ++++ .../textures/type_numeric.svg.import | 37 ++++++ graph_node_renderer/textures/type_string.svg | 47 ++++++++ .../textures/type_string.svg.import | 37 ++++++ 27 files changed, 708 insertions(+), 88 deletions(-) create mode 100644 graph_node_renderer/descriptors/button_descriptor.gd create mode 100644 graph_node_renderer/descriptors/button_descriptor.tscn create mode 100644 graph_node_renderer/descriptors/check_box_descriptor.gd create mode 100644 graph_node_renderer/descriptors/check_box_descriptor.tscn create mode 100644 graph_node_renderer/descriptors/codeblock_descriptor.gd create mode 100644 graph_node_renderer/descriptors/codeblock_descriptor.tscn create mode 100644 graph_node_renderer/descriptors/descriptor_container.gd create mode 100644 graph_node_renderer/descriptors/descriptor_container.tscn create mode 100644 graph_node_renderer/descriptors/field_descriptor.gd create mode 100644 graph_node_renderer/descriptors/field_descriptor.tscn create mode 100644 graph_node_renderer/descriptors/label_descriptor.gd create mode 100644 graph_node_renderer/descriptors/label_descriptor.tscn create mode 100644 graph_node_renderer/descriptors/single_choice_descriptor.gd create mode 100644 graph_node_renderer/descriptors/single_choice_descriptor.tscn create mode 100644 graph_node_renderer/descriptors/spin_box_descriptor.gd create mode 100644 graph_node_renderer/descriptors/spin_box_descriptor.tscn create mode 100644 graph_node_renderer/textures/type_array.svg create mode 100644 graph_node_renderer/textures/type_array.svg.import create mode 100644 graph_node_renderer/textures/type_bool.svg create mode 100644 graph_node_renderer/textures/type_bool.svg.import create mode 100644 graph_node_renderer/textures/type_dictionary.svg create mode 100644 graph_node_renderer/textures/type_dictionary.svg.import create mode 100644 graph_node_renderer/textures/type_numeric.svg create mode 100644 graph_node_renderer/textures/type_numeric.svg.import create mode 100644 graph_node_renderer/textures/type_string.svg create mode 100644 graph_node_renderer/textures/type_string.svg.import diff --git a/graph_node_renderer/deck_node_renderer_graph_node.gd b/graph_node_renderer/deck_node_renderer_graph_node.gd index 0d764b3..ee80fc2 100644 --- a/graph_node_renderer/deck_node_renderer_graph_node.gd +++ b/graph_node_renderer/deck_node_renderer_graph_node.gd @@ -25,6 +25,17 @@ const PORT_USAGE_ICONS := { Port.UsageType.BOTH: preload("res://graph_node_renderer/textures/port_any_12.svg"), } +const DESCRIPTOR_SCENES := { + "button": preload("res://graph_node_renderer/descriptors/button_descriptor.tscn"), + "field": preload("res://graph_node_renderer/descriptors/field_descriptor.tscn"), + "singlechoice": preload("res://graph_node_renderer/descriptors/single_choice_descriptor.tscn"), + "codeblock": preload("res://graph_node_renderer/descriptors/codeblock_descriptor.tscn"), + "checkbox": preload("res://graph_node_renderer/descriptors/check_box_descriptor.tscn"), + "spinbox": preload("res://graph_node_renderer/descriptors/spin_box_descriptor.tscn"), + "label": preload("res://graph_node_renderer/descriptors/label_descriptor.tscn"), +} + + ## Setups up all the properties based off [member node]. Including looping through ## [method DeckNode.get_all_ports()] and setting up all the descriptors. func _ready() -> void: @@ -112,94 +123,13 @@ func _on_node_renamed(new_name: String) -> void: func update_port(port: Port) -> void: var descriptor_split := port.descriptor.split(":") - match descriptor_split[0]: - "button": - var button := Button.new() - add_child(button) - button.text = port.label - if port.port_type == DeckNode.PortType.OUTPUT: - button.pressed.connect( - func(): - node.send(port.index_of_type, true) - ) - #elif port.port_type == DeckNode.PortType.INPUT: - else: - button.pressed.connect( - func(): - node._receive(port.index_of_type, true) - ) - "field": - var line_edit := LineEdit.new() - add_child(line_edit) - if port.value: - line_edit.text = str(port.value) - line_edit.placeholder_text = port.label - port.value_callback = line_edit.get_text - line_edit.text_changed.connect(port.set_value) - "singlechoice": - var box := OptionButton.new() - if descriptor_split.slice(1).is_empty(): - if port.value: - box.add_item(port.value) - else: - box.add_item(port.label) - else: - for item in descriptor_split.slice(1): - box.add_item(item) - add_child(box) - port.value_callback = func(): return box.get_item_text(box.get_selected_id()) - if port.type == DeckType.Types.STRING: - box.item_selected.connect( - func(_id: int): - port.set_value.call(box.get_item_text(box.get_selected_id())) - ) - "codeblock": - var code_edit = CodeEdit.new() - add_child(code_edit) - if port.value: - code_edit.text = str(port.value) - code_edit.placeholder_text = port.label - port.value_callback = code_edit.get_text - code_edit.text_changed.connect(port.set_value.bind(code_edit.get_text)) - code_edit.custom_minimum_size = Vector2(200, 100) - code_edit.size_flags_vertical = SIZE_EXPAND_FILL - "checkbox": - var cb := CheckBox.new() - add_child(cb) - if descriptor_split.size() > 1: - cb.button_pressed = true - if port.value is bool: - cb.button_pressed = port.value - cb.text = port.label - port.value_callback = cb.is_pressed - cb.toggled.connect(port.set_value) - "spinbox": - var sb := SpinBox.new() - add_child(sb) - if port.value != null: - sb.value = float(port.value) - if "unbounded" in descriptor_split: - sb.max_value = 99999 - sb.allow_greater = true - sb.allow_lesser = true - if descriptor_split.size() > 2: - sb.step = float(descriptor_split[1]) - else: - sb.step = 1.0 - else: - sb.min_value = float(descriptor_split[1]) - if descriptor_split.size() > 2: - sb.max_value = float(descriptor_split[2]) - if descriptor_split.size() > 3: - sb.step = float(descriptor_split[3]) - port.value_callback = sb.get_value - sb.value_changed.connect(port.set_value) - _: - var label := Label.new() - add_child(label) - label.text = port.label - if port.port_type == DeckNode.PortType.OUTPUT: - label.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT + var d: DescriptorContainer + if DESCRIPTOR_SCENES.has(descriptor_split[0]): + d = DESCRIPTOR_SCENES[descriptor_split[0]].instantiate() + else: + d = DESCRIPTOR_SCENES.label.instantiate() + add_child(d) + d.set_up_from_port(port, node) set_slot( port.index, diff --git a/graph_node_renderer/descriptors/button_descriptor.gd b/graph_node_renderer/descriptors/button_descriptor.gd new file mode 100644 index 0000000..7ba66f5 --- /dev/null +++ b/graph_node_renderer/descriptors/button_descriptor.gd @@ -0,0 +1,21 @@ +# meta-description: An empty template with StreamGraph license header. +# (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 DescriptorContainer + +@onready var button: Button = %Button + + +func _setup(port: Port, node: DeckNode) -> void: + button.text = port.label + if port.port_type == DeckNode.PortType.OUTPUT: + button.pressed.connect( + func(): + node.send(port.index_of_type, true) + ) + else: + button.pressed.connect( + func(): + node._receive(port.index_of_type, true) + ) diff --git a/graph_node_renderer/descriptors/button_descriptor.tscn b/graph_node_renderer/descriptors/button_descriptor.tscn new file mode 100644 index 0000000..23c3276 --- /dev/null +++ b/graph_node_renderer/descriptors/button_descriptor.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://ckr4kal7nctrx"] + +[ext_resource type="PackedScene" uid="uid://8fmb03aluec" path="res://graph_node_renderer/descriptors/descriptor_container.tscn" id="1_hfny8"] +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/button_descriptor.gd" id="2_65frt"] + +[node name="ButtonDescriptor" instance=ExtResource("1_hfny8")] +script = ExtResource("2_65frt") + +[node name="Button" type="Button" parent="." index="1"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 diff --git a/graph_node_renderer/descriptors/check_box_descriptor.gd b/graph_node_renderer/descriptors/check_box_descriptor.gd new file mode 100644 index 0000000..0e64e76 --- /dev/null +++ b/graph_node_renderer/descriptors/check_box_descriptor.gd @@ -0,0 +1,16 @@ +# (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 DescriptorContainer + +@onready var check_box: CheckBox = %CheckBox + + +func _setup(port: Port, _node: DeckNode) -> void: + if descriptor.size() > 1: + check_box.button_pressed = true + if port.value is bool: + check_box.button_pressed = port.value + check_box.text = port.label + port.value_callback = check_box.is_pressed + check_box.toggled.connect(port.set_value) diff --git a/graph_node_renderer/descriptors/check_box_descriptor.tscn b/graph_node_renderer/descriptors/check_box_descriptor.tscn new file mode 100644 index 0000000..01fac83 --- /dev/null +++ b/graph_node_renderer/descriptors/check_box_descriptor.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://t1n4n78tstam"] + +[ext_resource type="PackedScene" uid="uid://8fmb03aluec" path="res://graph_node_renderer/descriptors/descriptor_container.tscn" id="1_seff0"] +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/check_box_descriptor.gd" id="2_3wtke"] + +[node name="CheckBoxDescriptor" instance=ExtResource("1_seff0")] +script = ExtResource("2_3wtke") + +[node name="CheckBox" type="CheckBox" parent="." index="1"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 diff --git a/graph_node_renderer/descriptors/codeblock_descriptor.gd b/graph_node_renderer/descriptors/codeblock_descriptor.gd new file mode 100644 index 0000000..7d81747 --- /dev/null +++ b/graph_node_renderer/descriptors/codeblock_descriptor.gd @@ -0,0 +1,16 @@ +# (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 DescriptorContainer + +@onready var code_edit: CodeEdit = %CodeEdit + + +func _setup(port: Port, _node: DeckNode) -> void: + if port.value: + code_edit.text = str(port.value) + code_edit.placeholder_text = port.label + port.value_callback = code_edit.get_text + code_edit.text_changed.connect(port.set_value.bind(code_edit.get_text)) + code_edit.custom_minimum_size = Vector2(200, 100) + code_edit.size_flags_vertical = SIZE_EXPAND_FILL diff --git a/graph_node_renderer/descriptors/codeblock_descriptor.tscn b/graph_node_renderer/descriptors/codeblock_descriptor.tscn new file mode 100644 index 0000000..cabb7d5 --- /dev/null +++ b/graph_node_renderer/descriptors/codeblock_descriptor.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://chkr2fe7myh8u"] + +[ext_resource type="PackedScene" uid="uid://8fmb03aluec" path="res://graph_node_renderer/descriptors/descriptor_container.tscn" id="1_mf186"] +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/codeblock_descriptor.gd" id="2_2orkx"] + +[node name="CodeblockDescriptor" instance=ExtResource("1_mf186")] +script = ExtResource("2_2orkx") + +[node name="CodeEdit" type="CodeEdit" parent="." index="1"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 diff --git a/graph_node_renderer/descriptors/descriptor_container.gd b/graph_node_renderer/descriptors/descriptor_container.gd new file mode 100644 index 0000000..60a2910 --- /dev/null +++ b/graph_node_renderer/descriptors/descriptor_container.gd @@ -0,0 +1,37 @@ +# meta-description: An empty template with StreamGraph license header. +# (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 HBoxContainer +class_name DescriptorContainer + +@onready var type_icon: TextureRect = %TypeIcon +var descriptor: Array + +const TYPE_ICONS := { + DeckType.Types.BOOL: preload("res://graph_node_renderer/textures/type_bool.svg"), + DeckType.Types.NUMERIC: preload("res://graph_node_renderer/textures/type_numeric.svg"), + DeckType.Types.STRING: preload("res://graph_node_renderer/textures/type_string.svg"), + DeckType.Types.ARRAY: preload("res://graph_node_renderer/textures/type_array.svg"), + DeckType.Types.DICTIONARY: preload("res://graph_node_renderer/textures/type_dictionary.svg"), +} + + +@warning_ignore("unused_parameter") +func set_up_from_port(port: Port, node: DeckNode) -> void: + descriptor = port.descriptor.split(":") + _setup(port, node) + if port.port_type == DeckNode.PortType.VIRTUAL or port.type == DeckType.Types.ANY: + type_icon.visible = false + return + + type_icon.modulate = DeckNodeRendererGraphNode.TYPE_COLORS[port.type] + type_icon.tooltip_text = "Type: %s" % DeckType.type_str(port.type).to_lower() + type_icon.texture = TYPE_ICONS[port.type] + if port.port_type == DeckNode.PortType.OUTPUT: + move_child(type_icon, -1) + + +@warning_ignore("unused_parameter") +func _setup(port: Port, node: DeckNode) -> void: + pass diff --git a/graph_node_renderer/descriptors/descriptor_container.tscn b/graph_node_renderer/descriptors/descriptor_container.tscn new file mode 100644 index 0000000..776737c --- /dev/null +++ b/graph_node_renderer/descriptors/descriptor_container.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=3 format=3 uid="uid://8fmb03aluec"] + +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/descriptor_container.gd" id="1_mllll"] +[ext_resource type="Texture2D" uid="uid://bol5ialhcf2ro" path="res://graph_node_renderer/textures/type_bool.svg" id="2_jphog"] + +[node name="DescriptorContainer" type="HBoxContainer"] +size_flags_horizontal = 3 +script = ExtResource("1_mllll") + +[node name="TypeIcon" type="TextureRect" parent="."] +unique_name_in_owner = true +custom_minimum_size = Vector2(16, 16) +layout_mode = 2 +texture = ExtResource("2_jphog") +stretch_mode = 3 diff --git a/graph_node_renderer/descriptors/field_descriptor.gd b/graph_node_renderer/descriptors/field_descriptor.gd new file mode 100644 index 0000000..44ad79a --- /dev/null +++ b/graph_node_renderer/descriptors/field_descriptor.gd @@ -0,0 +1,14 @@ +# (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 DescriptorContainer + +@onready var line_edit: LineEdit = %LineEdit + + +func _setup(port: Port, _node: DeckNode) -> void: + if port.value: + line_edit.text = str(port.value) + line_edit.placeholder_text = port.label + port.value_callback = line_edit.get_text + line_edit.text_changed.connect(port.set_value) diff --git a/graph_node_renderer/descriptors/field_descriptor.tscn b/graph_node_renderer/descriptors/field_descriptor.tscn new file mode 100644 index 0000000..e858f82 --- /dev/null +++ b/graph_node_renderer/descriptors/field_descriptor.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://c8024ohyvhk5i"] + +[ext_resource type="PackedScene" uid="uid://8fmb03aluec" path="res://graph_node_renderer/descriptors/descriptor_container.tscn" id="1_5hcki"] +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/field_descriptor.gd" id="2_fot1l"] + +[node name="FieldDescriptor" instance=ExtResource("1_5hcki")] +script = ExtResource("2_fot1l") + +[node name="LineEdit" type="LineEdit" parent="." index="1"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +caret_blink = true diff --git a/graph_node_renderer/descriptors/label_descriptor.gd b/graph_node_renderer/descriptors/label_descriptor.gd new file mode 100644 index 0000000..af65863 --- /dev/null +++ b/graph_node_renderer/descriptors/label_descriptor.gd @@ -0,0 +1,12 @@ +# (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 DescriptorContainer + +@onready var label: Label = %Label + + +func _setup(port: Port, _node: DeckNode) -> void: + label.text = port.label + if port.port_type == DeckNode.PortType.OUTPUT: + label.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT diff --git a/graph_node_renderer/descriptors/label_descriptor.tscn b/graph_node_renderer/descriptors/label_descriptor.tscn new file mode 100644 index 0000000..d9e6ecc --- /dev/null +++ b/graph_node_renderer/descriptors/label_descriptor.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://rb5g86kwrovd"] + +[ext_resource type="PackedScene" uid="uid://8fmb03aluec" path="res://graph_node_renderer/descriptors/descriptor_container.tscn" id="1_45bmr"] +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/label_descriptor.gd" id="2_mwy0b"] + +[node name="LabelDescriptor" instance=ExtResource("1_45bmr")] +script = ExtResource("2_mwy0b") + +[node name="Label" type="Label" parent="." index="1"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 diff --git a/graph_node_renderer/descriptors/single_choice_descriptor.gd b/graph_node_renderer/descriptors/single_choice_descriptor.gd new file mode 100644 index 0000000..28550a5 --- /dev/null +++ b/graph_node_renderer/descriptors/single_choice_descriptor.gd @@ -0,0 +1,23 @@ +# (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 DescriptorContainer + +@onready var box: OptionButton = %Box + + +func _setup(port: Port, _node: DeckNode) -> void: + if descriptor.slice(1).is_empty(): + if port.value: + box.add_item(port.value) + else: + box.add_item(port.label) + else: + for item in descriptor.slice(1): + box.add_item(item) + port.value_callback = func(): return box.get_item_text(box.get_selected_id()) + if port.type == DeckType.Types.STRING: + box.item_selected.connect( + func(_id: int): + port.set_value.call(box.get_item_text(box.get_selected_id())) + ) diff --git a/graph_node_renderer/descriptors/single_choice_descriptor.tscn b/graph_node_renderer/descriptors/single_choice_descriptor.tscn new file mode 100644 index 0000000..6d61eaa --- /dev/null +++ b/graph_node_renderer/descriptors/single_choice_descriptor.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://b1gndmvua0sc1"] + +[ext_resource type="PackedScene" uid="uid://8fmb03aluec" path="res://graph_node_renderer/descriptors/descriptor_container.tscn" id="1_d3gnn"] +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/single_choice_descriptor.gd" id="2_v3n2u"] + +[node name="SingleChoiceDescriptor" instance=ExtResource("1_d3gnn")] +script = ExtResource("2_v3n2u") + +[node name="Box" type="OptionButton" parent="." index="1"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 diff --git a/graph_node_renderer/descriptors/spin_box_descriptor.gd b/graph_node_renderer/descriptors/spin_box_descriptor.gd new file mode 100644 index 0000000..82b86ca --- /dev/null +++ b/graph_node_renderer/descriptors/spin_box_descriptor.gd @@ -0,0 +1,27 @@ +# (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 DescriptorContainer + +@onready var spin_box: SpinBox = %SpinBox + + +func _setup(port: Port, _node: DeckNode) -> void: + if port.value != null: + spin_box.value = float(port.value) + if "unbounded" in descriptor: + spin_box.max_value = 99999 + spin_box.allow_greater = true + spin_box.allow_lesser = true + if descriptor.size() > 2: + spin_box.step = float(descriptor[1]) + else: + spin_box.step = 1.0 + else: + spin_box.min_value = float(descriptor[1]) + if descriptor.size() > 2: + spin_box.max_value = float(descriptor[2]) + if descriptor.size() > 3: + spin_box.step = float(descriptor[3]) + port.value_callback = spin_box.get_value + spin_box.value_changed.connect(port.set_value) diff --git a/graph_node_renderer/descriptors/spin_box_descriptor.tscn b/graph_node_renderer/descriptors/spin_box_descriptor.tscn new file mode 100644 index 0000000..3bb5d4f --- /dev/null +++ b/graph_node_renderer/descriptors/spin_box_descriptor.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://bvdxb4cj0anb6"] + +[ext_resource type="PackedScene" uid="uid://8fmb03aluec" path="res://graph_node_renderer/descriptors/descriptor_container.tscn" id="1_ea46l"] +[ext_resource type="Script" path="res://graph_node_renderer/descriptors/spin_box_descriptor.gd" id="2_cxb6h"] + +[node name="SpinBoxDescriptor" instance=ExtResource("1_ea46l")] +script = ExtResource("2_cxb6h") + +[node name="SpinBox" type="SpinBox" parent="." index="1"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 diff --git a/graph_node_renderer/textures/type_array.svg b/graph_node_renderer/textures/type_array.svg new file mode 100644 index 0000000..5f6ad6a --- /dev/null +++ b/graph_node_renderer/textures/type_array.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + diff --git a/graph_node_renderer/textures/type_array.svg.import b/graph_node_renderer/textures/type_array.svg.import new file mode 100644 index 0000000..fd5aa15 --- /dev/null +++ b/graph_node_renderer/textures/type_array.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bigqmjuo8snv6" +path="res://.godot/imported/type_array.svg-2e1191c84d43632ec1e2fc36c8d61944.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graph_node_renderer/textures/type_array.svg" +dest_files=["res://.godot/imported/type_array.svg-2e1191c84d43632ec1e2fc36c8d61944.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/graph_node_renderer/textures/type_bool.svg b/graph_node_renderer/textures/type_bool.svg new file mode 100644 index 0000000..2125b63 --- /dev/null +++ b/graph_node_renderer/textures/type_bool.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + diff --git a/graph_node_renderer/textures/type_bool.svg.import b/graph_node_renderer/textures/type_bool.svg.import new file mode 100644 index 0000000..b09717c --- /dev/null +++ b/graph_node_renderer/textures/type_bool.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bol5ialhcf2ro" +path="res://.godot/imported/type_bool.svg-92b38d7de4df29735406c7b522d91e73.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graph_node_renderer/textures/type_bool.svg" +dest_files=["res://.godot/imported/type_bool.svg-92b38d7de4df29735406c7b522d91e73.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/graph_node_renderer/textures/type_dictionary.svg b/graph_node_renderer/textures/type_dictionary.svg new file mode 100644 index 0000000..9a189ee --- /dev/null +++ b/graph_node_renderer/textures/type_dictionary.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + diff --git a/graph_node_renderer/textures/type_dictionary.svg.import b/graph_node_renderer/textures/type_dictionary.svg.import new file mode 100644 index 0000000..ee5b985 --- /dev/null +++ b/graph_node_renderer/textures/type_dictionary.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://po7fd7hyx61b" +path="res://.godot/imported/type_dictionary.svg-99302a86f715d579f92f26a0938f2f8e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graph_node_renderer/textures/type_dictionary.svg" +dest_files=["res://.godot/imported/type_dictionary.svg-99302a86f715d579f92f26a0938f2f8e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/graph_node_renderer/textures/type_numeric.svg b/graph_node_renderer/textures/type_numeric.svg new file mode 100644 index 0000000..5f23f92 --- /dev/null +++ b/graph_node_renderer/textures/type_numeric.svg @@ -0,0 +1,23 @@ + + + + + + + + + diff --git a/graph_node_renderer/textures/type_numeric.svg.import b/graph_node_renderer/textures/type_numeric.svg.import new file mode 100644 index 0000000..179c2fb --- /dev/null +++ b/graph_node_renderer/textures/type_numeric.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4nxbgk4y2k2g" +path="res://.godot/imported/type_numeric.svg-e123dacd412d3ef8051ed92c771cabc3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graph_node_renderer/textures/type_numeric.svg" +dest_files=["res://.godot/imported/type_numeric.svg-e123dacd412d3ef8051ed92c771cabc3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/graph_node_renderer/textures/type_string.svg b/graph_node_renderer/textures/type_string.svg new file mode 100644 index 0000000..2e60a99 --- /dev/null +++ b/graph_node_renderer/textures/type_string.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + diff --git a/graph_node_renderer/textures/type_string.svg.import b/graph_node_renderer/textures/type_string.svg.import new file mode 100644 index 0000000..e24e461 --- /dev/null +++ b/graph_node_renderer/textures/type_string.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://i0jytdaqbhfq" +path="res://.godot/imported/type_string.svg-899d33697d621295887bbca38bdc4ef5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graph_node_renderer/textures/type_string.svg" +dest_files=["res://.godot/imported/type_string.svg-899d33697d621295887bbca38bdc4ef5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false