2287 Commits

Author SHA1 Message Date
Aaron Suen
17bd745553 Merge branch 'master' into dev 2021-07-10 23:13:45 -04:00
Aaron Suen
e507b87c2c Add padding to bottom of player collisionbox
- This nudges the player upward a bit and gets the
  feet of the model out of the ground.
- This also compensates for a rounding issue that
  causes players to be detected as stuck in the
  node below their feet instead of the space above
  it.  The old workaround worked for pushout but
  didn't help with mods like ziprunes.
2021-07-10 23:13:41 -04:00
Aaron Suen
074e8035bf Add padding to bottom of player collisionbox
- This nudges the player upward a bit and gets the
  feet of the model out of the ground.
- This also compensates for a rounding issue that
  causes players to be detected as stuck in the
  node below their feet instead of the space above
  it.  The old workaround worked for pushout but
  didn't help with mods like ziprunes.
2021-07-10 23:13:08 -04:00
Aaron Suen
44d0a9808d Document sponge death issue
Too messy to get into this right now.
2021-07-10 21:00:59 -04:00
Aaron Suen
15ae28092d Merge branch 'master' into dev 2021-07-10 18:32:36 -04:00
Aaron Suen
4edae057fa Move ablation cooldown to RAM, fix meta loss
Apparently metarefs are cached somehow such that
values written to them are not returned from subsequent
reads.  Must be an engine bug, but it's probably not
worth trying to fix it at this point.  Some startup jank
is apparently inevitable anyway, and a 2 second cooldown
time is not easily exploitable by restarting the world.
2021-07-10 18:32:00 -04:00
Aaron Suen
293b3de9ee Move ablation cooldown to RAM, fix meta loss
Apparently metarefs are cached somehow such that
values written to them are not returned from subsequent
reads.  Must be an engine bug, but it's probably not
worth trying to fix it at this point.  Some startup jank
is apparently inevitable anyway, and a 2 second cooldown
time is not easily exploitable by restarting the world.
2021-07-10 18:31:18 -04:00
Aaron Suen
cf8364199c Simplify soaking metadata clearing 2021-07-10 11:25:49 -04:00
Aaron Suen
135701f4f8 Remove soaking neighbor checks
These cause some issues, like the ability to soak
dirt under water for a short time to initialize the
soaking metadata, then remove the water flow,
then add it in and have leaching complete instantly
because the neighbor check prevented the soaking
ABM from firing to detect that the water was
removed.

In the course of investigating why ABMs are so slow
to begin with, it was discovered that having neighbor
checks can slow an ABM down by a factor of something
like 7x, so clearly the assumption that the neigbor check
being done in C++ as "efficient" was false.  This means
that we may be better off just always firing the ABM and
letting Lua check only a couple of relevant nodes (e.g.
for water flows in the space above) instead for
performance.

The main performance concern was dirt leaching, since
dirt generates naturally in the world in bulk, but if the
single check for water above may be faster than checking
all 26 neighbors in C++ anyway, we might as well let the
soaking API run for it so that it can detect the water having
been removed and reset the counters.
2021-07-10 11:23:09 -04:00
Aaron Suen
7fcac52105 Setting metadata update 2021-07-10 11:14:51 -04:00
Aaron Suen
1ccbf0bb8c Fix formatting confused by parens in long string 2021-07-10 11:14:07 -04:00
Aaron Suen
9fb4cf55b2 Deprecate register_limited_abm
This has just been an alias to minetest.register_abm
for a while now, and all ABM enhancement features
have been added directly to the core API.
2021-07-10 11:09:44 -04:00
Aaron Suen
8a8bed8e5d Major settings cleanup
- Run all settings through a common API.
- Use modname prefix consistently for setting
  keys instead of "nodecore".
- Add automatic dumping of settingtypes.txt
  metadata for maintenance.
- Include initial settingtypes.txt for game for
  main menu use.
- Remove per-recipe tuning for pummel recipes,
  as there were way too many of those to be
  possibly useful and it was clogging up the
  settings menu.  Use tool rate adjustments to
  control it instead.
- Remove vestigial enable_damage setting.
2021-07-10 10:04:03 -04:00
Aaron Suen
61a7414f4b Remove vestigial creative mode cruft 2021-07-10 08:37:55 -04:00
Aaron Suen
700e0484d2 Remove debugging code 2021-07-10 08:27:25 -04:00
Aaron Suen
15936859c3 Persist stasis in modstore, not settings 2021-07-10 08:14:08 -04:00
Aaron Suen
43010da17a Disable creative/damage in menu if possible
Pending PR to allow disabling these settings and
setting them to a fixed value in the engine.  Use
it if it gets merged.

https://github.com/minetest/minetest/pull/11378
2021-07-09 21:06:55 -04:00
Aaron Suen
053a55bc39 Merge branch 'fluidhook' into dev
The corresponding engine feature has been merged and will become
available in MT 5.5+, and the corresponding NodeCore code already
detects whether it's available or not and falls back gracefully
for existing releases.

https://github.com/minetest/minetest/pull/11405#event-5000287764
2021-07-09 09:11:18 -04:00
Aaron Suen
776cab1701 Ideas 2021-07-09 08:55:09 -04:00
Aaron Suen
2a51c9af9b Fix reversed door hub movement priority
Items placed on top of a spinning horizontal door are
supposed to be flung outward preferentially and only
stay near the hub if held back by a wall.  Rewriting the
door conveyance logic apparently switched this.
2021-07-09 08:21:57 -04:00
Aaron Suen
7d41fc53c3 Door ablation check on load
Try to make sure doors don't have to wait arbitrarily long
for a patrol ABM to fire if their DNT was lost and they're
part of a stable circuit.  This seems to have caused some
sponge squeezers in particularly busy areas to stop for a
while when first loaded sometimes, which can interrupt
the water flow they provide, which can lead to a fire
hazard.
2021-07-09 08:18:55 -04:00
Aaron Suen
e0dc918b83 More screenshot enhancements
- Moved camera back to fit it all in 16:10
- Adjusted charcoal glyphs on right side
- Fresh high-MSAA screencaps, guetzli'd for CDB
2021-07-09 00:25:25 -04:00
Aaron Suen
e3337de123 Add "redecorate" cheat to add new flora to maps
Admins can fly around, pick spots for new flower/grass fields,
and then run this cheat command to spawn a bunch of the new
flora in the given area.
2021-07-08 07:23:10 -04:00
Aaron Suen
2ce0a3b246 Fix wrong item display on drop-all items
If an item was settling too far away from where the item ent
landed, e.g. if pushed out by other settling items at the same
place, then it was using entity position to get visinv data
instead of node position.

Inform visinv ents of their actual node position instead of relying
on the object being reasonably close and rounding.  This fixes
multiple potential issues with visinv entity display and allows
these entities to be displaced arbitrarily far from their home
node and still function.
2021-07-06 07:25:03 -04:00
Aaron Suen
90dbadb5bd Fix thrown item stack settling flicker
When a thrown item settles into a node space and
becomes a visinv node, reuse the existing entity instead
of deleting the old one and creating a new one, if
possible.
2021-07-06 07:14:14 -04:00
Aaron Suen
99254bf726 Simple visinv tweening
- On door convey
- On item ent settling

Only able to support limited cases, and still can't
usefully animate nodes, but at least this makes
some item placement behavior look smoother.
2021-07-05 13:42:46 -04:00
Aaron Suen
a1bda1a2cb Remove resolved issues from todo 2021-07-05 12:11:30 -04:00
Aaron Suen
0fdc8e12b1 Merge branch 'master' into dev 2021-07-05 12:10:53 -04:00
Aaron Suen
11a3790bc6 Fix door ablation spurious refiring 2021-07-05 12:10:47 -04:00
Aaron Suen
b2957c2396 New flora translations 2021-07-05 11:41:20 -04:00
Aaron Suen
fbbf26566d Make sedge growing hint hintier. 2021-07-05 11:38:07 -04:00
Aaron Suen
215c2cd36e Flora hints 2021-07-05 11:34:33 -04:00
Aaron Suen
bde5d2d976 Merge branch 'master' into dev 2021-07-05 10:47:49 -04:00
Aaron Suen
2e27f9963f Iterative new approach to compact conveyors
If something is blocked, store it in a separate retry
queue.  If the thing that blocked it moved out of
the way, re-queue the things waiting on it for retry.
This is probably theoretically less efficient than the
old approach since it relies on finding opportunities
to move items on the fly and probably queues a
number of retries that will ultimately fail, but it's
simpler and easier to maintain than the old way.
2021-07-05 10:44:31 -04:00
Aaron Suen
56379676af Massively simplified door conveyance
The old logic was extremely over-complicated, in
an attempt to allow door conveyance to work with
no gaps and support loops.  This led to code that
was unmaintainable, and a node deletion bug that
was too difficult to fix.

The drawback to the new approach is that things
cannot be pushed by doors into spaces that are
occupied by another thing, even if that thing will
be pushed out of the way by the doors on the same
cycle.  This means that chains of items on
conveyors will always have an air-gap between
them.
2021-07-05 10:19:24 -04:00
Aaron Suen
5911fd93d3 Merge branch 'master' into dev 2021-07-04 20:02:16 -04:00
Aaron Suen
c5d59fcc55 Fix node destruction bug
Unfortunately this also causes conveyors to jam for
one turn if there is no airgap between nodes on
certain conveyors, but it's better than the original
bug.
2021-07-04 19:45:26 -04:00
Aaron Suen
398d70ad1e Merge commit '6dde62a' 2021-07-04 19:37:29 -04:00
Aaron Suen
25ec676f67 Merge branch 'dev' into fluidhook 2021-07-04 12:22:11 -04:00
Aaron Suen
8a4182eee1 Update for "parallel arrays" API design 2021-07-04 12:20:15 -04:00
Aaron Suen
9a85ddcac9 Remove use of player meta in skins
- This was never known to be used.
- Player meta is only available for online players, so
  this would prevent looking up skins for offline
  players.
- This API arguably needs more overhauling to work
  with offline player properly though (e.g. pass
  player name instead of player object).
2021-07-04 11:31:58 -04:00
Aaron Suen
01c2e17e4b Fix glyph kerning issues
Glyphs were too close to texture edge, causing
them to run into each other and bleed/wrap around
with filtering enabled.
2021-07-04 11:20:30 -04:00
Aaron Suen
75bb408590 More crisp charcoal glyph textures
Also separate into mask layers
2021-07-04 11:02:21 -04:00
Aaron Suen
d755c18b49 Merge more personal notes 2021-07-04 10:19:54 -04:00
Aaron Suen
a034287dd7 Thump raked sand back to smooth 2021-07-04 09:38:46 -04:00
Aaron Suen
9780f1fc8a Revert "Re-shrink player guide a little"
This reverts commit e684ead12829f1330773cc4cc6b53b894a0bc743.
2021-07-03 11:30:26 -04:00
Aaron Suen
e684ead128 Re-shrink player guide a little
Issues reported on mobile devices (non-flagship
phone models or non-16:9 screens) that seem to
be because formspec size doesn't fit on screen so
tab buttons don't respond.

Rename the "movement" tab to "motion" even
though it's not a perfect synonym, to make it fit
inside the button better.
2021-07-03 11:21:48 -04:00
Aaron Suen
24801a67c7 Merge branch 'raking' into dev 2021-07-03 10:53:30 -04:00
Aaron Suen
852f351213 Fix options nil crash 2021-07-03 10:51:50 -04:00
Aaron Suen
56a5028646 Tweak texture compositing, vary alpha
- Make texture pure black so it can be used to
  darken gravel as well.
- Bolden texture alpha so it can be controlled per
  node def with opacity.
- Use lighter effect on sand, heavier on gravel.
2021-07-03 10:50:25 -04:00