Przeglądaj źródła

Fixed delete animation frames in AnimatedSprite, issue 10788

Paulb23 8 lat temu
rodzic
commit
00ccaa5559
1 zmienionych plików z 14 dodań i 0 usunięć
  1. 14 0
      editor/plugins/sprite_frames_editor_plugin.cpp

+ 14 - 0
editor/plugins/sprite_frames_editor_plugin.cpp

@@ -244,8 +244,22 @@ void SpriteFramesEditor::_down_pressed() {
 
 void SpriteFramesEditor::_delete_pressed() {
 
+	ERR_FAIL_COND(!frames->has_animation(edited_anim));
+
 	if (tree->get_current() < 0)
 		return;
+
+	int to_delete = tree->get_current();
+	if (to_delete < 0 || to_delete >= frames->get_frame_count(edited_anim)) {
+		return;
+	}
+
+	undo_redo->create_action(TTR("Delete Resource"));
+	undo_redo->add_do_method(frames, "remove_frame", edited_anim, to_delete);
+	undo_redo->add_undo_method(frames, "add_frame", edited_anim, frames->get_frame(edited_anim, to_delete), to_delete);
+	undo_redo->add_do_method(this, "_update_library");
+	undo_redo->add_undo_method(this, "_update_library");
+	undo_redo->commit_action();
 }
 
 void SpriteFramesEditor::_animation_select() {