|
@@ -456,16 +456,22 @@ void AnimationNodeBlendTreeEditor::_delete_request(const String &p_which) {
|
|
|
undo_redo->commit_action();
|
|
|
}
|
|
|
|
|
|
-void AnimationNodeBlendTreeEditor::_delete_nodes_request() {
|
|
|
+void AnimationNodeBlendTreeEditor::_delete_nodes_request(const Array &p_nodes) {
|
|
|
List<StringName> to_erase;
|
|
|
|
|
|
- for (int i = 0; i < graph->get_child_count(); i++) {
|
|
|
- GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i));
|
|
|
- if (gn) {
|
|
|
- if (gn->is_selected() && gn->is_close_button_visible()) {
|
|
|
- to_erase.push_back(gn->get_name());
|
|
|
+ if (p_nodes.empty()) {
|
|
|
+ for (int i = 0; i < graph->get_child_count(); i++) {
|
|
|
+ GraphNode *gn = Object::cast_to<GraphNode>(graph->get_child(i));
|
|
|
+ if (gn) {
|
|
|
+ if (gn->is_selected() && gn->is_close_button_visible()) {
|
|
|
+ to_erase.push_back(gn->get_name());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < p_nodes.size(); i++) {
|
|
|
+ to_erase.push_back(p_nodes[i]);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (to_erase.empty()) {
|