-
Notifications
You must be signed in to change notification settings - Fork 8
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
Compositing Operation
s
#522
Comments
This turns out to require rethinking of how all modifiers interact with operations. As I wrote in 2132094 which adds some inactive code that would try to implement compositing operations:
I believe we need to switch everything to “case 1” and, in particular, |
Another example of “case 1” being the right choice: suppose a block with a |
…lves. This fixes the core problem of <#522>: if we want modifiers in general to be able to modify a block’s actions, then they must always build on top of the actions they are given by the *previous* modifier. There probably need to be further changes, but I’ll deal with those as they come up.
Commit d5b7ce7 switches over to “case 1” for
However, the original goal of general operator composition is not yet achieved: we still need composable schedules and handling operators other than |
We want it to be possible to use
Modifier::Composite
on blocks which both havetick_action
s. This means:Operation::Become
andOperation::StartMove
.Composite
andCompositeOperator
implementation to know how to execute the composition of operations, while still accounting for things like thereverse
flag.tick_action
schedules, which means thatblock::TickAction
may need to represent multiple schedules and operations, andtime::Schedule
may need to be able to represent the union of any two schedules.The text was updated successfully, but these errors were encountered: