Преглед на файлове

Merge pull request #42490 from Chaosus/vs_fix_func

Fix VisualShaderNode::set_output_port_connected
Yuri Roubinsky преди 5 години
родител
ревизия
76c308f47b
променени са 2 файла, в които са добавени 4 реда и са изтрити 9 реда
  1. 3 7
      scene/resources/visual_shader.cpp
  2. 1 2
      scene/resources/visual_shader.h

+ 3 - 7
scene/resources/visual_shader.cpp

@@ -65,20 +65,16 @@ bool VisualShaderNode::is_port_separator(int p_index) const {
 
 bool VisualShaderNode::is_output_port_connected(int p_port) const {
 	if (connected_output_ports.has(p_port)) {
-		return connected_output_ports[p_port];
+		return connected_output_ports[p_port] > 0;
 	}
 	return false;
 }
 
 void VisualShaderNode::set_output_port_connected(int p_port, bool p_connected) {
 	if (p_connected) {
-		connected_output_ports[p_port] = true;
-		++connected_output_count;
+		connected_output_ports[p_port]++;
 	} else {
-		--connected_output_count;
-		if (connected_output_count == 0) {
-			connected_output_ports[p_port] = false;
-		}
+		connected_output_ports[p_port]--;
 	}
 }
 

+ 1 - 2
scene/resources/visual_shader.h

@@ -193,8 +193,7 @@ class VisualShaderNode : public Resource {
 
 	Map<int, Variant> default_input_values;
 	Map<int, bool> connected_input_ports;
-	Map<int, bool> connected_output_ports;
-	int connected_output_count = 0;
+	Map<int, int> connected_output_ports;
 
 protected:
 	bool simple_decl = true;