Consistent with everything else in the world, we assume that "cube"
is the default state for things to be in (this is NodeCore after
all) and only use shape descriptors for things like lumps, prills
and other non-cube versions of things that also exist as cubes.
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.
Fuel quality is important now, so we want to be able to see the
fuel through the fire. On the other hand, this may cause fire
to be invisible through water...
- Expanded fire api, added "check" varieties of things that also
perform relevant checks for eligibility. Standardized testing
for ventilation.
- Snuff embers to coals as fuel.
- Fuel is consumed randomly by flames. This means that fuel that
are surrounded by flame burn out quicker, while flames
surrounded by fuel consume fuel from each node slower. This
adds subtlety to furnace design for efficiency.
- 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.
This restores an old visual scale from the extremely early days
of NodeCore. That style was removed to syncrhonize the scale of
stack nodes with item ents. The syncrhonization can work the
other way, too, though.
This was triggered by wanting to make loose item ents more
visually distinct at a glance from settled stack nodes, by making
loose item ent rotation faster. Since we were going to change the
properties either way, given that, then we might as well use the
better visual.
Since making stack nodes have a full-size collision hull, it was
distracting having the items inside be so mismatched in scale.
Also, the "pointing around stacks" thing becomes less important
in long-run gameplay with shelves in play, which do not allow
pointing around/through anyway.
The new change preserves uncombined stacks when digging. For
example, if you have dirt on the far right, tools on the far left,
and space between, and you dig dirt with the tools on the left,
it will create a NEW stack in the space between BEFORE it reaches
the dirt on the far right.
This behavior is necessary to ensure we can keep stacks separate
that we've separated for a specific purpose.
We also can't make the behavior vary based on whether using a tool
or not, because this would be even MORE jarring.
- 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.