2714 Commits

Author SHA1 Message Date
Aaron Suen
9555a1ecba Optimize ABM delay
Only register a single job with after() per tick.
Store actual node processing to do in a much
simpler linear array.
2022-01-23 17:28:48 -05:00
Aaron Suen
1da5ebcc7f Soaking tickle recipes require placed nodes 2022-01-23 16:51:39 -05:00
Aaron Suen
9022332cc6 Merge branch 'master' into dev 2022-01-23 15:52:57 -05:00
Aaron Suen
66a338b680 Fix lode rake recycling/wearout recipes 2022-01-23 15:52:46 -05:00
Aaron Suen
d9d33d1a4f Fix rad damage blocking
Instead of trying to skip everything (and not
updating stats), just set rate to 0.
2022-01-22 22:17:35 -05:00
Aaron Suen
10a447799b Merge branch 'master' into dev 2022-01-22 22:14:40 -05:00
Aaron Suen
c4f41348e0 Fix skybox being sent every step 2022-01-22 22:11:55 -05:00
Aaron Suen
034ecef2a9 Reuse envsound fx ents from a pool
This seems to reduce steady-state bandwidth
usage when standing still significantly, at least
according to rudimentary tests.

Try to reuse the entity that is already physically
closest to the target position, so to maximize
the chance that nearby player(s) already have
the entity transferred and only need the new
pos data, in case MT is intelligent enough to send
only the needed changes.
2022-01-22 21:49:11 -05:00
Aaron Suen
b9d5b42268 Fix skybox being sent every step 2022-01-22 21:01:45 -05:00
Aaron Suen
a0a14f9195 Fix amalgamation melting in falling node form 2022-01-22 16:52:20 -05:00
Aaron Suen
91e5c615c2 ABM delay, prevent "prompt critical" ignition
During processing of the flammable ignition ABM,
nodes could ignite, causing the new ember nodes
created by this ignition to trigger fire propagation
instantly during the same tick by nodes still yet
to be processed for ABM checks during the same
scan.  This often caused large areas of flammable
nodes, like wooden plank skyblocks, to be ignited
instantly in a specific direction from any source
ignition.  This led to some "cheap shots" where
players were ruined by fire far more rapidly than
they should be.

Instead of processing flammability checks in
sync, delay them until the next tick, so that we
find all flammables to check before any new
igniters are created.  This should tame fire
spreading back down to normal levels.
2022-01-22 16:20:10 -05:00
Aaron Suen
86a53392ec More diagnostic logging
- Log pos of first missed ABM
- Log fire ignitions
2022-01-22 15:30:41 -05:00
Aaron Suen
46241b06d4 Invincible players also clear rad HUD 2022-01-22 14:52:11 -05:00
Aaron Suen
a75e2ca886 Make non-visible players not interact with luxrad
Also remove HUDs from things that don't affect
non-visible players.
2022-01-22 14:47:28 -05:00
Aaron Suen
75f4b06bf2 Merge branch 'misteremodel' into dev 2022-01-22 13:23:33 -05:00
Aaron Suen
029e765a42 Remove backup file 2022-01-22 13:23:22 -05:00
Aaron Suen
c63a188f32 Tighten up frame blend a bit.
Make transitions between animations a little
more crisp.
2022-01-22 13:21:17 -05:00
MisterE123
911eea52eb fix mine and wave animation regression and fix intantaneous rotation of spine bone between animations that made player reverse direction while swtiching beween walk-mine and other animations 2022-01-22 13:16:31 -05:00
MisterE123
d9eafc4a90 fix mine and wave animation regression and fix intantaneous rotation of spine bone between animations that made player reverse direction while swtiching beween walk-mine and other animations 2022-01-22 13:09:44 -05:00
MisterE123
e342add407 fix swim anims on player model 2022-01-22 12:47:19 -05:00
Aaron Suen
d8c4e5bd94 Change head pitch limigs and offsets
- Move the player head up to show neck again.
- Limit down-looking to not collide with bandolier.
- Slide head forward/back while rotating to keep it
  centered atop the neck and appear connected.
2022-01-22 10:47:53 -05:00
Aaron Suen
f9b2e2491a Clear player model wishlist items
All the past issues seem to be now resolved!  There is
only one new issue, and then this thing will be ready
to merge.
2022-01-22 09:34:07 -05:00
Aaron Suen
9464f8d534 Enable frame blending and head pitch
- Pitch player head up/down based on look dir
- Set frame_blend to 0.15, causing 150ms of tweening
  from one animation to another, so player bone
  movement is smooth.
- Enabling frame_blend breaks some parts of the
  anims, but oddly, enabling head pitch control actually
  fixes these...
- Head pitch does not follow lookdir 100%, there is
  some implied use of vertical eye movement balanced
  in, so the player does not look like they're breaking
  their neck at extreme angles.
- Support anims specifying a head pitch offset, e.g.
  for the swimming anims which require the head to
  pitch backward to face forward.
2022-01-22 09:29:09 -05:00
Aaron Suen
c95dd5dd29 Fix bandolier in stand, wave, mine anims
MT seems to have a problem with bones that are not animated
and have exactly 0 rotation, i.e. interpreting this as 180 degrees
(supposedly this is a workaround for some other quirk).  Give
the chest and bandolier bones tiny non-zero rotation adjustments
to trick MT into putting them as close as possible to zero without
triggering this bug.
2022-01-22 08:46:56 -05:00
Aaron Suen
2e2810f8f1 Fix reversed hand UV map 2022-01-22 07:40:02 -05:00
Aaron Suen
a0aff0060c Player model animation updates by MisterE
- Bones reparented
- Most animations rebuilt
- Known issue: bandolier reversed on stand, stand+mine anims
2022-01-22 06:37:38 -05:00
Aaron Suen
9c03cf35eb Log format cleanups 2022-01-19 23:30:56 -05:00
Aaron Suen
08e4a553ab Remove debugging code 2022-01-18 21:01:34 -05:00
Aaron Suen
0f573537bf Regenerate bandolier attachments periodically
An engine bug can cause bandolier attachments to become
detached from the perspective of a player if they and another
player wander farther than the server's player transfer
distance from one another and then re-meet later.
Sometimes the attached entities appear to be floating at the
place where the player was reloaded from the other player's
perspective instead of attached.

Work around this for now by just periodically regenerating
the bandolier attachments for all players, so that at least if
it happens, it will self-correct in time and not be stuck
indefinitely broken.

This was avoided in the past due to an old engine bug that
caused attachments that were attached while a player was
in 3rd person mode not to be visible to that player until they
toggled view mode again ... but this seems to have been
fixed at least in recent versions.

As of now, other-player bandoliers in MP are probably more
important than own-bandoliers in 3rd person view for most
serious use-cases anyway.
2022-01-18 20:19:23 -05:00
Aaron Suen
0d5715ec9b TODO list update 2022-01-18 19:56:44 -05:00
Aaron Suen
fe29f4412d Standardize pummel-completion particles
Any time a pummel recipe is completed, release an extra
burst of particles.  Useful for recipes that seem to be
taking forever to complete but only because they're
repeatedly completing but not giving any visible hint,
e.g. leaf-bud-tickling.
2022-01-18 19:49:44 -05:00
Aaron Suen
67f8abd12c Make sure nodecore.match supports aliases 2022-01-18 19:14:07 -05:00
Aaron Suen
28e2fd5590 Experimental API for adjusting in-game time
Everything in NodeCore should already be using
nodecore.gametime instead of minetest.get_gametime().
This API allows an offset to be adjusted between these,
allowing for skipping forward in time.

The idea is to offer an optional "realtime clock" feature via
a mod or config option to allow mobile SP players to advance
time forward for idle mechanics when the game is not
loaded and running, via the realtime clock, to make idle
mechanics more accessible to players on limited battery.
2022-01-18 18:51:10 -05:00
Aaron Suen
3534c3a0f7 Merge branch 'master' into dev 2022-01-17 10:44:33 -05:00
Aaron Suen
8ba435f3e3 Fix player/entity velocity polyfill on 5.3
Apparently players and luaentities use the same metatable,
so the polyfill needs to check if it's a player or not before
choosing which get_velocity to call.
2022-01-17 10:44:24 -05:00
Aaron Suen
6b03f79561 Revert sponge death ABM timing
The checks may be a bit pricey, so we shouldn't
just blindly increase the net run rate.
2022-01-17 08:11:44 -05:00
Aaron Suen
fd6f0508ea Make sponge node death less arbitrary
Sponge nodes die if exposed to air for >= 2 seconds.  They
are still more fragile in item form.  This allows reliably
swapping a node used to seal in a living sponge without
instantly killing it, which used to be possible but risky,
depending on racing with the ABM timer.
2022-01-17 08:09:17 -05:00
Aaron Suen
9637299f4c Fix leaf decay forcing, changed field name
Handles both natural decay and manual digging.
New field name more properly reflects actual meaning.
2022-01-16 14:04:42 -05:00
Aaron Suen
32b2ea1591 Allow forcing leaf drops via node meta
This can be useful for skyblock mods to ensure that a
"starting tree" has at least enough of certain items to
craft basic tools and start sustained tree farming.
2022-01-16 13:34:05 -05:00
Aaron Suen
73868f205b Storeboxes: don't fall in unless you can fall thru
There isn't always a surface below to catch items
that fall into a storebox, so we can't guarantee an
item that falls into a storebox won't just fall out
the bottom.  Only allow falling in the top if falling
out the bottom is allowed too.

This fixes glass cases not catching items if the
case is floating in air with nothing solid below it.

There are still some cases it doesn't handle
correctly, like a bare stack node underneath a
form, wherein the item should be allowed to fall
out of the form and combine into the stack.
2022-01-16 13:06:33 -05:00
Aaron Suen
1ad5bde166 Allow ambiance check to return a simple true
Allow use of true to indicate no custom options.  The check
was originally put in place to allow custom options, but
some mods may use it more simply like the craft check,
where it's meant to be a simple pass/fail.
2022-01-15 23:49:19 -05:00
Aaron Suen
4c2ec0c9eb Fix license dates 2022-01-15 23:28:29 -05:00
Aaron Suen
13a5b64a25 Recipe for leaf bud tickling 2022-01-15 14:42:26 -05:00
Aaron Suen
72e417e49d Soil leaching tickling recipe
Also, fix inability to push soaking for leaching
ABMs due to fieldname collision.
2022-01-15 14:07:51 -05:00
Aaron Suen
81b0d85418 Tickling recipe for peat composting 2022-01-15 13:54:35 -05:00
Aaron Suen
f0ea46e4f6 Standardize "tickling" rate
Base rate on the natural ABM soaking rate, so
that quality of environment can still be used
to increase rate.
2022-01-15 13:54:11 -05:00
Aaron Suen
9116857cc0 Back out leaching particles
They're barely visible if at all, create a ton of
network traffic, and now inconsistent with
composting.  Trees are allowed to be a little
special.
2022-01-15 13:51:21 -05:00
Aaron Suen
db8f5c79b7 "Tickling" recipes for tree growth 2022-01-15 13:40:02 -05:00
Aaron Suen
5c812035c7 Dirt leaching particles 2022-01-15 13:39:12 -05:00
Aaron Suen
acd4156ed8 Soaking "tickle" API, standardize particles 2022-01-15 13:29:50 -05:00