2237 Commits

Author SHA1 Message Date
Aaron Suen
19652c2fe1 Begin major rework of nodenames matching, autostart DNTs
- Unify logic for expanding nodenames/itemnames lists into indexes
  of matching names, and comparing item names/defs to lists,
  with group expansion and deferral.
- Add "autostart" option to DNTs which registers construction traps
  and a patrol ABM automatically, use for some things that are a
  good match.
- Note that some things are doing more complex logic in ABMs, such
  as determining if a node is eligible, or custom timing logic;
  leave these as-is for now.
2021-08-04 07:41:00 -04:00
Aaron Suen
d4c8d32171 Microoptimization of node update checks 2021-08-04 07:39:52 -04:00
Aaron Suen
bedfa4b211 Fix some APIs bypassing on_nodeupdate hooks 2021-08-04 07:36:31 -04:00
Aaron Suen
3dc6a0d6c1 Make "connected" glass non-optional
The game was designed with this appearance in mind, especially the
appearance of float glass, and having this turned off can have a
major impact on the aesthetics and even function (accessibility)
of builds.

The ability to enable/disable connected glass is of unproven value
even to lower-end systems, as most of the additional work is in
the background mesh-building thread, and by now the game is complex
enough that other factors completely overpower the impact this has
on performance.

Forcing this mitigates the risk that players who have connected
glass turned off will not experience the proper results of using
float glass, and that their builds will appear very different for
other players.
2021-08-04 07:27:53 -04:00
Aaron Suen
011e171e2d Float glass tanks too now 2021-08-04 06:42:14 -04:00
Aaron Suen
964f2c5044 Make sure glass DNTs are queued 2021-08-03 21:08:57 -04:00
Aaron Suen
67b8f43cf0 Merge branch 'fluidwander' into dev 2021-08-02 07:18:29 -04:00
Aaron Suen
00b3dc477a Unified fluid wandering system
- New fluid wandering API, mostly unified logic, only needs
  some parameters, plus the "generation check".
- More sophisticated behavior seeking down-slopes beyond simple
  immediate flowing node reach ("subtle slope" detection).
- More reliable timing using DNTs.
- Set firm movement rate of concrete, molten glass.
- Reduce molten glass generations, since it can now be more
  reliably directed.
2021-08-02 07:17:51 -04:00
Aaron Suen
1f913bf402 Merge branch 'dev' into fluidwander 2021-08-02 07:55:11 -04:00
Aaron Suen
ae96e86321 Lots of notes updates 2021-08-01 20:19:27 -04:00
Aaron Suen
531d259775 Fix looktip darkness punch fallback 2021-07-31 22:23:36 -04:00
Aaron Suen
6927552f8b Touchtips for ents 2021-07-31 21:05:52 -04:00
Aaron Suen
cbb3d59b2f Enable looktips for non-interact players too 2021-07-31 20:40:30 -04:00
Aaron Suen
cb7b3f7bea Redo touchtips into looktips
- Separate touchtips into in-world looktips vs
  wieldtips for inventory.
- Automatically raycast and show tips for
  anything we're looking at.
- Looktips don't work in full darkness, punch
  to activate a temporary touchtip for it, or
  use synesthesia lighting.
- nodecore.show_touchtip API stubbed out
  (used in yctiwy).

TODO:
- Need to rework hint discovery to use raycast
  instead of just punching
2021-07-31 15:54:11 -04:00
Aaron Suen
6e1df14c1b Dynamic custom crosshair
- Crosshair hidden when !interact
- Fade out crosshair when not pointing
- Makes crosshair HUD-scalable (not sure if
  this is definitely good or bad yet)
- Forces crosshair appearance on mobile to
  match desktop

Since the crosshair position is already used in
gameplay i.e. for item dropping on mobile, it's
important that mobile have consistent access
to it compared to desktop.

Also, mobile's lack of crosshair was one of the
main blockers to having look-tips instead of
touch-tips, so forcing a crosshair opens that
up again.  Forcing punch interactions to see
anything causes issues with ember/pumwater
where punching hurts.

A crosshair would also be necessary for
star navigation assistance tools.
2021-07-31 08:43:38 -04:00
Aaron Suen
b0bf94c6e6 Update README 2021-07-31 08:16:37 -04:00
Aaron Suen
9995d9bfc8 Add a use for dry sponges
Dry sponges act as air tanks while diving, but the effect is
limited by their tendency to soak up water from the environment.
2021-07-27 07:42:40 -04:00
Aaron Suen
f4cdda972c Re-optimize CDB listing images 2021-07-25 14:57:37 -04:00
Aaron Suen
352fd58339 Revert "Optimize and reorder player skin layers"
This reverts commit 5bb89ebae9af630922af81f895737ce4682ef183.
2021-07-25 14:55:24 -04:00
Aaron Suen
f240bf5990 Revert "Fix singleplayer skin"
This reverts commit c326d24d1b438e4de93c6fa8e2b565ace7cae3ea.
2021-07-25 14:54:47 -04:00
Aaron Suen
9f7598b375 Revert "Remove redundant singleplayer check"
This reverts commit c865746d7fde470a205320f6c79f75b992c67fcc.
2021-07-25 14:54:45 -04:00
Aaron Suen
3f0c49a31a Revert "Fix hand wield model regression"
This reverts commit 134977cb49ebae2b8086f2a47fce299f4cbaa0c9.
2021-07-25 14:54:38 -04:00
Aaron Suen
134977cb49 Fix hand wield model regression 2021-07-25 09:59:43 -04:00
Aaron Suen
c865746d7f Remove redundant singleplayer check 2021-07-25 09:59:05 -04:00
Aaron Suen
c326d24d1b Fix singleplayer skin
Handle single player as a special case and use the
default, un-colorized skin.  This should also make
it easier for people to change the SP skin without
having to interact with the colorization system.
2021-07-25 09:58:01 -04:00
Aaron Suen
5bb89ebae9 Optimize and reorder player skin layers
- Put base skin on top so custom skins can more
  easily override colored regions.
- Eliminate redundant texture areas.
- General image optimizations.
2021-07-24 21:48:58 -04:00
Aaron Suen
7dac417764 Reorder screenshots
cdbrelease still enforces screenshot order, so
interleave "landscape" shots with the new
"not so much green/gray" shots.
2021-07-24 11:30:35 -04:00
Aaron Suen
1ed403192a Swap out screenshots for more visual diversity
The previous screenshots were all very focused
around large landscape shots and showed a lot of
mostly grass and cobble.
2021-07-24 10:10:53 -04:00
Aaron Suen
ddf4b34d26 No promises there WILL be bugs... 2021-07-23 23:59:15 -04:00
Aaron Suen
bdb86359c2 First round of additional screenshots
Just hand-picked these from random shots of the
community server builds, for now.  Maybe other
contributors will provide better ones someday.
2021-07-23 23:56:26 -04:00
Aaron Suen
138e3c80a9 A little more whitespace in about dialog
Separate out group of "where to get it" from
group of "where to chat about it"
2021-07-23 23:52:40 -04:00
Aaron Suen
1f1041e103 Remove mysterious duplicate mod copy 2021-07-23 21:26:46 -04:00
Aaron Suen
59b000f06a Merge branch 'master' into dev 2021-07-22 22:03:38 -04:00
Aaron Suen
40889ff1a9 Make NodeCore's educational value clear
A lot of people have actually been de facto using NodeCore as an
educational tool.  Apparently it gets parents excited to introduce
to their kids.

NC optics, in particular, reminds me of Rocky's Boots, which I
only ever got to play briefly in school in like 3rd grade or
something, though NC optics might be for kids a bit more
advanced. :-)
2021-07-22 22:00:47 -04:00
Aaron Suen
824bda4976 Merge branch 'master' into dev 2021-07-22 10:21:48 -04:00
Aaron Suen
c73acb7683 For now, apply the "featured" tag for non-ALPHA only
Probably need to either rework CDB or cdbrelease to stop the
CI process from messing with this tag at all...
2021-07-22 08:07:31 -04:00
Aaron Suen
e77094d39d Try to fix missing footstep sounds
Apparently "rounding error" margin for the bounding box for feet
was too large for MT to detect player's feet on the ground.
Shrink it to a very small amount that should be large enough not
to be lost in rounding error but small enough to allow footstep
sounds.
2021-07-21 07:08:18 -04:00
Aaron Suen
318c04bac3 Tweak descriptions/formatting 2021-07-20 21:25:37 -04:00
Aaron Suen
97644bc68b Fix description header levels 2021-07-20 21:20:34 -04:00
Aaron Suen
1475435668 Update CDB descriptions 2021-07-20 21:15:12 -04:00
Aaron Suen
87e8cf4291 Revert item->visinv entity reuse
Apparently an object having had automatic
rotate set in properties in the past will cause its
rotation to retain some unknowable offset,
presumably calculated client-side and not
matching the ent's yaw.  Entity replacement
(i.e. backing out reuse) is the simplest fix and
the transient one-time flicker is better than
losing the stack fullness indicator from yaw.
2021-07-11 22:33:32 -04:00
Aaron Suen
87e6e72d76 Offline-soaking sponge growth 2021-07-11 20:28:05 -04:00
Aaron Suen
0642839aea Simplify rush hitbox 2021-07-11 16:28:21 -04:00
Aaron Suen
a16ceda69a Detect cheat status changes bypassing events 2021-07-11 15:25:27 -04:00
Aaron Suen
068e9b6995 Remove debugging code 2021-07-11 14:51:35 -04:00
Aaron Suen
e24112a2d9 Fix soaking with cache
Soaking recipe fails will result in a lot of clearing
of old soaking values out of node meta, which is
very slow in the common case of e.g. dirt that's
not near water and thus should not be soaking in
the first place.

Skip node meta writes if the node meta already
contains the correct data, by doing a cached read
and check before writing, instead of blindly
writing.
2021-07-11 14:50:33 -04:00
Aaron Suen
03948cfe0f In-memory cache for soaking
This speeds up performance of soaking API by
quite a lot, especially in the more or less
pathological case of soaking dirt to sand, which
involves clearing the metadata from thousands
of nodes each run.  Knowing that the nodes
had already had their metadata cleared is
very helpful.
2021-07-11 14:36:55 -04:00
Aaron Suen
4be7398ff4 Fix setting interval/chance in soaking 2021-07-11 14:13:04 -04:00
Aaron Suen
c92762dabb Log ezschematic node summary
Useful for things like the various skyblock mods,
to verify exact counts.
2021-07-11 09:38:19 -04:00
Aaron Suen
385856d23c Fix a misimplemented fischer-yates shuffle 2021-07-10 23:49:07 -04:00