make descriptor renderers into scenes (#74)

closes #60

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/74
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
This commit is contained in:
Lera Elvoé 2024-02-22 06:59:23 +00:00 committed by yagich
parent df3b3c4990
commit c7e003ffe6
27 changed files with 708 additions and 88 deletions

View file

@ -25,6 +25,17 @@ const PORT_USAGE_ICONS := {
Port.UsageType.BOTH: preload("res://graph_node_renderer/textures/port_any_12.svg"), 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 ## Setups up all the properties based off [member node]. Including looping through
## [method DeckNode.get_all_ports()] and setting up all the descriptors. ## [method DeckNode.get_all_ports()] and setting up all the descriptors.
func _ready() -> void: func _ready() -> void:
@ -112,94 +123,13 @@ func _on_node_renamed(new_name: String) -> void:
func update_port(port: Port) -> void: func update_port(port: Port) -> void:
var descriptor_split := port.descriptor.split(":") var descriptor_split := port.descriptor.split(":")
match descriptor_split[0]: var d: DescriptorContainer
"button": if DESCRIPTOR_SCENES.has(descriptor_split[0]):
var button := Button.new() d = DESCRIPTOR_SCENES[descriptor_split[0]].instantiate()
add_child(button) else:
button.text = port.label d = DESCRIPTOR_SCENES.label.instantiate()
if port.port_type == DeckNode.PortType.OUTPUT: add_child(d)
button.pressed.connect( d.set_up_from_port(port, node)
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
set_slot( set_slot(
port.index, port.index,

View file

@ -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)
)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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()))
)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="15.999999"
viewBox="0 0 4.2333332 4.233333"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-83.939057,-9.2887143)">
<g
id="g31"
transform="translate(88.370832,3.6852425)"
style="stroke-width:1">
<g
id="g67"
transform="translate(-4.4317707,5.6034716)"
style="stroke-width:1">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.794;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect29"
width="1.8520833"
height="1.8520833"
x="0"
y="0"
rx="0.34862742"
ry="0.34862742" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.794;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect30"
width="1.8520833"
height="1.8520833"
x="2.3812499"
y="0"
rx="0.34862742"
ry="0.34862742" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.794;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect31"
width="1.8520833"
height="1.8520833"
x="0"
y="2.3812499"
rx="0.34862742"
ry="0.34862742" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -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

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="15.999999"
viewBox="0 0 4.2333332 4.233333"
version="1.1"
id="svg1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<linearGradient
id="linearGradient34">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop34" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0.5"
id="stop36" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0.5"
id="stop37" />
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop35" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient34"
id="linearGradient35"
x1="31.030689"
y1="18.150694"
x2="39.497356"
y2="9.6840267"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.50000002,0,0,0.50000002,-6.5725387,-62.868126)" />
</defs>
<g
id="layer1"
transform="translate(-53.792779,-8.9428061)">
<circle
style="fill:url(#linearGradient35);stroke:none;stroke-width:0.79375;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path25"
transform="rotate(90)"
cx="11.059473"
cy="-55.909447"
r="2.1166666" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -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

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="15.999999"
viewBox="0 0 4.2333332 4.233333"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-92.123223,-8.9428071)">
<g
id="g66"
transform="matrix(0.5,0,0,0.5,92.123224,8.9428069)"
style="stroke-width:2">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.588;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect53"
width="3.7041667"
height="3.7041667"
x="0"
y="0"
rx="0.69725484"
ry="0.69725484" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.588;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect54"
width="3.7041667"
height="3.7041667"
x="4.7624998"
y="0"
rx="0.69725484"
ry="0.69725484" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.588;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect55"
width="3.7041667"
height="3.7041667"
x="0"
y="4.7625003"
rx="0.69725484"
ry="0.69725484" />
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.588;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="rect56"
width="3.7041667"
height="3.7041667"
x="4.7624998"
y="4.7624998"
rx="0.69725484"
ry="0.69725484" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -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

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="15.999999"
viewBox="0 0 4.2333332 4.233333"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-63.529969,-8.9428061)">
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.794;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path26"
d="m -11.059473,63.52997 a 2.1166666,2.1166666 0 0 1 1.9555449,1.306654 2.1166666,2.1166666 0 0 1 -0.4588357,2.306722 2.1166666,2.1166666 0 0 1 -2.3067222,0.458836 2.1166666,2.1166666 0 0 1 -1.306654,-1.955545 h 2.116667 z"
transform="rotate(-90)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 876 B

View file

@ -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

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="15.999995"
viewBox="0 0 4.2333332 4.233332"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-73.923135,-8.9428071)">
<g
id="g29"
transform="translate(73.923134,8.9428069)"
style="stroke-width:1">
<circle
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.793998;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="circle26"
cx="2.1166666"
cy="2.1166666"
r="2.1166666" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.794;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="circle27"
cx="2.1166666"
cy="2.8608072"
r="0.37620443" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.794;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="circle28"
cx="3.1171222"
cy="2.8608072"
r="0.37620443" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.794;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="circle29"
cx="1.1162109"
cy="2.8608072"
r="0.37620443" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -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