ABM action calls are delayed until a background timer picks them
up, but it passes in the original args and assumes that the nodes
haven't changed. In addition, it bypasses our bug #8378 hack,
because that check is done in the abm action call but NOT the
background worker timer.
Do a check in the worker to make sure the node to be acted on has
not changed since the call was queued, and just let the call miss
and waste in that case.
Note that this automatically implicitly handles any #8378 issues
that may still be present since it has to force a fresh check of
the node to be operated on anyway.
- Move design principles back into docs (needs cleanup).
- New player-oriented README content.
- Clean up issue/wishlist docs a bit (some things are no longer
relevant).
Bash gravel down into ash to produce dry aggregate.
Dampen the aggregate to produce wet aggregate. The ash chemically
reacts with gravel to produce a cement.
Let the wet aggregate dry and it will cure into smooth-stone.
It will tend to flow and wander if left uncontained though.
We actually haven't been testing in 0.4 at all for quite a while
now. Since this is a standalone base game without complex
interdependency relationships, there isn't really any need to
maintain compat with old versions of the engine. Players can
upgrade to play; keeping a separate copy just to play on old 0.4
servers is even still an option.
There is some internal cruft that has been building up to support
0.4, and this allows us to purge most of it. The larger benefit
may come when we're able to remove line_of_sight in favor of the
more efficient raycast (still yet to be done).
- Included new content.
- Partially converted to base on recipes instead of just items.
- Added support for group and toolcap checks.
Fixed a number of small bugs elsewhere in the process.
It's barely usable/playable.
I'm not happy with how disjoint it is from the existing crafting
system, for little gain; there's a lot of on_nodepunch logic that
was added for this.
It also doesn't play very well. Major issues:
- Awkward collision with existing logic, e.g. taking things from
shelves, then drawing on side of shelf. Probably need a group
specifically for writable sufaces.
- Single action to rotate through all glyphs is bad. Probably
want one to change through the 8 shapes, and another to change
rotation/reflection.
- Erasure is awkward, inconsistent, and not necessarily reliable.
Should make it possible to recover charcoal in most cases, and
use a unified set of hooks for it...
Should glyphs be pointable and run logic directly on node, or
should we keep it point-through...?
Hopefully calling minetest.get_node_or_nil() again for all ABM's
will bypass the broken node cache. We should see warning messages
in the logs if this is the case.
- Don't generate in high terrain above y = 32 at all.
- Increase concentraion through 7 different strata moving downwards
up until max concentration at y = -4096. This creates incentives
for digging deep instead of just staying at surface.
- Intercept /give commands.
- Provide an API for giving the player an item and inserting it
into the inventory in the right place(s).
- Change the fill order. We try to fill the current slot first,
the continue to the right to the end of the bar, and then
finally work our way left to the beginning. I think this fill
order should be most comfortable, in terms of having items tend
to fall close to the cursor.
Use interception where possible to modify destintion for items
directly instead of relying on post-hoc inventory rearrangement.
This should resolve the glitches where items appear in the wrong
place in inventory for a flash before being moved.