1#ifndef YAZE_APP_EDITOR_SPRITE_SPRITE_UNDO_ACTIONS_H_
2#define YAZE_APP_EDITOR_SPRITE_SPRITE_UNDO_ACTIONS_H_
9#include "absl/status/status.h"
10#include "absl/strings/str_format.h"
52 absl::Status
Undo()
override {
54 return absl::InternalError(
"SpriteEditAction: no restore callback");
57 return absl::OkStatus();
60 absl::Status
Redo()
override {
62 return absl::InternalError(
"SpriteEditAction: no restore callback");
65 return absl::OkStatus();
77 size_t before_size = 0;
81 size_t after_size = 0;
Undoable action for edits to a custom ZSprite.
absl::Status Redo() override
bool CanMergeWith(const UndoAction &) const override
std::string Description() const override
Human-readable description (e.g., "Paint 12 tiles on map 5")
size_t MemoryUsage() const override
Approximate memory footprint for budget enforcement.
std::function< void(const SpriteSnapshot &)> RestoreFn
SpriteEditAction(SpriteSnapshot before, SpriteSnapshot after, RestoreFn restore)
absl::Status Undo() override
Abstract base for all undoable actions (Command pattern)
Snapshot of a custom ZSprite's editable state for undo/redo.
project::SpriteAssetBinding binding
zsprite::ZSprite sprite_data
int current_animation_index
std::vector< Frame > Frames