You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-22 15:06:45 +00:00
Merge pull request #99897 from aaronfranke/editor-top-nodes
Clarify API for top selected nodes in EditorSelection and make public
This commit is contained in:
@@ -1251,7 +1251,10 @@ void EditorSelection::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("add_node", "node"), &EditorSelection::add_node);
|
||||
ClassDB::bind_method(D_METHOD("remove_node", "node"), &EditorSelection::remove_node);
|
||||
ClassDB::bind_method(D_METHOD("get_selected_nodes"), &EditorSelection::get_selected_nodes);
|
||||
ClassDB::bind_method(D_METHOD("get_transformable_selected_nodes"), &EditorSelection::_get_transformable_selected_nodes);
|
||||
ClassDB::bind_method(D_METHOD("get_top_selected_nodes"), &EditorSelection::get_top_selected_nodes);
|
||||
#ifndef DISABLE_DEPRECATED
|
||||
ClassDB::bind_method(D_METHOD("get_transformable_selected_nodes"), &EditorSelection::get_top_selected_nodes);
|
||||
#endif // DISABLE_DEPRECATED
|
||||
ADD_SIGNAL(MethodInfo("selection_changed"));
|
||||
}
|
||||
|
||||
@@ -1264,7 +1267,7 @@ void EditorSelection::_update_node_list() {
|
||||
return;
|
||||
}
|
||||
|
||||
selected_node_list.clear();
|
||||
top_selected_node_list.clear();
|
||||
|
||||
// If the selection does not have the parent of the selected node, then add the node to the node list.
|
||||
// However, if the parent is already selected, then adding this node is redundant as
|
||||
@@ -1284,7 +1287,7 @@ void EditorSelection::_update_node_list() {
|
||||
if (skip) {
|
||||
continue;
|
||||
}
|
||||
selected_node_list.push_back(E.key);
|
||||
top_selected_node_list.push_back(E.key);
|
||||
}
|
||||
|
||||
node_list_changed = true;
|
||||
@@ -1308,10 +1311,10 @@ void EditorSelection::_emit_change() {
|
||||
emitted = false;
|
||||
}
|
||||
|
||||
TypedArray<Node> EditorSelection::_get_transformable_selected_nodes() {
|
||||
TypedArray<Node> EditorSelection::get_top_selected_nodes() {
|
||||
TypedArray<Node> ret;
|
||||
|
||||
for (const Node *E : selected_node_list) {
|
||||
for (const Node *E : top_selected_node_list) {
|
||||
ret.push_back(E);
|
||||
}
|
||||
|
||||
@@ -1328,13 +1331,13 @@ TypedArray<Node> EditorSelection::get_selected_nodes() {
|
||||
return ret;
|
||||
}
|
||||
|
||||
const List<Node *> &EditorSelection::get_selected_node_list() {
|
||||
const List<Node *> &EditorSelection::get_top_selected_node_list() {
|
||||
if (changed) {
|
||||
update();
|
||||
} else {
|
||||
_update_node_list();
|
||||
}
|
||||
return selected_node_list;
|
||||
return top_selected_node_list;
|
||||
}
|
||||
|
||||
List<Node *> EditorSelection::get_full_selected_node_list() {
|
||||
|
||||
Reference in New Issue
Block a user