- Split infusion logic from tool registration
so tools aren't depending on sharing local
tables with infusion logic.
- Use alternative_lux_* fields on tool item
registrations to control how lux infusion and
boost/unboost applies to tools.
- It should now be possible to register tools
independently that can tap into lux infusion
and boost features.
- It should now be possible to make tools
boostable, unboostable, and infusable all
independently, so they don't need to support
all those actions, and they don't need to
round-trip from e.g. a boost/unboost operation.
- We no longer depend on a naming convention
for boost/unboost pairs (though in practice we
follow it in the core game, but mods are not
required to).
While I'd like these to be opaque, The MT
engine unfortunately does not allow this
without introducing dark shadows inside the
node the fluid occupies, which is evident if
flowing opaque liquid is up against the side
of a container.
The use of [REMOVED] was originally intended to
keep translations of past strings when removed, so if
they were re-added later we could revive the
translations without relying on Weblate to keep them
for us, i.e. we should be able to regenerate Weblate
state (including hidden strings) from this repo.
Since we are now committing copies of the raw
weblate files, we should be able to revive anything
we need from git history anyway.
So far it looks like Weblate does not automatically
remove translation strings from target languages
when the source language is changed. If this
becomes an issue later then we can scrape the git
repo history to reconstruct lost strings at that time.
This also cleans up some translations that were being
mistakenly included in the final compiled output
despite being removed, because we weren't
correctly filtering out [REMOVED] strings after the
punctuation was added to silence Weblate warnings.
If two stacks try to move into the same spot at the
same time, both will be placed there and one will
overwrite the other; instead, we should do a check for
the "head" of a moving item chain (the only one that
can be moving into a space not being vacated by
another) and block collisions.
Somehow an ent can get into a state where
it needs to set velocity but doesn't know what
velocity to set; velocities are transient
phenomena anyway, so just ignore this.
Instead of checking for and immediately
completing a craft, the API can be told to
search for a recipe and return a function that
can be used to commit it later. This way,
we can search for a valid recipe during the
"check" phase of a craft check and then
commit it during the "after" phase.
Setting the water sink rate to zero seems satisfactory
enough. Players can now tread water without
sinking. It DOES feel a little like you're just hovering
in water instead of bobbing, but I guess it's the best
we can expect from the engine right now.
16 total mask positions rather than like 150. This
should (1) cut back on video memory leakage, and
(2) reduce the probability of client lag due to drawing
dynamic textures all the time, after it's had a little
time to "warm up".
- Pass a def table instead of a function
- Retroactive defs will also scan over all existing
definitions and have an opportunity to modify them
at time of registration.
We want to start requiring translation informing to
happen at loadtime, so we can sort strings into
groups by mod, so we can (1) keep the base NC
locale data clean of optional mods, and (2) manage
translations for mods separately.
If a player is close enough to an event when it
happens (withing "likely hearing" distance) then if
they later punch the node then they can "collect"
the discovery.
The idea is that if a player hears the sound of
something happening, then they might go and
investigate and discover the thing they thought
they had left there isn't what's there anymore.
In retrospect I may want to combine this with a
limited form of the visual witnessing, just as there
may be events that a player is less likely to touch
in aftermath, or may not be practical to (e.g.
if what's left behind is air)
These may be especially valuable because some
players may be used to dropping items ONLY using
the formspec inventory and may have forgotten that
they even have key bindings for this; the hint should
motivate them to search for a way.