miggor-StreamGraph/graph_node_renderer/deck_node_renderer_graph_node.gd

53 lines
1.3 KiB
GDScript3
Raw Normal View History

2023-06-12 17:32:36 +02:00
extends GraphNode
class_name DeckNodeRendererGraphNode
var node: DeckNode
func _ready() -> void:
title = node.name
for port in node.get_all_ports():
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():
2023-06-12 17:59:30 +02:00
node.send(port.index, DeckType.DeckTypeBool.new(true))
)
elif port.port_type == DeckNode.PortType.INPUT:
button.pressed.connect(
func():
node._receive(port.index, DeckType.DeckTypeBool.new(true))
2023-06-12 17:32:36 +02:00
)
"field":
var line_edit := LineEdit.new()
add_child(line_edit)
2023-07-21 10:26:43 +02:00
if port.value:
line_edit.text = str(port.value)
2023-06-12 17:32:36 +02:00
line_edit.placeholder_text = port.label
port.value_callback = line_edit.get_text
2023-07-21 10:26:43 +02:00
line_edit.text_changed.connect(port.set_value)
2023-06-12 17:32:36 +02:00
_:
var label := Label.new()
add_child(label)
label.text = port.label
set_slot(
port.index,
port.port_type == DeckNode.PortType.INPUT,
0,
Color.WHITE,
port.port_type == DeckNode.PortType.OUTPUT,
0,
Color.WHITE,
)
func _on_position_offset_changed() -> void:
node.set_meta("position_offset", position_offset)