Skip to content

Commit ec333a8

Browse files
committed
Merge pull request godotengine#99564 from JekSun97/get_connetion_count_method_graphedit
Add `get_connection_count` function to `GraphEdit`
2 parents 87515ae + 95ca0aa commit ec333a8

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

doc/classes/GraphEdit.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,14 @@
181181
[/codeblocks]
182182
</description>
183183
</method>
184+
<method name="get_connection_count">
185+
<return type="int" />
186+
<param index="0" name="from_node" type="StringName" />
187+
<param index="1" name="from_port" type="int" />
188+
<description>
189+
Returns the number of connections from [param from_port] of [param from_node].
190+
</description>
191+
</method>
184192
<method name="get_connection_line" qualifiers="const">
185193
<return type="PackedVector2Array" />
186194
<param index="0" name="from_node" type="Vector2" />

scene/gui/graph_edit.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,16 @@ const List<Ref<GraphEdit::Connection>> &GraphEdit::get_connection_list() const {
337337
return connections;
338338
}
339339

340+
int GraphEdit::get_connection_count(const StringName &p_node, int p_port) {
341+
int count = 0;
342+
for (const Ref<Connection> &conn : connections) {
343+
if ((conn->from_node == p_node && conn->from_port == p_port) || (conn->to_node == p_node && conn->to_port == p_port)) {
344+
count += 1;
345+
}
346+
}
347+
return count;
348+
}
349+
340350
void GraphEdit::set_scroll_offset(const Vector2 &p_offset) {
341351
setting_scroll_offset = true;
342352
h_scrollbar->set_value(p_offset.x);
@@ -2640,6 +2650,7 @@ void GraphEdit::_bind_methods() {
26402650
ClassDB::bind_method(D_METHOD("disconnect_node", "from_node", "from_port", "to_node", "to_port"), &GraphEdit::disconnect_node);
26412651
ClassDB::bind_method(D_METHOD("set_connection_activity", "from_node", "from_port", "to_node", "to_port", "amount"), &GraphEdit::set_connection_activity);
26422652
ClassDB::bind_method(D_METHOD("get_connection_list"), &GraphEdit::_get_connection_list);
2653+
ClassDB::bind_method(D_METHOD("get_connection_count", "from_node", "from_port"), &GraphEdit::get_connection_count);
26432654
ClassDB::bind_method(D_METHOD("get_closest_connection_at_point", "point", "max_distance"), &GraphEdit::_get_closest_connection_at_point, DEFVAL(4.0));
26442655
ClassDB::bind_method(D_METHOD("get_connections_intersecting_with_rect", "rect"), &GraphEdit::_get_connections_intersecting_with_rect);
26452656
ClassDB::bind_method(D_METHOD("clear_connections"), &GraphEdit::clear_connections);

scene/gui/graph_edit.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ class GraphEdit : public Control {
399399
// Connection related methods.
400400
Error connect_node(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port);
401401
bool is_node_connected(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port);
402+
int get_connection_count(const StringName &p_node, int p_port);
402403
void disconnect_node(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port);
403404
void clear_connections();
404405

0 commit comments

Comments
 (0)