summaryrefslogtreecommitdiffstats
path: root/scene/resources/visual_shader.cpp
diff options
context:
space:
mode:
authorYuri Rubinsky <chaosus89@gmail.com>2022-07-27 08:06:34 +0300
committerYuri Rubinsky <chaosus89@gmail.com>2022-07-27 08:06:34 +0300
commit2f4339818280e545e4c4811be71534d4147299aa (patch)
tree4ccdb0c1c4bd26754c17e5ce2e8cef90a946c990 /scene/resources/visual_shader.cpp
parentad9a8e70f499267251daaa4cb51f3c2545d4ad4e (diff)
downloadredot-engine-2f4339818280e545e4c4811be71534d4147299aa.tar.gz
Add a check to prevent duplicating connections in visual shader
Diffstat (limited to 'scene/resources/visual_shader.cpp')
-rw-r--r--scene/resources/visual_shader.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp
index b68cce9dda..3cf643221b 100644
--- a/scene/resources/visual_shader.cpp
+++ b/scene/resources/visual_shader.cpp
@@ -967,6 +967,12 @@ void VisualShader::connect_nodes_forced(Type p_type, int p_from_node, int p_from
ERR_FAIL_COND(!g->nodes.has(p_to_node));
ERR_FAIL_INDEX(p_to_port, g->nodes[p_to_node].node->get_input_port_count());
+ for (const Connection &E : g->connections) {
+ if (E.from_node == p_from_node && E.from_port == p_from_port && E.to_node == p_to_node && E.to_port == p_to_port) {
+ return;
+ }
+ }
+
Connection c;
c.from_node = p_from_node;
c.from_port = p_from_port;