1758 Commits

Author SHA1 Message Date
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
Aaron Suen
9cdd00f7c9 Significant docs reorg
- Categorize types of issues, since I find I pick through the list
  not based on absolute priority but based on what kind of things
  I feel like working on, e.g. gameplay improvements vs. code
  quality.
- Clean out the icebox.  Reinstate a few things at bottom of other
  lists, clean out the rest.
2020-06-20 10:11:14 -04:00
Aaron Suen
cd71a8d88a Add an engine bug to the wishlist. 2020-06-19 16:16:19 -04:00
Aaron Suen
30cb1d2908 Another player skin update by WK 2020-06-19 14:34:00 -04:00
Aaron Suen
c8a2decc41 Merge branch 'dev' into 'dev'
Add overlay to hand model

See merge request sztest/nodecore!15
2020-06-19 18:32:07 +00:00
LoneWolfHT
9a8662757e Add overlay to hand model 2020-06-19 11:15:17 -07:00
Aaron Suen
8c09305e2c Fix player skin and overlays 2020-06-19 13:46:08 -04:00
Aaron Suen
e1a558b754 Sneak+punch prevents pummels 2020-06-19 13:45:51 -04:00
Aaron Suen
2d65e279c2 Clear some issues
Including the "optic/door automation" one
that has been a major thorn in my side for a
long time!
2020-06-19 11:39:41 -04:00
Aaron Suen
af6d866c7f Fix stack cooking filtration 2020-06-19 11:31:58 -04:00
Aaron Suen
b3751411d9 More item cooking dnt fixes 2020-06-19 11:19:48 -04:00
Aaron Suen
04024f49c7 Update item cooking DNT 2020-06-19 11:12:32 -04:00
Aaron Suen
3367ca1857 Fast optic path obstruction response
Optics keep track of path dependency info
used in calculating state.  When a node is
added/removed in the path via the mod API
(i.e. not schematics, vmanip, etc.) then the
nodes whose state decisions depended on
paths going through there are automatically
triggered for a recheck.

This should make things like furnace sand
auto-loaders respond snappily.

Granted, memory use with this approach is
a concern, but we will just have to monitor it
under normal usage patterns.
2020-06-19 10:01:25 -04:00
Aaron Suen
b8bf2322fa More work on DNTs
- DNTs can have default time value
- Automatic loop option
- Optional node name filter
- Use DNT for scaling particles
- A few tail call optimizations
2020-06-19 09:38:03 -04:00
Aaron Suen
d3dc7f28e1 Trigger door ablation instantly on signal 2020-06-19 00:30:17 -04:00
Aaron Suen
4a4fd996a1 Register cooking to use DNTs 2020-06-19 00:29:49 -04:00
Aaron Suen
db2d748104 DNT API and reliable door ablation
- New Delayed Node Trigger API that allows
  the use of multiple externally-defined node
  timer events, as long as on_timer of a node
  is not explicitly overridden.
- Use the new DNT system to make door
  ablation reliable.
2020-06-18 22:35:47 -04:00
Aaron Suen
950dd195ea Revert swimming eye_height changes
This is severely jarring when actually trying
to mine or build in or near water.  We will
just need to find a better solution.
2020-06-18 20:20:58 -04:00
Aaron Suen
fece086b12 New player skin by WintersKnight
Showing off the new layers :-)
2020-06-18 20:15:57 -04:00
Aaron Suen
1b515d64d1 Merge branch 'dev' into 'dev'
Improve wave anim

See merge request sztest/nodecore!14
2020-06-18 18:54:25 +00:00
Aaron Suen
f7fd09a04a Fix deprecation warning 2020-06-18 07:23:11 -04:00
Aaron Suen
70efb016af Add auditing for player stack movement 2020-06-18 07:20:15 -04:00
Aaron Suen
cb844813f0 Refactor and nerf stone hardening 2020-06-18 06:40:19 -04:00
LoneWolfHT
058a30d30b Improve wave anim 2020-06-17 21:45:21 -07:00
Aaron Suen
272abb62dd Merge branch 'dev' of https://gitlab.com/LoneWolfHT/nodecore into dev 2020-06-17 21:53:46 -04:00