Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions editor/animation/animation_blend_space_1d_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,7 @@ void AnimationNodeBlendSpace1DEditor::_blend_space_gui_input(const Ref<InputEven

menu->add_submenu_node_item(TTR("Add Animation"), animations_menu);

List<StringName> names;
tree->get_animation_list(&names);

for (const StringName &E : names) {
for (const StringName &E : tree->get_sorted_animation_list()) {
animations_menu->add_icon_item(get_editor_theme_icon(SNAME("Animation")), E);
animations_to_add.push_back(E);
}
Expand Down
4 changes: 1 addition & 3 deletions editor/animation/animation_blend_space_2d_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,7 @@ void AnimationNodeBlendSpace2DEditor::_blend_space_gui_input(const Ref<InputEven

menu->add_submenu_node_item(TTR("Add Animation"), animations_menu);

List<StringName> names;
tree->get_animation_list(&names);
for (const StringName &E : names) {
for (const StringName &E : tree->get_sorted_animation_list()) {
animations_menu->add_icon_item(get_editor_theme_icon(SNAME("Animation")), E);
animations_to_add.push_back(E);
}
Expand Down
10 changes: 2 additions & 8 deletions editor/animation/animation_blend_tree_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -275,10 +275,7 @@ void AnimationNodeBlendTreeEditor::update_graph() {

ProgressBar *pb = memnew(ProgressBar);

List<StringName> anims;
tree->get_animation_list(&anims);

for (const StringName &F : anims) {
for (const StringName &F : tree->get_sorted_animation_list()) {
mb->get_popup()->add_item(F);
options.push_back(F);
}
Expand Down Expand Up @@ -801,10 +798,7 @@ bool AnimationNodeBlendTreeEditor::_update_filters(const Ref<AnimationNode> &ano
HashSet<String> paths;
HashMap<String, RBSet<String>> types;
{
List<StringName> animation_list;
tree->get_animation_list(&animation_list);

for (const StringName &E : animation_list) {
for (const StringName &E : tree->get_sorted_animation_list()) {
Ref<Animation> anim = tree->get_animation(E);
for (int i = 0; i < anim->get_track_count(); i++) {
String track_path = String(anim->track_get_path(i));
Expand Down
14 changes: 7 additions & 7 deletions editor/animation/animation_library_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ void AnimationLibraryEditor::_file_popup_selected(int p_id) {
} break;
case FILE_MENU_MAKE_LIBRARY_UNIQUE: {
StringName lib_name = file_dialog_library;
List<StringName> animation_list;
LocalVector<StringName> animation_list;

Ref<AnimationLibrary> ald = memnew(AnimationLibrary);
al->get_animation_list(&animation_list);
Expand Down Expand Up @@ -377,7 +377,7 @@ void AnimationLibraryEditor::_load_files(const PackedStringArray &p_paths) {
continue;
}

List<StringName> libs;
LocalVector<StringName> libs;
mixer->get_animation_library_list(&libs);
bool is_already_added = false;
for (const StringName &K : libs) {
Expand Down Expand Up @@ -423,7 +423,7 @@ void AnimationLibraryEditor::_load_files(const PackedStringArray &p_paths) {
continue;
}

List<StringName> anims;
LocalVector<StringName> anims;
al->get_animation_list(&anims);
bool is_already_added = false;
for (const StringName &K : anims) {
Expand Down Expand Up @@ -686,7 +686,7 @@ void AnimationLibraryEditor::update_tree() {
Color ss_color = get_theme_color(SNAME("prop_subsection"), EditorStringName(Editor));

TreeItem *root = tree->create_item();
List<StringName> libs;
LocalVector<StringName> libs;
const Vector<String> collapsed_libs = _load_mixer_libs_folding();

mixer->get_animation_library_list(&libs);
Expand Down Expand Up @@ -743,7 +743,7 @@ void AnimationLibraryEditor::update_tree() {

libitem->set_custom_bg_color(0, ss_color);

List<StringName> animations;
LocalVector<StringName> animations;
al->get_animation_list(&animations);
for (const StringName &L : animations) {
TreeItem *anitem = tree->create_item(libitem);
Expand Down Expand Up @@ -888,7 +888,7 @@ String AnimationLibraryEditor::_get_mixer_signature() const {
String signature = String();

// Get all libraries sorted for consistency
List<StringName> libs;
LocalVector<StringName> libs;
mixer->get_animation_library_list(&libs);
libs.sort_custom<StringName::AlphCompare>();

Expand All @@ -897,7 +897,7 @@ String AnimationLibraryEditor::_get_mixer_signature() const {
signature += "::" + String(lib_name);
Ref<AnimationLibrary> lib = mixer->get_animation_library(lib_name);
if (lib.is_valid()) {
List<StringName> anims;
LocalVector<StringName> anims;
lib->get_animation_list(&anims);
anims.sort_custom<StringName::AlphCompare>();
for (const StringName &anim_name : anims) {
Expand Down
20 changes: 9 additions & 11 deletions editor/animation/animation_player_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -829,10 +829,8 @@ void AnimationPlayerEditor::_update_animation_blend() {

blend_editor.tree->clear();

String current = animation->get_item_text(animation->get_selected());
StringName current = animation->get_item_text(animation->get_selected());

List<StringName> anims;
player->get_animation_list(&anims);
TreeItem *root = blend_editor.tree->create_item();
updating_blends = true;

Expand All @@ -841,7 +839,7 @@ void AnimationPlayerEditor::_update_animation_blend() {
blend_editor.next->clear();
blend_editor.next->add_item("", i);

for (const StringName &to : anims) {
for (const StringName &to : player->get_sorted_animation_list()) {
TreeItem *blend = blend_editor.tree->create_item(root);
blend->set_editable(0, false);
blend->set_editable(1, true);
Expand Down Expand Up @@ -1038,7 +1036,7 @@ void AnimationPlayerEditor::_update_player() {
return;
}

List<StringName> libraries;
LocalVector<StringName> libraries;
player->get_animation_library_list(&libraries);

int active_idx = -1;
Expand All @@ -1063,7 +1061,7 @@ void AnimationPlayerEditor::_update_player() {
}
}

List<StringName> animlist;
LocalVector<StringName> animlist;
anim_library->get_animation_list(&animlist);

for (const StringName &E : animlist) {
Expand Down Expand Up @@ -1169,7 +1167,7 @@ void AnimationPlayerEditor::_update_name_dialog_library_dropdown() {
}
}

List<StringName> libraries;
LocalVector<StringName> libraries;
player->get_animation_library_list(&libraries);
library->clear();

Expand Down Expand Up @@ -1511,7 +1509,7 @@ void AnimationPlayerEditor::_current_animation_changed(const StringName &p_name)
}

// Determine the read-only status of the animation's library and the libraries as a whole.
List<StringName> libraries;
LocalVector<StringName> libraries;
player->get_animation_library_list(&libraries);

bool current_animation_library_is_readonly = false;
Expand All @@ -1523,7 +1521,7 @@ void AnimationPlayerEditor::_current_animation_changed(const StringName &p_name)
all_animation_libraries_are_readonly = false;
}

List<StringName> animlist;
LocalVector<StringName> animlist;
anim_library->get_animation_list(&animlist);
bool animation_found = false;
for (const StringName &E : animlist) {
Expand Down Expand Up @@ -2464,13 +2462,13 @@ void AnimationPlayerEditorPlugin::_update_dummy_player(AnimationMixer *p_mixer)
memdelete(default_node);

// Library list is dynamically added to property list, should be copied explicitly.
List<StringName> existing_libs;
LocalVector<StringName> existing_libs;
dummy_player->get_animation_library_list(&existing_libs);
for (const StringName &K : existing_libs) {
dummy_player->remove_animation_library(K);
}

List<StringName> libraries;
LocalVector<StringName> libraries;
p_mixer->get_animation_library_list(&libraries);
for (const StringName &K : libraries) {
dummy_player->add_animation_library(K, p_mixer->get_animation_library(K));
Expand Down
4 changes: 2 additions & 2 deletions editor/animation/animation_state_machine_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include "scene/gui/line_edit.h"
#include "scene/gui/option_button.h"
#include "scene/gui/panel_container.h"
#include "scene/gui/rich_text_label.h"
#include "scene/gui/separator.h"
#include "scene/main/viewport.h"
#include "scene/main/window.h"
Expand Down Expand Up @@ -823,8 +824,7 @@ void AnimationNodeStateMachineEditor::_open_menu(const Vector2 &p_position) {
animations_menu->clear();
animations_to_add.clear();

List<StringName> animation_names;
tree->get_animation_list(&animation_names);
LocalVector<StringName> animation_names = tree->get_sorted_animation_list();
menu->add_submenu_node_item(TTR("Add Animation"), animations_menu);
if (animation_names.is_empty()) {
menu->set_item_disabled(menu->get_item_idx_from_text(TTR("Add Animation")), true);
Expand Down
16 changes: 4 additions & 12 deletions editor/animation/animation_track_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -649,9 +649,7 @@ void AnimationTrackKeyEdit::_get_property_list(List<PropertyInfo> *p_list) const
if (root_path) {
AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(root_path->get_node_or_null(animation->track_get_path(track)));
if (ap) {
List<StringName> anims;
ap->get_animation_list(&anims);
for (const StringName &E : anims) {
for (const StringName &E : ap->get_sorted_animation_list()) {
if (!animations.is_empty()) {
animations += ",";
}
Expand Down Expand Up @@ -1255,9 +1253,7 @@ void AnimationMultiTrackKeyEdit::_get_property_list(List<PropertyInfo> *p_list)
if (root_path) {
AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(root_path->get_node_or_null(animation->track_get_path(first_track)));
if (ap) {
List<StringName> anims;
ap->get_animation_list(&anims);
for (const StringName &anim : anims) {
for (const StringName &anim : ap->get_sorted_animation_list()) {
if (!animations.is_empty()) {
animations += ",";
}
Expand Down Expand Up @@ -4290,10 +4286,8 @@ void AnimationTrackEditor::_animation_track_remove_request(int p_track, Ref<Anim
if (reset->track_get_path(i) == p_from_animation->track_get_path(p_track)) {
// Check if the reset track isn't used by other animations.
bool used = false;
List<StringName> animation_list;
player->get_animation_list(&animation_list);

for (const StringName &anim_name : animation_list) {
for (const StringName &anim_name : player->get_sorted_animation_list()) {
Ref<Animation> anim = player->get_animation(anim_name);
if (anim == p_from_animation || anim == reset) {
continue;
Expand Down Expand Up @@ -7716,9 +7710,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
} break;
case EDIT_CLEAN_UP_ANIMATION_CONFIRM: {
if (cleanup_all->is_pressed()) {
List<StringName> names;
AnimationPlayerEditor::get_singleton()->get_player()->get_animation_list(&names);
for (const StringName &E : names) {
for (const StringName &E : AnimationPlayerEditor::get_singleton()->get_player()->get_sorted_animation_list()) {
_cleanup_animation(AnimationPlayerEditor::get_singleton()->get_player()->get_animation(E));
}
} else {
Expand Down
15 changes: 4 additions & 11 deletions editor/animation/animation_tree_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -238,26 +238,19 @@ bool AnimationTreeEditor::can_edit(const Ref<AnimationNode> &p_node) const {
return false;
}

Vector<String> AnimationTreeEditor::get_animation_list() {
LocalVector<StringName> AnimationTreeEditor::get_animation_list() {
// This can be called off the main thread due to resource preview generation. Quit early in that case.
if (!singleton->tree || !Thread::is_main_thread() || !singleton->is_visible()) {
// When tree is empty, singleton not in the main thread.
return Vector<String>();
return LocalVector<StringName>();
}

AnimationTree *tree = singleton->tree;
if (!tree) {
return Vector<String>();
return LocalVector<StringName>();
}

List<StringName> anims;
tree->get_animation_list(&anims);
Vector<String> ret;
for (const StringName &E : anims) {
ret.push_back(E);
}

return ret;
return tree->get_sorted_animation_list();
}

AnimationTreeEditor::AnimationTreeEditor() {
Expand Down
2 changes: 1 addition & 1 deletion editor/animation/animation_tree_editor_plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class AnimationTreeEditor : public EditorDock {
void _path_button_pressed(int p_path);
void _animation_list_changed();

static Vector<String> get_animation_list();
static LocalVector<StringName> get_animation_list();

protected:
void _notification(int p_what);
Expand Down
9 changes: 2 additions & 7 deletions editor/docks/scene_tree_dock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1977,10 +1977,7 @@ bool SceneTreeDock::_has_tracks_to_delete(Node *p_node, List<Node *> &p_to_delet
if (ap) {
Node *root = ap->get_node(ap->get_root_node());
if (root && !p_to_delete.find(root)) {
List<StringName> anims;
ap->get_animation_list(&anims);

for (const StringName &E : anims) {
for (const StringName &E : ap->get_sorted_animation_list()) {
Ref<Animation> anim = ap->get_animation(E);
if (anim.is_null()) {
continue;
Expand Down Expand Up @@ -2242,15 +2239,13 @@ void SceneTreeDock::perform_node_renames(Node *p_base, HashMap<Node *, NodePath>
}

if (!points_to_other_animation_player) {
List<StringName> anims;
mixer->get_animation_list(&anims);
Node *root = mixer->get_node(mixer->get_root_node());

if (root) {
HashMap<Node *, NodePath>::Iterator found_root_path = p_renames->find(root);
NodePath new_root_path = found_root_path ? found_root_path->value : root->get_path();
if (!new_root_path.is_empty()) { // No renaming if root node is deleted.
for (const StringName &E : anims) {
for (const StringName &E : mixer->get_sorted_animation_list()) {
Ref<Animation> anim = mixer->get_animation(E);
if (!r_rem_anims->has(anim)) {
r_rem_anims->insert(anim, HashSet<int>());
Expand Down
8 changes: 2 additions & 6 deletions editor/import/3d/post_import_plugin_skeleton_renamer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,7 @@ void PostImportPluginSkeletonRenamer::_internal_process(InternalImportCategory p
TypedArray<Node> nodes = p_base_scene->find_children("*", "AnimationPlayer");
while (nodes.size()) {
AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(nodes.pop_back());
List<StringName> anims;
ap->get_animation_list(&anims);
for (const StringName &name : anims) {
for (const StringName &name : ap->get_sorted_animation_list()) {
Ref<Animation> anim = ap->get_animation(name);
int len = anim->get_track_count();
for (int i = 0; i < len; i++) {
Expand Down Expand Up @@ -208,9 +206,7 @@ void PostImportPluginSkeletonRenamer::internal_process(InternalImportCategory p_
TypedArray<Node> nodes = p_base_scene->find_children("*", "AnimationPlayer");
while (nodes.size()) {
AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(nodes.pop_back());
List<StringName> anims;
ap->get_animation_list(&anims);
for (const StringName &name : anims) {
for (const StringName &name : ap->get_sorted_animation_list()) {
Ref<Animation> anim = ap->get_animation(name);
int track_len = anim->get_track_count();
for (int i = 0; i < track_len; i++) {
Expand Down
Loading