- Make handhold nodes glow, to visually simulate the player
character's now "familarity" with them by feel. We have to
represent it synesthetically because the game only gives us
sight and sound to work with.
- Make floors "scalable" so that they glow, even though they
don't affect maneuverability.
The effect of this is to allow a player who has fallen into a dark
cavern to navigate, slowly, by feel, allowing more extensive
self-rescue possibilities.
- Collapse all nodecore "core" mods in the /mods listing, so it's
easier to find the actual add-on mods.
- Parameterize in-game branding to make renaming derivatives just
a little easier.
- Leave it nil to use the default (5 levels over).
- Set it to false to disable (always drop_in_place).
- Set it to a custom set of groups to skip drop-in-place if the
tool would be able to dig a node with those groups.
Make tree sounds managed by the mod that defines the nodes in
question using register_ambient, consistent with other things like
fluids.
nc_envsounds is now responsible for just the air moving and
cave dripping sounds made by air itself.
Common windiness logic moved into api layer.
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.
If items have a common "stackfamily" property in definition, then
they combine stacks; name and metadata are effectively ignored and
any name is considered acceptable for the combined stack name.
This is used by Lux to allow it to stack naturally instead of the
player having to lay them out spaced on the ground to "cool" them
all to the same level, since all Lux changes dynamically anyway.
- Fix tab switching events for formspecs.
- Add padding to fix cutoff text rendering issue.
- Added more pt and pt_BR translations from Terifo.
Note that when you call translate() on a piece of
text, it merely adds translation tags around it to
request that it be translated client-side, but when
the client submits formspecs, the button values are
the actually translated text, which you can't
trivially access server-side. That means that we
need to use different button fields, not just count on
different button name/values, for events.
Translations are currently by holistic strings, i.e.
no parameterization. This may create some busy
work for translators, but gives them more freedom
to account for differences between languages.
A translation template file is written out to the world
path on game start, so translators have a seed to
work from.
This will make stacked/repeated sounds play slightly differently
so you can hear from the interference patterns that there is more
going on underneath the surface. It also adds volume to dispersed
ambient effects like fire.
This reverts commit 68c6f6671121b1b72b62db97858c25c82f6e834f.
I was able to reproduce the issue, in a case when it was definitely
NOT a falling_node mishap. Snuffing fire by placing a node against
the last bare face of embers apparently creates a race condition,
in which the node you place can be removed instead of only fire
being removed.
Standardize the "play a sound for everybody except the player who
is already playing it client-locally" logic into one place.
Fix failure to correctly detect tool speeds for some things, i.e.
when the player is using a tool but the capability used on a node
is actually inherited from the hand.
Note that this may allow pummeling with wrong tools (e.g. repacking
soils with spades) along with accompanying inappropriate tool wear,
but this should be minor and avoidable, and can be fixed later...
I suspect that the problem that I actually observed was caused by
falling_node behavior, and NOT by an abm. This workaround cannot
remain without firm evidence that it solves an actual problem.