1596 Commits

Author SHA1 Message Date
Aaron Suen
e7911dd7fd Fix crash on empty craft set 2020-06-27 13:32:03 -04:00
Aaron Suen
7ae24bf7fa Further craft set reductions
- Merge the "legacy, could be anyting" sets
  into every other set so we can do only 2
  set lookups instead of 3.
- Make sure we don't do any duplicate
  recipe checks.

N.B. the craft priority order MAY be different
now, since primary node recipes are
checked before visinv stacks.
2020-06-27 13:00:34 -04:00
Aaron Suen
b2f78c0daa Indexing for craft checks
By restricting the recipes we check based
on the name of the central object being
checked, we can do many fewer craft
checks per item and avoid expensive
checks.
2020-06-27 12:20:35 -04:00
Aaron Suen
42f125c716 Make most recipes indexable
Register a "rootmatch" property for all
recipes that represents a broader, quicker
test for recipe eligibility.  False positives are
allowed but false negatives are not.

Since most recipes are eligible, we can
use this to build an index for fast lookups
of subsets of recipes to run and skip most
of the other ones.
2020-06-27 11:06:43 -04:00
Aaron Suen
11515cb39f Make sinking concrete destroy water
Previous behavior--displacing--was causing
water sometimes to get shoved up above the
surface and remain there.
2020-06-26 14:41:49 -04:00
Aaron Suen
4b8d1b12e5 Fix a set_sky crash
We can't use push incremental changes to set_sky, we need to
push the whole sky definition each time.
2020-06-26 18:23:44 -04:00
Aaron Suen
775718256d Fix item entity bugs
- Crash due to pos being non-nil but velocity being nil?!
- Excessive item merging, i.e. on splitting planks, cancelling
  out outward item ejection.  Items now only merge at low
  absolute speed (detecting groups with low relative speed is
  too difficult to do efficiently for now).
2020-06-26 06:11:19 -04:00
Aaron Suen
7c5c8f68cf Tote placement fixes
Fix noisy prediction and quiet unpack
2020-06-25 23:35:55 -04:00
Aaron Suen
e9639c856f Entity merges conserve momentum 2020-06-25 23:03:56 -04:00
Aaron Suen
dcdf3a6fc8 Efficiency tweak
Don't repeat string conversions
unnecessarily
2020-06-25 22:46:03 -04:00
Aaron Suen
70c5dcf191 Efficient rebuild of item entity merge
- O(n) efficiency walk of item entities
- Honor stack family merging, e.g. differing lux levels combine

Since the new walk should be much more efficient, the need to
handle "extremal" cases specially, e.g. creation of a multi-stack
ent, is probably unnecessary.  Remove it from the task list,
barring any future evidence that it's still relevant.
2020-06-25 07:50:34 -04:00
Aaron Suen
1d05d0bd41 Remove redundant lux reaction check 2020-06-25 07:41:25 -04:00
Aaron Suen
de4748591c Reorg docs, close a couple minor issues. 2020-06-25 07:07:51 -04:00
Aaron Suen
f31901a93a Redo screenshots again, change up alpha filter again. 2020-06-24 19:30:40 -04:00
Aaron Suen
11d9f63564 Include full screenshot as secondary on alpha page. 2020-06-24 19:07:32 -04:00
Aaron Suen
a4942d994c Update official screenshots. 2020-06-24 19:04:41 -04:00
Aaron Suen
e14c85c64b Note that we need to update CDB screenshot again by now 2020-06-24 08:34:42 -04:00
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