Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simple macro recorder #8

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

Lazuliert
Copy link

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.

Undo/redo doesn't work (for now)
Fast replaying works, classic play freeze the app
…ds :

 - AddTokenCommand
 - FireTransitionCommand
 - RemoveTokenCommand

All the others commands would have a very limited interest in being macro'ed,
 and can already be duplicated with others means, such as copy/paste.

It also make the "undo" function more manageable, as it will be restricted to
token operations.
It also filters out some not really redoable actions, like setting a place
static
"undo" undo a complete macro execution and "redo" also redo the whole macro
…e and add

a method getRecordedElement so that the MacroManager have access to more info
about recorded commands.
playMacro Action/Command have been deleted and FastPlayMacro Action/Command
have been renamed into playMacro
The interface now display a "?" in the PlayMacroAction icon when an element
used in the recorded macro is missing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant