524 Commits

Author SHA1 Message Date
Aaron Suen
e54ca43c5c Translation updates 2022-02-27 19:29:49 -05:00
Aaron Suen
0ba60c624a Translation sync 2022-02-10 06:55:54 -05:00
Aaron Suen
c5bcb15a60 End-of-support 5.3 2022-02-10 06:52:29 -05:00
Aaron Suen
766aafa72b Fix crash on stack meta field reordering
Reconstructing a stack by transferring items from another
stack into an empty one, and then re-serializing, can cause
the fields to end up in a different order in serialization, which
causes a false positive detecting stack changes, which cause
another recheck, leading to a stack overflow.

Compare objects structurally, i.e. their key/value pairs,
rather than relying on stable serialization.  The old method
only worked reliably in the case of objects having only one
meta field, which accidentally had worked out most of the
time, but doesn't work well with some mods, e.g. cats that
have both a name and furball metadata.
2022-02-04 20:48:22 -05:00
Aaron Suen
b14a6fd272 Add an (almost) blank file for weblate 2022-01-25 01:00:34 -05:00
Aaron Suen
144f45e13b Update to hosted weblate 2022-01-24 23:48:45 -05:00
Aaron Suen
600f1380a7 Add a blank template for weblate 2022-01-24 23:07:14 -05:00
Aaron Suen
b9d5b42268 Fix skybox being sent every step 2022-01-22 21:01:45 -05:00
Aaron Suen
67f8abd12c Make sure nodecore.match supports aliases 2022-01-18 19:14:07 -05:00
Aaron Suen
28e2fd5590 Experimental API for adjusting in-game time
Everything in NodeCore should already be using
nodecore.gametime instead of minetest.get_gametime().
This API allows an offset to be adjusted between these,
allowing for skipping forward in time.

The idea is to offer an optional "realtime clock" feature via
a mod or config option to allow mobile SP players to advance
time forward for idle mechanics when the game is not
loaded and running, via the realtime clock, to make idle
mechanics more accessible to players on limited battery.
2022-01-18 18:51:10 -05:00
Aaron Suen
3534c3a0f7 Merge branch 'master' into dev 2022-01-17 10:44:33 -05:00
Aaron Suen
8ba435f3e3 Fix player/entity velocity polyfill on 5.3
Apparently players and luaentities use the same metatable,
so the polyfill needs to check if it's a player or not before
choosing which get_velocity to call.
2022-01-17 10:44:24 -05:00
Aaron Suen
ea2ccc972e Debug code 2022-01-15 12:17:13 -05:00
Aaron Suen
39689e30a0 Attempt to limit node setting noise
If bursts of node setting happen all at once, limit
it to about 25 per second.
2022-01-15 12:16:55 -05:00
Aaron Suen
bf8f74b35f Fix cooking/cooling in storebox regression
Allow matching to work explicitly with items inside
containers if so marked, and automatically mark
all cooking/cooling recipes thus.
2022-01-11 20:58:35 -05:00
Aaron Suen
d4d6e225ae Translation updates 2022-01-09 13:30:41 -05:00
Aaron Suen
ce2b2ddfd3 Fix glued lens activation 2022-01-09 13:28:45 -05:00
Aaron Suen
25a548e26a Update groups documentation 2022-01-09 13:18:07 -05:00
Aaron Suen
de979d87e3 Remove guide entry about 3x3 recipes
They should no longer exist, officially.
2022-01-07 20:48:12 -05:00
Aaron Suen
346df76e0a Update translations w/ new rake hint 2022-01-07 20:37:12 -05:00
Aaron Suen
5e75fbd8d4 Translation sync 2022-01-07 20:35:14 -05:00
Aaron Suen
fef59533de Don't crash on missing wear in match 2022-01-07 20:27:44 -05:00
Aaron Suen
28ecc48399 Lots more German translation 2022-01-04 21:00:19 -05:00
Aaron Suen
849ebc62d4 Typo fixes 2022-01-04 16:33:14 -05:00
Aaron Suen
194458a06d Translation updates, with new form/shelf hints 2022-01-04 06:22:49 -05:00
Aaron Suen
741955e097 Fix item deletion on crafting storage boxes
Since items inside box would be deleted, just don't
allow crafting of storeboxes/totes if there's already
an item trapped in the form.
2022-01-02 21:31:15 -05:00
Aaron Suen
1ef418acfc De-genericize metallurgy groups
When this was setup, it was named generically
in order to support future functionality that
used the same heating/tempering/annealing
mechanics.  Ironically this has actually only
caused problems.

Standard game mechanics will not mimic one
another, especially something this complex.
Anything worth making a system for nodecore
that's as complex as lode-working deserves its
own distinct mechanics rather than recycling
lode-working.  So vanilla NC will not reuse the
metal-working logic anyway.

Mods were able to reuse the existing logic, but
ironically the only one mod that would actually
have benefitted from it (i.e. uses very similar
heating/tempering/annealing) just copied and
pasted the code from NodeCore anyway, which
not only didn't take advantage of the existing
mechanic provided, but actually made the mod
break the game when installed, because the
mod would replace functionality in use by
vanilla with an older version, and the copying
will always keep that functionality locked in to
an older version, breaking whenever future
changes to the base mechanic are made.

Rename the base mechanic to (1) get out of
the way of the existing mod, and (2) make it
more clear that this is NOT generic functionality
that can be used to create new metals, but
only specifically for lode, and if somebody else
wants a clone of this logic, they would need to
rename it to make sense.
2021-12-29 11:34:30 -05:00
Aaron Suen
c20bc5b502 Make a proper air_equivalent API 2021-12-26 13:26:28 -05:00
Aaron Suen
2c6eb8dd91 A few more translations 2021-12-26 00:15:46 -05:00
Aaron Suen
27f6447787 More translations, more notes. 2021-12-21 18:08:30 -05:00
Aaron Suen
d43fccf9f7 Update credits for new german translations 2021-12-21 12:27:42 -05:00
Aaron Suen
d450857844 Translation download reliablity update
Detect a translation that once had strings but became
blank due to an uncaught failure to download the
file from weblate.

Also make trace output a bit terser but more specific.
2021-12-21 12:26:24 -05:00
Aaron Suen
1c5434b433 Update translation src w/ hint/discover updates 2021-12-21 11:46:22 -05:00
Aaron Suen
3db0d71dcb Translation updates 2021-12-21 11:44:01 -05:00
Aaron Suen
2b9c30c8de Fix node stack meta privatization
When stack data was moved from node meta
inventory to fields, it was automatically privatized
and no longer sent to clients, which led to the
unintended consequence of breaking client
enable_local_map_saving.  Maps saved this way are
missing all stored item stacks, which can be a very
significant part of the gameplay and render the
maps useless for many purposes.

The default behavior should be to leave this engine
feature intact, with an opt-in option for those who may
have come to rely on the alternative behavior.
2021-12-18 12:42:45 -05:00
Aaron Suen
8c027089ae Merge branch 'unloadcheck' into dev 2021-12-18 12:14:08 -05:00
Aaron Suen
a1b2df3941 Begin standardization of unload bounds check
- New near_unloaded API that supports custom
  distance parameter, map bounds check, and
  some optimizations.
- Add area automatic unload check support to ABM
  API and add to applicable ABMs, replacing many
  old manual checks.

Note that the explicit unload check is only strictly
necessary when something will happen due to
a node NOT being present in the area, e.g. something
igniting due to absent coolant, or soaking quantity
being reset due to missing sources.  In simple cases
where the absence of a thing causes the ABM to do
nothing, then the standard check can work because
the default action is to do nothing anyway.
2021-12-18 11:28:14 -05:00
Aaron Suen
a73d9e4457 Report demuxed ABM amounts too 2021-12-18 10:44:45 -05:00
Aaron Suen
fb76d23f36 Expand peat grinding to groups
- Use groups so it's easier for mods to add things
  that can be ground into peat.
- Pretty much all flora can be ground into peat as well.
2021-12-16 20:47:13 -05:00
Aaron Suen
080aed561e Fix crash 2021-12-15 21:36:02 -05:00
Aaron Suen
d6ebd48e26 Fix mod list 2021-12-13 22:54:13 -05:00
Aaron Suen
8bfdc211a3 Convert some action logs to info
We were using action log level for a lot of
things because by default MT does not seem
to capture info logs to stderr.  On "production"
servers though this makes too much noise and
makes it hard to find actual player actions.
Servers that want info logging will just have
to configure/compile it in.
2021-12-11 21:26:18 -05:00
Aaron Suen
17c5b2fda7 Leaching by group, fix settingtypes.txt 2021-12-11 11:36:52 -05:00
Aaron Suen
d7df7f5521 Translation sync 2021-12-10 08:05:53 -05:00
Aaron Suen
7f5155f91d Glowing lens slow-start
Lenses enter a "glowing" state to propagate signal
immediately as before, but now they don't actually
produce light until powered steadily for 2 seconds.

This should mitigate the risk of "strobe" circuits that
cause excess lighting recalculations and irritate some
sensitive players.
2021-12-03 23:04:58 -05:00
Aaron Suen
34a2562964 Polyfill for player:get_velocity, clean up other hooks
This gets rid of the 5.4+ "deprecated get_player_velocity" warning
and modernizes the code to use get_velocity() everywhere, while
still remaining compatible with 5.3 for now (tested).  The polyfill
had to be on joinplayer because the nc_player_pickup auto-one-time
method of using after() won't reliably patch the player before some
other globalstep tries to read player velocity.

When MT 5.5 is released and 5.3 support ends, the polyfill just
needs to be removed to clean it up.

Also tidied up and consistentized the logging for other hooks.
2021-12-03 08:09:57 -05:00
Aaron Suen
ce27780dd4 Preserve raw forms of ALL base APIs 2021-12-02 06:19:38 -05:00
Aaron Suen
b9d9efe0c1 Make stack columns work with catapult from forms 2021-12-01 20:51:37 -05:00
Aaron Suen
413641aa71 Fix delayed witness, finish known form use-cases 2021-11-29 23:10:22 -05:00
Aaron Suen
9120c78511 Compact mod list formatting
Make it easier to fit long lists of related mods in
the About box if possible
2021-11-29 20:41:09 -05:00