- Defer update until tick, coalesce updates from same tick.
- Behaves more stably when pulling items from shelves.
- Prevents flicker.
- Wield changes supersede node touch (esp shelves).
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.
Nodes cannot be scaled only if they are BOTH falling
nodes AND diggable by hand. Mostly this just means
sand cannot be scaled and needs to be dug out
instead.
Wrong falling check. We don't need to check for repose
because that's already handled by an ABM. Instead use the
standard check_for_falling that's recursive.
The press will now search a small distance through falling
nodes to find a solid node, as long as there are no air gaps
in the pack of falling nodes.
This makes aggregate automation possible.
When lenses face one another and are each fed light to
become active, they now prefer the active state over the
shining state.
Interestingly, inline vs. angled configurations have different
numbers of stable configurations...
AISM's now tick against stacks, including in piles, shelves,
and player inventories, (hopefully) efficiently compared to
the old way with separate ABMs. Item entity support is also
possible, but not necessary yet.
This started out as a bugfix for being able to put a torch inside a
shelf, which didn't make much sense gameplay-wise. It ended up
going quite a bit further.
- Aggregate now gets wet in stack form. Swimming with dry
concrete now has consequences.
- Lux reactions, radiation, and infusion should now behave more
consistently.
- Sponges can now wet or dry in stack form, including inside
containers.
- Torch ignition, quenching, and extinguishing is now more
consistent regardless of context, and torches are now more
dangerous, and can ignite things in more contexts.
- No graphite lubrication needed.
- Just insert pin instead of pounding it in.
- Pins must be inserted into end face.
- Node will not spin from using pin on wrong face.
While this makes scaling a little easier to do, it still doesn't
fix the fundamental problem of scaling being distracting and too
easy to trigger accidentally.
The "pummel" version of scaling caused some confusion when one
player accidentally triggered it trying to figure out how to get
lode out of lode ore. The current one triggers accidentally all
the time just from tabbing out of a game with it running (e.g. it
isn't paused in multiplayer) leaving the character staring at a
wall. While such a player WOULD have opportunity to find
handholds in the wall, we aren't differentiating between a player
who's scrutinizing a surface from one staring off into space.
The scaling needs to be made harder to trigger accidentally, like
reinstating the need for an empty hand. Using a right-click
action may also help distinguish it from pummelng recipes.
Removing this from the alpha branch so players don't get too
accustomed to this functionality and then have it change AGAIN.
This reverts commit 943604cf9588a316dce19e0a60a4219b52c4d905.
- Remove pummel recipes. Now find handholds just by
staring at a particular spot. Being closer or better focused
helps.
- Use only particles instead of a facedir node, so facedir
isn't a problem when adjacent to multiple walls/ceilings.
- Automatically upgrade "wall" climbing to "overhang" climbing
when a ceiling is present.