miggor-StreamGraph/graph_node_renderer/deck_renderer_graph_edit.gd

46 lines
1.5 KiB
GDScript3
Raw Normal View History

2023-06-12 17:32:36 +02:00
extends GraphEdit
const NODE_SCENE := preload("res://graph_node_renderer/deck_node_renderer_graph_node.tscn")
var deck: Deck = Deck.new()
var button_node = preload("res://classes/deck/nodes/button.gd")
var print_node = preload("res://classes/deck/nodes/print.gd")
func _ready() -> void:
var add_button := Button.new()
add_button.text = "Button"
var add_print := Button.new()
add_print.text = "Print"
get_zoom_hbox().add_child(add_button)
get_zoom_hbox().add_child(add_print)
add_button.pressed.connect(
func():
var node := deck.add_node(button_node)
var node_renderer: DeckNodeRendererGraphNode = NODE_SCENE.instantiate()
node_renderer.node = node
add_child(node_renderer)
)
add_print.pressed.connect(
func():
var node := deck.add_node(print_node)
var node_renderer: DeckNodeRendererGraphNode = NODE_SCENE.instantiate()
node_renderer.node = node
add_child(node_renderer)
)
2023-06-12 17:59:30 +02:00
connection_request.connect(attempt_connection)
func attempt_connection(from_node_name: StringName, from_port: int, to_node_name: StringName, to_port: int) -> void:
var from_node: DeckNode = get_node(NodePath(from_node_name)).node
var to_node: DeckNode = get_node(NodePath(to_node_name)).node
var from_output := from_node.get_global_port_idx_from_output(from_port)
var to_input := to_node.get_global_port_idx_from_input(to_port)
if deck.connect_nodes(from_node, to_node, from_output, to_input):
connect_node(from_node_name, from_port, to_node_name, to_port)