Optic checks were being propagated unconditionally in loops,
causing nearly every node in an optic network to be checked every
time.
This restores behavior to the original intended behavior of
propagating forward changes on next tick, but stopping at points
where state quiesces.
Unfortunately beam obstruction sensing has been working
instantaneously because of this bug, and that will revert to the
original intended behavior of having those picked up only on
random checks, which may cause regressions in some builds.
- Make lens not flicker with light level dithering by using
histerisis in threshold.
- Optical nodes always read the past world snapshot for creating
the next snapshot, so there are no accidental fast paths
through optical logic leading to glitches (hopefully).
It should now be possible to obtain the new optical stuff given
only resources in-game. The molten glass casting process, in
particular, should be at least a little interesing.
These recipes aren't very interesting and may be subject to
refinements in the future.
There seems to be an issue triggering events, so a lot of work
is being done by the abm to cover over this problem...
Much like my earlier work with sz_rotary, I suspect a lot of
fine-tuning will be needed.