1542 Commits

Author SHA1 Message Date
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
Aaron Suen
53508ee327 Eliminate visinv on_step
We actually have good enough coverage to
push in events when the ents need to update
appearance, so the only thing the patrol
on step was doing was clearing old ents that
the ABM wouldn't catch, which would just be
cleared eventually anyway due to unloading
or something.

This cuts out a major performance cost item
entirely.
2020-06-17 21:53:07 -04:00
LoneWolfHT
aa32ca5190 Fix wield/bando bugs 2020-06-17 18:44:17 -07:00
Aaron Suen
984e87e155 Consistent ABM labeling
- Make sure every ABM has a label
- Use consistent case
- More concise names / consistent voice
2020-06-17 07:09:20 -04:00
Aaron Suen
9cb6a72d6d Correct wield tool position (in mining anim) 2020-06-17 01:37:15 -04:00
Aaron Suen
a9542329a1 Merge branch 'dev' of https://gitlab.com/LoneWolfHT/nodecore into dev 2020-06-17 01:25:45 -04:00
Aaron Suen
3d561a229b Optimize stack cook/cool check
If the item type does not at least pratially match any cooking/cooling recipe the first run, assume it never will and cache this fact
so we can quickly skip all stacks of the same
item next run.
2020-06-17 01:23:30 -04:00
Aaron Suen
ec822aa034 Optimize leaf decay check with caching 2020-06-17 00:54:21 -04:00
LoneWolfHT
37ef785450 Add new model 2020-06-16 21:46:49 -07:00
Aaron Suen
e1e92224b7 Nerf leaf decay speed to conserve ABM power 2020-06-16 21:56:23 -04:00
Aaron Suen
79674b7519 Swimming hysterisis, "swim stand" anim 2020-06-16 21:37:56 -04:00
Aaron Suen
f509f9fba8 Change eye height when swimming
Suggested by oilboi to make the swimming eye
height match the model anim.   There is a bit of
jank switching between swimming and standing
height, but it doesn't seem to be too bad, and it
makes players have to actually break the
surface to breathe, and makes swimming a little
less bizarre in 3rd person view.
2020-06-16 21:14:11 -04:00
Aaron Suen
eb248aaf22 Removed register_limited_abm
- There was never any real proof that the
  limiting mechanism was necessary, and if it is,
  it may be better to use it sparingly.
- We suspect this may be complicit in some
  serious issues, such as door ablation failures.
- Despite 2 different revisions of the code,
  limited abms have never worked reliably.
- Instead of fixed count limits, either dynamic
  or time-based limits would be better.
2020-06-16 20:39:41 -04:00
Aaron Suen
1ac9ed3f07 Even more wield/visinv microoptimizations
- Bake in on_step so we aren't doing metatable fallback each tick.
- Localize and tail-call some functions.
- Reduce redundant data lookups.
2020-06-16 06:43:08 -04:00