Simple macro recorder #8
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This update adds a simple macro recorder.
The macro recorder consists of two buttons : a record and a play buttons.
To be recorded, an command must implement the the "RecordableCommand" interface.
This assures that to be in a macro, a command has to be explicitly declared for that.
For now, only the RemoveTokenCommand, AddTokenCommand and FireTransitionCommand are the only ones implementing it. This choice is based on the fact that all other commands are either useless to repeat more than once (SetTokensCommand for instance) or that they can already be repeated by using Copy/Paste (AddPlaceCommand for instance).
Once a macro has been recorded, it can be played with PlayMacroAction. The UndoAction will undo all the macro.
Deleting an element that is part of the macro will not make the macro unplayable, but the play icon will change to an icon with an "?" indicating that the macro may behave differently from what has been planned.
undos/redos will not be registered during a macro recording.