Browse Source

updated to make sure that nodes that arent autogenerated can also be dragged over a patch cord to insert

Jonathan Higgins 3 tháng trước cách đây
mục cha
commit
2030a884aa

+ 6 - 1
scenes/Nodes/inputfile.gd

@@ -1,5 +1,6 @@
 extends GraphNode
 signal open_help
+signal node_moved
 
 func _ready() -> void:
 	#add button to title bar
@@ -11,7 +12,8 @@ func _ready() -> void:
 	titlebar.add_child(btn)
 	
 	$AudioPlayer.setnodetitle.connect(_set_node_title)
-
+	
+	self.position_offset_changed.connect(_on_position_offset_changed)
 
 func _open_help():
 	open_help.emit(self.get_meta("command"), self.title)
@@ -21,3 +23,6 @@ func _set_node_title(file: String):
 	if file.length() > 30:
 		file = file.substr(0, 30) + "..."
 	title = "Input File - " + file
+
+func _on_position_offset_changed():
+	node_moved.emit(self, Rect2(position, size))

+ 0 - 44
scenes/Nodes/nodes.tscn

@@ -802,50 +802,6 @@ size_flags_horizontal = 3
 text = "+"
 metadata/calc = "+"
 
-[node name="GraphNode" type="GraphNode" parent="."]
-layout_mode = 0
-offset_left = 1273.0
-offset_top = 422.0
-offset_right = 1615.0
-offset_bottom = 509.0
-slot/0/left_enabled = true
-slot/0/left_type = 0
-slot/0/left_color = Color(1, 1, 1, 1)
-slot/0/left_icon = null
-slot/0/right_enabled = false
-slot/0/right_type = 0
-slot/0/right_color = Color(1, 1, 1, 1)
-slot/0/right_icon = null
-slot/0/draw_stylebox = true
-slot/1/left_enabled = true
-slot/1/left_type = 0
-slot/1/left_color = Color(1, 1, 1, 1)
-slot/1/left_icon = null
-slot/1/right_enabled = false
-slot/1/right_type = 0
-slot/1/right_color = Color(1, 1, 1, 1)
-slot/1/right_icon = null
-slot/1/draw_stylebox = true
-slot/2/left_enabled = false
-slot/2/left_type = 0
-slot/2/left_color = Color(1, 1, 1, 1)
-slot/2/left_icon = null
-slot/2/right_enabled = false
-slot/2/right_type = 0
-slot/2/right_color = Color(1, 1, 1, 1)
-slot/2/right_icon = null
-slot/2/draw_stylebox = true
-
-[node name="Control" type="Control" parent="GraphNode"]
-custom_minimum_size = Vector2(0, 20)
-layout_mode = 2
-
-[node name="Control2" type="Control" parent="GraphNode"]
-layout_mode = 2
-
-[node name="HSlider" type="HSlider" parent="GraphNode"]
-layout_mode = 2
-
 [connection signal="text_submitted" from="outputfile/FileNameField" to="outputfile" method="_on_file_name_field_text_submitted"]
 [connection signal="toggled" from="outputfile/DeleteIntermediateFilesToggle" to="outputfile" method="_on_delete_intermediate_files_toggle_toggled"]
 [connection signal="toggled" from="outputfile/ReuseFolderToggle" to="outputfile" method="_on_reuse_folder_toggle_toggled"]

+ 6 - 0
scenes/Nodes/outputfile.gd

@@ -1,5 +1,6 @@
 extends GraphNode
 signal open_help
+signal node_moved
 
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
@@ -11,6 +12,8 @@ func _ready() -> void:
 	btn.connect("pressed", Callable(self, "_open_help")) #pass key (process name) when button is pressed
 	titlebar.add_child(btn)
 	
+	self.position_offset_changed.connect(_on_position_offset_changed)
+	
 func init():
 	var interface_settings = ConfigHandler.load_interface_settings()
 	$DeleteIntermediateFilesToggle.button_pressed = interface_settings.get("delete_intermediate", true)
@@ -32,3 +35,6 @@ func _on_delete_intermediate_files_toggle_toggled(toggled_on: bool) -> void:
 
 func _on_reuse_folder_toggle_toggled(toggled_on: bool) -> void:
 	ConfigHandler.save_interface_settings("reuse_output_folder", toggled_on)
+
+func _on_position_offset_changed():
+	node_moved.emit(self, Rect2(position, size))

+ 4 - 0
scenes/main/scripts/control.gd

@@ -128,6 +128,8 @@ func new_patch():
 	effect.name = "inputfile"
 	get_node("GraphEdit").add_child(effect, true)
 	effect.connect("open_help", Callable(open_help, "show_help_for_node"))
+	if effect.has_signal("node_moved"):
+		effect.node_moved.connect(graph_edit._auto_link_nodes)
 	effect.position_offset = Vector2(20,80)
 	default_input_node = effect #store a reference to this node to allow for loading into it directly if software launched with a wav file argument
 	
@@ -136,6 +138,8 @@ func new_patch():
 	get_node("GraphEdit").add_child(effect, true)
 	effect.init() #initialise ui from user prefs
 	effect.connect("open_help", Callable(open_help, "show_help_for_node"))
+	if effect.has_signal("node_moved"):
+		effect.node_moved.connect(graph_edit._auto_link_nodes)
 	effect.position_offset = Vector2((DisplayServer.screen_get_size().x - 480) / uiscale, 80)
 	graph_edit._register_node_movement() #link nodes for tracking position changes for changes tracking
 	

+ 3 - 0
scenes/main/scripts/graph_edit.gd

@@ -56,6 +56,8 @@ func _make_node(command: String, skip_undo_redo := false) -> GraphNode:
 			if command == "outputfile":
 				effect.init() #initialise ui from user prefs
 			effect.connect("open_help", open_help)
+			if effect.has_signal("node_moved"):
+				effect.node_moved.connect(_auto_link_nodes)
 			effect.set_position_offset((control_script.effect_position + graph_edit.scroll_offset) / graph_edit.zoom) #set node to current mouse position in graph edit
 			_register_inputs_in_node(effect) #link sliders for changes tracking
 			_register_node_movement() #link nodes for tracking position changes for changes tracking
@@ -516,6 +518,7 @@ func paste_copied_nodes():
 
 		add_child(new_node, true)
 		new_node.connect("open_help", open_help)
+		new_node.node_moved.connect(_auto_link_nodes)
 		_register_inputs_in_node(new_node) #link sliders for changes tracking
 		_register_node_movement() # link nodes for changes tracking
 		name_map[node_data["name"]] = new_node.name