miggor-StreamGraph/graph_node_renderer/deck_node_renderer_graph_node.gd

41 lines
924 B
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():
node.send(port.index, DeckType.DeckTypeString.new("Button Pressed"))
)
"field":
var line_edit := LineEdit.new()
add_child(line_edit)
line_edit.placeholder_text = port.label
port.value_callback = line_edit.get_text
_:
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,
)