cubes
cubes copied to clipboard
Fix indicator circuit semantics.
The indicator circuit behavior does something impossible. Specifically, it alters the world as the result of a circuit it is in. However, IC blocks which use become or setRotation will fail; we should allow that (given the allowWorldEdit flag; no modifying mid-level circuits when there are two levels of ICs!) and then replace the indicator behavior with an IC.
This implies that block reevaluations are suppressed in favor of circuits, iff the block is part of a circuit and has the IC behavior. It also implies that (in order to avoid infinite update loops) either:
- block rotation becomes a deferred effect,
- setRotation modifies evaluation rules, or
- individual circuits are evaluated differently if they have icInput/icOutput and setRotation does not work in those