3184 Commits

Author SHA1 Message Date
Aaron Suen
7849c87026 Fully stabilize screenshot smoke generators
Instead of using limited-lifetime particles that need to be
refreshed, use sprite entities, which never need to be replaced
as long as they stay loaded.

There was a short "glitch" when replacing the particles where
they could appear twice, or be absent, for a frame or two.  If
we're taking the screenshot at insanely high resolution/AA, which
the automation in this mod enables, we may have fractional FPS,
and the time window when the particles are in an invalid state
may expand to the point where it's impossible to capture a
screenshot with the correct smoke particles.

Making the smoke particles stable this way makes it possible to
reliably capture a screenshot with correct smoke particles at
insanely high quality / low framerate.
2024-08-25 11:38:27 -04:00
Aaron Suen
94d9f20bda Fix special tile names in tiledump 2024-08-25 11:02:42 -04:00
Aaron Suen
4f856a11e0 More bone override fixes
The documentation says that position is absolute unless you pass
in absolute = false.  This is not correct, as passing in
absolute = true seems to be necessary to fix it.  That's what was
necessary to get the behavior back in line with what the old
set_bone_position was.
2024-08-24 22:51:31 -04:00
Aaron Suen
aed02ed8b8 Fix "floating heads" observed now in 5.9.0
Moving the head up 1/2 unit was apparently some workaround for an
issue that existed in some previous version, but no longer
applies to 5.9.0 at least.
2024-08-24 15:02:36 -04:00
Aaron Suen
b476da6383 Remove bone interpolation
It's interpolating from some weird position rather than the
previous placement, which is causing weird bouncing effects.
2024-08-24 14:54:32 -04:00
Aaron Suen
8f4856d8e3 Honor MT's list of blocked languages
This is apparently due to some lack of RTL support in MT itself
which is not easily resolved or worked around, so the affected
languages currently just can't be supported.

- Don't produce translated output for languages that are blocked.
- This also works around a package validation error in CDB due to
  some unrecognized unicode in the current nc_api.ar.tr file.
- Also don't advertise translation completion for unsupported
  languages, since users will not experience the translation.
2024-08-24 14:00:20 -04:00
Aaron Suen
4a29ce63cd Translation updates 2024-08-24 13:26:58 -04:00
Aaron Suen
1de8503ecd Remove rejected player announcements by default
There's a setting to reenable them if people really want them,
but they create a lot of chat noise and almost no value in most
circumstances.
2024-08-24 13:21:58 -04:00
Aaron Suen
0214e77540 Force texture scaling for molten glass and amalgamation
For a high-resolution texture pack to properly support these, it
MUST use overrides, either to replace the texture with a pre-baked
one, or to correct the combine layer offsets.  If a texture pack
does not do this, rescale the images down to 16x16 so that the
resultant image is at least properly aligned at some resolution.
2024-08-22 07:37:45 -04:00
Aaron Suen
194d1c416d Experimental flux tracing fix
There were severe performance issues when players place objects
like tools or amalgam to soak under a wide enough spread out flow
of flux, as it was recursively backtracing to the source for each
soaking object, which could involve inspecting a ton of nodes each
time.

Instead, try background scanning all flowing flux nodes, and
propagate distance information slowly forward from the source out
to each node.  Checking each soaking object is now only a fixed
length validation and cache check.  Propagation itself is a fixed
amount of work per node, and the ABM limiter limits the work
involved.

Propagation is a bit slower (possibly a lot slower on a
sufficiently loaded server) so there may be more delays in
soaking response, but it should limit the maximum lag caused by
this mechanic.

The actual distance calculation has changed, so charging rates
may have changed.
2024-08-18 20:53:31 -04:00
Aaron Suen
926b49e390 Update min proto version in conf from 41 to 43 to match 2024-08-18 00:10:18 -04:00
Aaron Suen
714a167905 Don't use show_formspec in player guide
According to Rollerozxa, player:set_inventory_formspec has
updated an already-visible form since at least 5.6, so the extra
explicit show_formspec shouldn't have been necessary for a while.
This also resimplifies the form name hack back out, and further
simplifies the player guide code.
2024-08-15 09:04:22 -04:00
Aaron Suen
97b09a9487 Update minimum required version to 5.8
This allows us to remove a compatibility hack that risked creating
memory leaks on the server side.  There may be other
simplifications possible that aren't known yet (e.g. with
formspec handling)
2024-08-15 09:01:10 -04:00
Aaron Suen
4c5645caa0 Change formname for guide on resending
We are apparently no longer allowed to use show_formspec to replace
an already-open inventory form with another version of the same
form, we have to rename it, and then support 2 different names for
the same form.
2024-08-15 08:58:24 -04:00
Aaron Suen
7e80639ec4 Compatibility patch for set_bone_override 2024-08-15 07:28:53 -04:00
Aaron Suen
99c8313131 Fix hud_elem_type warnings from the NC HUD API
Apparently we will now be dragging along this compatibility hack
until we EOL 5.8.
2024-08-15 07:13:56 -04:00
Aaron Suen
f9e7fc9585 Rebuild AISM index after any AISM is registered
This fixes tool infusion/boosting not working after engine
commit e7dd9737.

Before, minetest.after(0, func) was running in FIFO order, but
after it's in LIFO order.  Unexpectedly, we were actually relying
on the old behavior unknowingly, as the after(0) to build the AISM
index was racing against the after(0) to register the AISMs for
infusion/boosting.  When they were in FIFO order, the AISM index
was rebuilt last, so it included the infusion/boosting AISMs.

We never really intended AISMs to be registered "long" after load
time, but they were never intended not to work "immediately" after
load time.  Using after(0) rather than on_mods_loaded callbacks
ensures that all engine item registration MUST be completed
already.  However, we don't want to get into an arms race of
registering minetest.after(0.00001) to ensure the AISM index gets
rebuilt after all after(0) registrations.  So it's actually cleaner
just to allow AISM registration at any time.

Whenever an AISM is registered, rebuild the index on the next tick
(it's deferred to debounce, since a bunch of AISMs could get
registered in a batch but we only want to rebuild the index once
if possible).  This ensures that the AISM index is never out of
date for a non-trivial amount of time, and thus AISMs should
generally work reliably over time now, regardless of when they're
registered.
2024-08-14 02:09:10 -04:00
Aaron Suen
7d704be2cc Try to default protocol_version_min
This may or may not actually work on servers.  If it does, then
it may help cut down on log/chat noise from players trying to join
using outdated protocols.
2024-07-27 23:41:25 -04:00
Aaron Suen
6f7c7f2796 Fix teleport tracking time upper bound 2024-07-27 23:25:39 -04:00
Aaron Suen
b59bfee64c Push out of ignores outside map boundaries
If the player somehow gets beyond map_limit, allow push-out to
work, but continue to treat ignores inside map_limit as non-solid
until they can finish being loaded.
2024-07-27 23:05:26 -04:00
Aaron Suen
6a98861bdb Translations updated 2024-07-12 23:45:31 -04:00
Aaron Suen
3e2527415f API for transforming stacks upon drop
Items can be changed into other items by dropping.  This can
replace just the item name, or it can run arbitrary logic and
replace the entire stack.

This is used now to drop shining lenses as normal inactive ones
instantly instead of relying on the AISM to deactivate them
after dropping.  It smooths out gameplay logic and may prevent
things like accidentally activating lenses for a moment.
2024-06-11 08:15:39 -04:00
Aaron Suen
8480d0aca4 Fix lens stacking broken by beam detection
Holding lenses in hand while facing an optic beam causes the
lenses in your hand to shine, but shining lenses didn't stack with
non-shining lenses, so picking up lenses from the ground when in
this state would fail to stack.  This fixes that.
2024-06-11 08:03:33 -04:00
Aaron Suen
0778a8e895 Sync nc_player_wield stack ent props w/ other mods
builtin:item entities and nc_player_yctiwy apparently already use
the standard unified stack end property system.

This fixes wield items not displaying the correct metadata-driven
overrides (e.g. color or inventory/wield image) when held in
player hands.  These features are not used in vanilla but are
probably used in mods.
2024-06-11 07:56:58 -04:00
Aaron Suen
a5c472e475 Fix heated load cobble annealing back to ore
For at least since cf4bd2d7 (26 months ago) it looks like the
recipe for quenching lode ore back into cobble has required zero
coolant instead of 1+, causing the quench recipe to happen
instantly in situations where the lode cobble should slowly
anneal over time, effectively preventing vanilla game access to
relocating lode ore per intended mechanics.

This fix should make the lode cobble quenching and annealing
recipes function as originally designed again.

Note that some old mods had relied on the inability to reform lode
ore once it's been dug (likely due to not knowing about the
advanced mechanic rather than explicitly relying on the bug) and
these have only been balanced by accident (assuming other mods
hadn't made lode ore diggable, e.g. by adding higher-tier tools).
This fix will fully cement breakage of those mods, though the
process of annealing lode cobble back into ore again will still
limit the rate that free resources can be duplicated.
2024-06-08 14:22:35 -04:00
Aaron Suen
79efa17174 Translation updates 2024-06-01 22:05:46 -04:00
Aaron Suen
8e0b9e168b Hotfix for set_sky packet storm
Some mods (e.g. catrealm_core) set the sky with some values that
don't match the way minetest's get_sky now returns the sky table,
e.g. colors in "#xxxxxx" string vs {r,g,b,a} table format.  When
we were comparing the new sky against the old one according to the
engine, this caused a mismatch on every step when this condition
was true, causing a sky change packet every step.

Instead of comparing against the engine's internal copy, just
do that for the first run, and then use the last sky definition we
requested after that, under the assumption that the engine did
correctly set it when we called set_sky last.  This should prevent
mismatches when mods disagree with the engine about preferred
format, though only if the mods are themselves consistent.
2024-05-11 20:17:58 -04:00
Aaron Suen
7d6eef2557 Translations 2024-04-20 10:32:54 -04:00
Aaron Suen
d6edb7e789 Translations, fix stats for zh langs 2024-03-30 13:27:39 -04:00
Aaron Suen
372d557f31 Translations 2024-03-17 13:46:58 -04:00
Aaron Suen
1b121ada04 Languages 2024-03-07 20:52:34 -05:00
Aaron Suen
4ea56dea9c Document an issue 2024-03-07 20:52:08 -05:00
Aaron Suen
37d55c3629 Translation updates 2024-02-25 17:04:09 -05:00
Aaron Suen
9b3068b3d1 Switch from JPEG to WebP for CDB
CDB now used WebP for thumbnails, de facto requiring that users of
the site actually support the format, so since it's already
mandatory, take advantage of it.  WebP compresses notably better
than JPEG for comparable quality, so we can make the NodeCore CDB
page and screenshots load faster.
2024-02-18 21:13:13 -05:00
Aaron Suen
1bbd7d0874 Change name in dev mode
Since cdbrelease fixes the game title now, for players who have
a dev repo installed alongside the official game, display a
distinctly "DEV" title in the title bar when the game is selected
on the game bar to make it distinguishable.
2024-02-18 21:07:02 -05:00
Aaron Suen
20302bccbe Remove redundant/outdated game.conf description
cdbrelease will now populate this as needed.
2024-02-09 07:38:24 -05:00
Aaron Suen
e231801f17 Translation update 2024-02-08 22:33:33 -05:00
Aaron Suen
76ed5be447 Translation update 2024-02-07 22:26:46 -05:00
Aaron Suen
a7aa2a042a Make yctiwy honor stasis
When in stasis, do not eject items from removed players or
flush items from the inventory dump queue.
2024-02-06 06:06:53 -05:00
Aaron Suen
eb7c214f29 Translation update 2024-01-31 18:42:37 -05:00
Aaron Suen
b4df466e13 Copyright date updates 2024-01-10 08:48:23 -05:00
Aaron Suen
198c6b343e Translation sync 2024-01-10 08:47:31 -05:00
Aaron Suen
0d35aef585 Merge branch 'ievmt' into 'dev'
Metadata in item entity visuals

See merge request sztest/nodecore!40
2024-01-10 13:46:35 +00:00
Kimapr
41482b830e Metadata in item entity visuals
Send item metadata in item entities using the `wield_item` property,
replacing the deprecated since at least 5.1 `textures[1]` which does not
allow metadata in the itemstring. Only metadata fields known to affect
visuals are sent to the client, count and wear are reset.

This allows item entities to display color and (since 5.8) texture
overrides properly.
2024-01-10 15:08:21 +05:00
Aaron Suen
83dcbfa27a Translation update 2024-01-05 07:23:58 -05:00
Aaron Suen
ad128cfebe Fix "wandering tool" bug
Instead of calculating tool position offset based on its
current position (incorrectly assuming its current pos
at the time of a tool action start is its "home" position),
just set and remember its home position at the time
we calculate the entity properties.
2023-12-30 19:07:54 -05:00
Aaron Suen
abd71fca6e Fix tree trunk stone inclusions
Allow nodes to be ignored from the "remove
unsupported falling nodes in mapgen" hack, and
register things that don't make sense to convert
to stone ever for this exemption.
2023-12-27 12:09:40 -05:00
Aaron Suen
cc02e72b30 Guard against crash on resetting tool position 2023-12-27 11:47:48 -05:00
Aaron Suen
171bcb1ea2 Cleanup optics overbudget messages
Fix the "after N cycle(s)" message being 1 cycle too low, and
make it clearer that "behind" means the number of cycles we're
losing rather than a number of seconds slow we are.
2023-12-15 08:06:25 -05:00
Aaron Suen
e41e4afd5c Hide all rake hints
These are causing the highest volume of "tech support"
workload, and they're not even an essential part of the
game.  Players can discover them via social play, which
will also expose them to knowledge about how to make
them, or they can just skip them.

Ideas about making them appear much later in the
progression (i.e. after having unlocked N total hints
or something) are still valid, but this is at least a
stopgap for now.
2023-12-08 17:45:58 -05:00