Skip to content

Demoli/GodotUndoRedo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Undo / Redo node based on Memento pattern

https://medium.com/design-patterns-in-python/memento-pattern-eba610b3b59c

Usage

Add an Undoer node to your scene and set the target to the node you want to track (by default this is the current parent node).

To save state call call $Undoer.save_state with a dictionary of properties you want to save

To undo call $Undoer.undo this will apply the previous state to your target node

To redo call $Undoer.redo this will apply the next saved sate to your target node

To clear all state call $Undoer.clear

Events

The Undoer also emits undone and redone events with the state that has been applied.

Examples

There are 2 example scenes in res://addons/undoredo/Examples, these demonstrate some different approaches you can use.

Restrictions

This is currently intended to handle properties on the parent object, method calls or properties on child nodes won't work at this time, but may be added later.