Instead of hard-coding for the special glass case, check only open
faces of a storebox if the storebox_sealed group is set, otherwise
keep using the old logic of all directions.
A sponge will survive in a shelf or lode crate as long as no side
is exposed to air. It will survive in glass cases as long as the
open top is not exposed to air; the sides are not checked.
Finally use the new Forms to craft shelves
using a 2-component recipe, and replace the
old 3x3 recipes. This affects:
- Wood shelves
- Clear glass cases
- Float glass cases
- Lode crates
- Tote handles
For now, we're just going with the simplest
recipe of just putting an item into the form.
If players want to store things in the form
without assembling a shelf, they'll have to
remember to drop items in through the top
only.
Forms may have served a purpose as makeshift
storage when actual shelves are too expensive
but this is NOT their purpose. They are
primarily intended as crafting ingredients for
proper storage, and secondarily as hoppers for
stack-fed machines. Any ability to use them as
actual player-controlled storage devices is
purely coincidental and not guaranteed.
This caused copious confusion for new players, who assume the
glass "tank" is like an aquarium tank and can be used to carry
water. Originally it was intended to seal in "moisture" for
sponge transport, but that has become a far less important use
case (and in fact sponge transport is probably best done just by
building submerged pathways, like the way amalgam transport is
done) and glass "tanks" are more like "display cases" now, or an
intermediate storage container that adds top access (useful for
totes).
This reverts commit 253c2282917ecade5b8356d592edab40b1d517f5.
Apparently this warning is full of crap. Explicitly
setting use_texture_alpha in the node def does
something DIFFERENT than what the engine says
it's doing enabling it internally. use_texture_alpha
enables alpha BLENDING, which is what we
don't want with interpolation filters, whereas
leaving it off enables alpha THRESHOLDING which
is exactly what we want.
Apparently we will be required to enable
use_texture_alpha explicitly for anything using
any level of transparency, not just alpha
blending, in some future version.
By restricting the recipes we check based
on the name of the central object being
checked, we can do many fewer craft
checks per item and avoid expensive
checks.
Register a "rootmatch" property for all
recipes that represents a broader, quicker
test for recipe eligibility. False positives are
allowed but false negatives are not.
Since most recipes are eligible, we can
use this to build an index for fast lookups
of subsets of recipes to run and skip most
of the other ones.