There's a bare foundation right now for implementing undo/redo that I put in place in order to not incur a lot of tech debt before it's time to actually implement it. There's the Action trait and the ActionManager and the exclusive system that executes queued up actions. I try to implement functionality as actions whenever possible, but actually traversing the history isn't possible yet. Just looking at the system as it is, it's going to take a lot of work and thinking to make functional. Off the top of my head, here's some details that need to be dealt with.
Some actions (specifically the context actions) rely on systems in the Bevy scheduler to execute. They send events and the scheduled systems act on these events. So what if the user wants to traverse multiple history steps in one frame? Disaster waiting to happen.
How to separate user actions that operate on the data and actions that only affect the ui representation? #67 keep this in mind
I'm not confident in tackling this by myself at my current skill level. So it will have to wait until help is available.
There's a bare foundation right now for implementing undo/redo that I put in place in order to not incur a lot of tech debt before it's time to actually implement it. There's the Action trait and the ActionManager and the exclusive system that executes queued up actions. I try to implement functionality as actions whenever possible, but actually traversing the history isn't possible yet. Just looking at the system as it is, it's going to take a lot of work and thinking to make functional. Off the top of my head, here's some details that need to be dealt with.
I'm not confident in tackling this by myself at my current skill level. So it will have to wait until help is available.