Explorar o código

Fix RESET animation not being created

kobewi %!s(int64=3) %!d(string=hai) anos
pai
achega
cf74b36740
Modificáronse 2 ficheiros con 12 adicións e 4 borrados
  1. 10 2
      editor/animation_track_editor.cpp
  2. 2 2
      scene/animation/animation_tree.cpp

+ 10 - 2
editor/animation_track_editor.cpp

@@ -4033,12 +4033,20 @@ Ref<Animation> AnimationTrackEditor::_create_and_get_reset_animation() {
 	if (player->has_animation(SceneStringNames::get_singleton()->RESET)) {
 		return player->get_animation(SceneStringNames::get_singleton()->RESET);
 	} else {
+		Ref<AnimationLibrary> al;
+		if (!player->has_animation_library("")) {
+			al.instantiate();
+			player->add_animation_library("", al);
+		} else {
+			al = player->get_animation_library("");
+		}
+
 		Ref<Animation> reset_anim;
 		reset_anim.instantiate();
 		reset_anim->set_length(ANIM_MIN_LENGTH);
-		undo_redo->add_do_method(player, "add_animation", SceneStringNames::get_singleton()->RESET, reset_anim);
+		undo_redo->add_do_method(al.ptr(), "add_animation", SceneStringNames::get_singleton()->RESET, reset_anim);
 		undo_redo->add_do_method(AnimationPlayerEditor::get_singleton(), "_animation_player_changed", player);
-		undo_redo->add_undo_method(player, "remove_animation", SceneStringNames::get_singleton()->RESET);
+		undo_redo->add_undo_method(al.ptr(), "remove_animation", SceneStringNames::get_singleton()->RESET);
 		undo_redo->add_undo_method(AnimationPlayerEditor::get_singleton(), "_animation_player_changed", player);
 		return reset_anim;
 	}

+ 2 - 2
scene/animation/animation_tree.cpp

@@ -541,9 +541,9 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) {
 	player->get_animation_list(&sname);
 
 	Ref<Animation> reset_anim;
-	bool has_reset_anim = player->has_animation("RESET");
+	bool has_reset_anim = player->has_animation(SceneStringNames::get_singleton()->RESET);
 	if (has_reset_anim) {
-		reset_anim = player->get_animation("RESET");
+		reset_anim = player->get_animation(SceneStringNames::get_singleton()->RESET);
 	}
 	for (const StringName &E : sname) {
 		Ref<Animation> anim = player->get_animation(E);