You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
Refactor to use internal foreign resource checking function.
Create unique duplicates of embedded animations when calling 'Make Unique' on AnimationLibrary.
This commit is contained in:
@@ -283,26 +283,7 @@ void AnimationPlayerEditor::_animation_selected(int p_which) {
|
||||
|
||||
Ref<Animation> anim = player->get_animation(current);
|
||||
{
|
||||
bool animation_library_is_foreign = false;
|
||||
if (!anim->get_path().is_resource_file()) {
|
||||
int srpos = anim->get_path().find("::");
|
||||
if (srpos != -1) {
|
||||
String base = anim->get_path().substr(0, srpos);
|
||||
if (ResourceLoader::get_resource_type(base) == "PackedScene") {
|
||||
if (!get_tree()->get_edited_scene_root() || get_tree()->get_edited_scene_root()->get_scene_file_path() != base) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(base + ".import")) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(anim->get_path() + ".import")) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
}
|
||||
bool animation_library_is_foreign = EditorNode::get_singleton()->is_resource_read_only(anim);
|
||||
|
||||
track_editor->set_animation(anim, animation_library_is_foreign);
|
||||
Node *root = player->get_node(player->get_root());
|
||||
@@ -773,26 +754,7 @@ void AnimationPlayerEditor::_animation_edit() {
|
||||
if (current != String()) {
|
||||
Ref<Animation> anim = player->get_animation(current);
|
||||
|
||||
bool animation_library_is_foreign = false;
|
||||
if (!anim->get_path().is_resource_file()) {
|
||||
int srpos = anim->get_path().find("::");
|
||||
if (srpos != -1) {
|
||||
String base = anim->get_path().substr(0, srpos);
|
||||
if (ResourceLoader::get_resource_type(base) == "PackedScene") {
|
||||
if (!get_tree()->get_edited_scene_root() || get_tree()->get_edited_scene_root()->get_scene_file_path() != base) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(base + ".import")) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(anim->get_path() + ".import")) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
}
|
||||
bool animation_library_is_foreign = EditorNode::get_singleton()->is_resource_read_only(anim);
|
||||
|
||||
track_editor->set_animation(anim, animation_library_is_foreign);
|
||||
|
||||
@@ -866,25 +828,7 @@ void AnimationPlayerEditor::_update_player() {
|
||||
// Check if the global library is foreign since we want to disable options for adding/remove/renaming animations if it is.
|
||||
Ref<AnimationLibrary> library = player->get_animation_library(K);
|
||||
if (K == "") {
|
||||
if (!library->get_path().is_resource_file()) {
|
||||
int srpos = library->get_path().find("::");
|
||||
if (srpos != -1) {
|
||||
String base = library->get_path().substr(0, srpos);
|
||||
if (ResourceLoader::get_resource_type(base) == "PackedScene") {
|
||||
if (!get_tree()->get_edited_scene_root() || get_tree()->get_edited_scene_root()->get_scene_file_path() != base) {
|
||||
foreign_global_anim_lib = true;
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(base + ".import")) {
|
||||
foreign_global_anim_lib = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(library->get_path() + ".import")) {
|
||||
foreign_global_anim_lib = true;
|
||||
}
|
||||
}
|
||||
foreign_global_anim_lib = EditorNode::get_singleton()->is_resource_read_only(library);
|
||||
}
|
||||
|
||||
List<StringName> animlist;
|
||||
@@ -950,26 +894,7 @@ void AnimationPlayerEditor::_update_player() {
|
||||
String current = animation->get_item_text(animation->get_selected());
|
||||
Ref<Animation> anim = player->get_animation(current);
|
||||
|
||||
bool animation_library_is_foreign = false;
|
||||
if (!anim->get_path().is_resource_file()) {
|
||||
int srpos = anim->get_path().find("::");
|
||||
if (srpos != -1) {
|
||||
String base = anim->get_path().substr(0, srpos);
|
||||
if (ResourceLoader::get_resource_type(base) == "PackedScene") {
|
||||
if (!get_tree()->get_edited_scene_root() || get_tree()->get_edited_scene_root()->get_scene_file_path() != base) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(base + ".import")) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (FileAccess::exists(anim->get_path() + ".import")) {
|
||||
animation_library_is_foreign = true;
|
||||
}
|
||||
}
|
||||
bool animation_library_is_foreign = EditorNode::get_singleton()->is_resource_read_only(anim);
|
||||
|
||||
track_editor->set_animation(anim, animation_library_is_foreign);
|
||||
Node *root = player->get_node(player->get_root());
|
||||
|
||||
Reference in New Issue
Block a user