1579 Commits

Author SHA1 Message Date
Aaron Suen
e06fff7620 Pumice quenching can now affect water too
Face-touching water can be converted to pumice instead of the
flowing lava (e.g. lava intrudes into that space and quenches
instead) creating even more of a mess.
2020-06-24 08:21:43 -04:00
Aaron Suen
e7bd68a24b Reduce optic tick speed to 12Hz
This is the GCF between 60Hz and 144Hz
displays, so ideally a beefy enough
machine should be able to run optics
smoothly either way.
2020-06-24 08:16:51 -04:00
Aaron Suen
ec86f0f130 Reawaken optic circuits more reliably on load 2020-06-24 08:11:44 -04:00
Aaron Suen
2ea41b27ea Allow optic ticks to "slip" under load
If the server can't handle optics, it would lead to a
runaway effect and bring the system down.  Instead
only process up to half a second worth of optics on
each tick, so that this effect is capped and the server
will at least be able to chug along.
2020-06-24 08:03:42 -04:00
Aaron Suen
7b44fb2b29 Make optic systems tick at a consistent Hz 2020-06-24 07:45:20 -04:00
Aaron Suen
27ee0f9f7b Another attempt to quantize skybox textures
Using pngquant this time, instead of GIMP.  It seems pngquant at
least is smart enough to preserve the exact RGB value of the
single most common color used in all the images.
2020-06-24 07:25:44 -04:00
Aaron Suen
a7faf730f6 Skybox wishlist item fulfilled 2020-06-24 01:23:12 -04:00
Aaron Suen
baed978f6e Cap nodefall disturbance distance
Teleportation should cause some disturbance, maybe
plausibly even extra disturbance, but it shouldn't be
unlimited.
2020-06-24 00:53:38 -04:00
Aaron Suen
9d912311cf Another attempt at correcting color
This time, avoid touching the stars and just re-fill the
pure blue part of the sky.
2020-06-24 00:23:01 -04:00
Aaron Suen
16aa202cbb Revert "Fix skybox colors"
This reverts commit 9bd49cc78a7aeb2b228cc563a395bd912fbdf9f0.
2020-06-24 00:19:53 -04:00
Aaron Suen
ad0952a773 Optimize rake entity handling 2020-06-23 23:38:32 -04:00
Aaron Suen
9bd49cc78a Fix skybox colors 2020-06-23 23:10:09 -04:00
Aaron Suen
2999a1fc18 Fantastic new skybox by WintersKnight94 2020-06-23 21:14:41 -04:00
Aaron Suen
0929d007ce Use nodecore.interval where appropriate
Fixes deprecated get_connected_players() at load time issue
2020-06-23 06:43:34 -04:00
Aaron Suen
5379c14935 Fix some player visibility bugs 2020-06-23 00:44:54 -04:00
Aaron Suen
b44ad836a3 Fix skin bug, add shirt cuffs 2020-06-23 00:21:17 -04:00
Aaron Suen
cb009e7201 Merge branch 'playerstep' into dev 2020-06-22 23:49:55 -04:00
Aaron Suen
1caa2e6285 Fix sunrise tint texture 2020-06-22 23:40:31 -04:00
Aaron Suen
79717b0d82 Remove failed profiler instrumenting 2020-06-22 23:19:14 -04:00
Aaron Suen
466805da48 Enroll skybox, fix some bugs 2020-06-22 23:17:01 -04:00
Aaron Suen
5648331c9f Replace all perplayer with playerstep 2020-06-22 22:47:33 -04:00
Aaron Suen
be452b4d52 Finish base playerstep API
Now all that's needed is converting existing
mods for proof of concept.
2020-06-22 21:14:40 -04:00
Aaron Suen
4559f92694 Newest player skin by WintersKnight94 2020-06-22 09:59:52 -04:00
Aaron Suen
fe541da006 Make a note of a problem that can happen in MP. 2020-06-22 07:33:30 -04:00
Aaron Suen
7ddca3e73a Start work on new player API...? 2020-06-21 15:32:18 -04:00
Aaron Suen
dd5e92266e Skip laundered ABMs on first tick
When unlaundered ABMs run, give the
laundered ABM pump a rest for 1 tick, to
ensure we don't run 2 batches worth of
ABMs on any 1 tick, to smooth things out.
2020-06-21 15:00:26 -04:00
Aaron Suen
ebcc7921e9 Smooth laundered ABMs across multiple ticks 2020-06-21 14:46:30 -04:00
Aaron Suen
77ee30d1a2 Notes 2020-06-21 11:53:34 -04:00
Aaron Suen
3f262b5b35 Try reversing ABM stasis/launder nesting
Hopefully laundering the stasis check will
boost the number of mapblocks we can
process.
2020-06-21 11:15:01 -04:00
Aaron Suen
09e4ed34c8 Fix misclassified issue 2020-06-21 10:48:54 -04:00
Aaron Suen
9c150a2054 Fix stasis
- Late-bind ABM registration alias so stasis
  wrapper is honored.
- Make DNTs wait in a loop until stasis is
  cleared.
- Make optics honor stasis.
2020-06-21 10:46:35 -04:00
Aaron Suen
41e744b0e9 Apply ABM laundering at base level 2020-06-21 10:25:07 -04:00
Aaron Suen
61880b262a Allow visinvs to quiesce to zero
- Track visinv ents in a separate list instead
  of minetest.luaentities, so we can skip the
  removed and non-visinv ents all in one pass
- If no visinv updates were scheduled for any
  given tick then don't run any pass at all
2020-06-21 10:11:13 -04:00
Aaron Suen
b70ea7d2c8 Disallow vanilla on_timer, Player API notes 2020-06-21 09:58:01 -04:00
Aaron Suen
7e5f70da9b Move visinv efficiency reforms
- Push early activation externally.
- Fix bug with ents fooling visinv checker into
  thinking pos is handled even when marked
  for removal
- Eliminate a redundant stack_get call
2020-06-21 09:38:54 -04:00
Aaron Suen
c1a7ef6923 Fix focus zoom
Apparently another control bit must have
been added, maybe for the zoom key itself,
and it was throwing off the check.
2020-06-21 08:46:23 -04:00
Aaron Suen
3cc7ea83af Simplify AISM pre-check 2020-06-21 04:48:14 -04:00
Aaron Suen
ed51338225 Add stasis issue 2020-06-21 04:12:35 -04:00
Aaron Suen
500ef347e1 Fully passivize visinvs
Now use an LBM to load ents, and skip the
ABM entirely.  I think we've finally found all
the "leakage" points.
2020-06-21 03:52:09 -04:00
Aaron Suen
b271ce5302 Fix long-standing fluid ambiance bugs
- Water was churning w/o air due to a typo.
- Include sponge water in ambiance too.
2020-06-21 01:50:52 -04:00
Aaron Suen
3657ee862f Lux fluid should not make gravel sounds 2020-06-21 01:40:13 -04:00
Aaron Suen
8c70f75142 Clear ABM tuning off wishlist.
I've got a hack for this now, which I think will
work just fine, so no need to wait around on
yet another engine bug...
2020-06-21 01:32:07 -04:00
Aaron Suen
ae08b74ee7 Microoptimize ABM laundering
Apparently table packing/unpacking is just a
little (like 10% maybe) more efficient than
closure-wrapping.
2020-06-21 01:24:10 -04:00
Aaron Suen
a4bf23e421 ABM Laundering: speed up to 4x
Instead of using 20% of CPU time to run
ABMs, defer 75% of them, so we are using
20% time to run 20% ABMs plus defer
a further 60%, giving us a total of roughly
80% CPU time for ABMs (not factoring in
overhead).

This should let us work around the engine's
hardcoded 20% ABM limit.
2020-06-21 00:48:30 -04:00
Aaron Suen
9879a23680 Mapgen determinism
This should cause maps that have the same
seeds to have much more similar results
than before, e.g. sponge deposits will be in
the same places determined by seed and not
random each regeneration of the map.

- Mapgen shared now provides an RNG which
  will be deterministic when feasible, for
  repeatable mapgen results.
- Make existing rng-using mapgen hooks use
  the new deterministic RNG.
- Mapgen shared hooks are also run in
  deterministic order too.
- Tidy up mapgen_shared API a little more.
2020-06-20 23:48:29 -04:00
Aaron Suen
a772e4e084 Fix ignores killing sponges. 2020-06-20 22:48:39 -04:00
Aaron Suen
07ed652073 Fix slow startup since cooking optimization
We generally either require all cooking recipes to operate on a
single item, or on any number in parallel, and will probably
never want to do an exact match on any other quantity.

This speeds up a 4000ms startup cost to 40ms.
2020-06-20 22:19:43 -04:00
Aaron Suen
f6eedea1a1 Fix infinite sand exploit 2020-06-20 22:03:46 -04:00
Aaron Suen
21adb6f422 A little more doc work. 2020-06-20 10:54:21 -04:00
Aaron Suen
f514990ea4 Merge more issues from discord. 2020-06-20 10:45:44 -04:00