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.
- You can now forge hot lode using either tempered OR
annealed anvil.
- This creates a gameplay path for accessing annealed
lode without having the resources (i.e. water/sponges)
to access tempered yet.
- Cold-working is still more efficient for being able to
pick up the excess prills from the process.
- Cold working, and then heating afterwards, is still likely
the only reasonable way to make mattocks.
Stone, lode, and lux tools now all have their handles burn, and
eject the non-flammable portions of the tool.
Now using a unified on_ignite hook for when flammable things catch
fire. The call is made BEFORE the node is replaced, and has an
opportunity to look at node metadata and eject anything
non-flammable.
It can be a function, e.g. for shelves, or a static value in the
same format that the function would return (e.g. for lode tools
which need string values for temper substitutions).
If it returns a string or itemstack, it will eject that from the
position where the node burned. If it returns a table it will
eject all the values of that table.
- Make node match operate on only one of node or stack, depending
on whether node defers to stack via is_stack_only. This should
hopefully prevent future pummel recipe issues.
- Add new core stack API. Needs to be deployed in a lot of places.
- Start work on system for allowing flammable containers; they
eject their potentially non-flammable contents.