mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 21:51:22 +00:00 
			
		
		
		
	Fix auto-connection from output node to input (VisualShaders)
This commit is contained in:
		
							parent
							
								
									f030b0c83d
								
							
						
					
					
						commit
						46cd36f009
					
				
					 3 changed files with 19 additions and 0 deletions
				
			
		|  | @ -2315,6 +2315,13 @@ void VisualShaderEditor::_add_node(int p_idx, int p_op_idx, String p_resource_pa | |||
| 				undo_redo->add_do_method(graph_plugin.ptr(), "connect_nodes", type, _from_node, _from_slot, to_node, to_slot); | ||||
| 				undo_redo->add_undo_method(graph_plugin.ptr(), "disconnect_nodes", type, _from_node, _from_slot, to_node, to_slot); | ||||
| 			} else { | ||||
| 				// Need to setting up Input node properly before committing since `is_port_types_compatible` (calling below) is using `mode` and `shader_type`.
 | ||||
| 				VisualShaderNodeInput *input = Object::cast_to<VisualShaderNodeInput>(vsnode.ptr()); | ||||
| 				if (input) { | ||||
| 					input->set_shader_mode(visual_shader->get_mode()); | ||||
| 					input->set_shader_type(visual_shader->get_shader_type()); | ||||
| 				} | ||||
| 
 | ||||
| 				// Attempting to connect to the first correct port.
 | ||||
| 				for (int i = 0; i < vsnode->get_output_port_count(); i++) { | ||||
| 					if (visual_shader->is_port_types_compatible(vsnode->get_output_port_type(i), input_port_type)) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yuri Roubinsky
						Yuri Roubinsky