2287 Commits

Author SHA1 Message Date
Aaron Suen
e7396e3aad Non-interact players cannot discover hints
Need to be granted interact privs before they can
start observing and discovering things and trigger
hint completion.  This should reduce the noise for
pure spectators, and not distract new players who
should be reading rules or something.
2021-08-16 18:41:27 -04:00
Aaron Suen
16959bf2ee Resimplify crosshair
The "player character" only assists with "depth
perception" and determining if pointing at
something within reach; diggability, protection,
and other consequences of touching the thing
should really be the actual player's responsibility.
We don't want things to be too "automatic" for
the player; they are supposed to learn about the
world, not about the HUD instrumentation.
2021-08-14 23:21:52 -04:00
Aaron Suen
f5d968231a Recipe to unbond bricks
Pick the bonding back out of the grooves
with a metal or better pick.
2021-08-14 19:59:28 -04:00
Aaron Suen
16246baaad Crosshair shape by protection instead of type
The use of object vs node crosshair is less important now
due to our ability to rely on the looktips to differentiate
which thing we're pointing at (and which face), and
makes less sense in terms of NodeCore's everything-is-a-
node nature.

Protection, however, is more useful to show, where in
use, so players can avoid interacting with things and
triggering protection alerts.  Use the old everted
crosshair design to now mean "protected" instead of
"pointing at entity."

The old use of the crosshair shape should have been
uncommon enough that players should be able to
adapt to the change alright.
2021-08-14 16:22:49 -04:00
Aaron Suen
d18da1fb59 Disable 3rd person mining anim for disabled slots 2021-08-14 09:51:48 -04:00
Aaron Suen
533b2a840c More flexible player guide API for mods
- Tab content can now be "raw" instead of plaintext, in
  which case it will not be escaped or embedded in a
  textbox and can have arbitrary controls.
- Tab content function is now passed geometry that
  would be used for textarea, to inform placement of
  custom form controls.
- Tab content function is passed list of current
  formspec content in mostly-complete form, so that it
  can modify any other form data, including replacing
  the entire form if it wants.
- Falsy tab content (or content function return) prevents
  showing the formspec at all, allowing mods to show
  their own formspec entirely, but navigation back to
  the guide is the mod's responsibility.
2021-08-14 08:54:02 -04:00
Aaron Suen
fb66115fb1 Order hint completion alerts chronologically
Instead of sorting hint completion alerts alphabetically
just so they'll be stable, sort them by order of actual
completion, so most recently completed hints are at
the bottom of the list, instead of inserted at randomish
places in the list.
2021-08-14 08:37:06 -04:00
Aaron Suen
5639ec773c Simplify early-game hints
Lock more things behind prerequisite hints, even if
they're not absolutely strictly necessary to complete
in that order, if they would commonly be done in
that order.  This reduces players being overwhelmed
by available hints very early in the game, and avoids
red herrings like "find lux" which can technically be
accomplished but yields no useful results until the
player can act on them.
2021-08-14 08:29:27 -04:00
Aaron Suen
7dc2e5a822 Idea notes 2021-08-14 08:14:45 -04:00
Aaron Suen
5cbbae8cc9 Graveled adze recipe reform
Using stackapply recipe, it's no longer necessary to
sneak+place the gravel above the adze; it works
just like stone-tipping.
2021-08-14 08:11:12 -04:00
Aaron Suen
8237f8c400 Convert tool stone-tipping to stackapply recipe 2021-08-14 08:06:27 -04:00
Aaron Suen
d7dbde8765 New stackapply recipe type
For "applying" an item to a stack using right-click.
So far, replaces the old eggcorn planting recipe; to
be done include tool stone-tipping and adze
graveling.

Using the new recipe allows more inversion of control
/ dependency injection, so we don't have to override
on_place or on_rightclick in definitions anymore, and
stop having to recreate some of the base logic from
the crafting system, e.g. discovery, placement sounds.
2021-08-14 08:01:50 -04:00
Aaron Suen
e7a8856aab Translation updates
- Start of German translation
- Re-completion of Russian
2021-08-14 07:40:04 -04:00
Aaron Suen
e2751cb2c3 Player skin leather tone and colors 2021-08-12 07:36:01 -04:00
Aaron Suen
bc8f78ce75 Make health virtual items unusable
Instead of them being like a half-broken hand
that can dig but can't climb, just make these
items completely invisible and unusable, i.e. you
must select an actual working inventory slot to
even see a hand.

This should also solve the issue that skins mods
that change the hand display the wrong arm
skin for injury items.
2021-08-11 22:13:09 -04:00
Aaron Suen
81da6bc2a7 Merge branch 'master' into dev 2021-08-11 18:25:39 -04:00
Aaron Suen
197467d795 Fix missing adze graveling wear check 2021-08-11 18:25:18 -04:00
Aaron Suen
f9e02b681e Remove no-longer-used sound 2021-08-11 06:55:48 -04:00
Aaron Suen
3c9873e81d Merge branch 'master' into dev 2021-08-11 08:44:52 -04:00
Aaron Suen
de6206d6d9 Fix broken object crosshair 2021-08-11 06:44:40 -04:00
Aaron Suen
d5233b5f19 Visible bandolier on player skin 2021-08-09 08:24:41 -04:00
Aaron Suen
aebd2b3111 Nicer, "smart" item ejection
- Major impact is on chopping recipes (logs to
  planks, charcoal splitting, optic lenses).
- Try to eject items only in a direction that they
  can actually fly.
- Distribute items more or less evenly among each
  direction they can fly.
2021-08-09 08:20:28 -04:00
Aaron Suen
9abee673e5 Minor memoization func cleanup 2021-08-09 08:18:48 -04:00
Aaron Suen
1b0a506633 Fix tote AISM over-modification
Carrying a tote with an infused tool inside would
cause the tote to repeatedly animate item
switching because the infused tool's soaking AISM
would keep returning a new item stack, causing
the tote to detect a "dirty" state, reserialize its
data, and thus keep changing metadata.

Detect if we're setting an item string to the same
string it already was, and don't mark it as dirty
if so, fixing this.
2021-08-09 07:26:26 -04:00
Aaron Suen
4ed265558f Notes updates 2021-08-08 09:07:53 -04:00
Aaron Suen
c2ec7cb942 Emergency dig time upper bound
Make sure no matter how badly players are
trapped, they can still make an emergency
tunnel out.
2021-08-08 08:36:34 -04:00
Aaron Suen
52a7211c00 Fix silk touch for lode ore 2021-08-07 15:20:05 -04:00
Aaron Suen
38fc6ab5d7 Subtler domain wall particles 2021-08-07 00:33:48 -04:00
Aaron Suen
d5d9cb07aa Tone down extreme glass brightness a bit 2021-08-07 00:16:54 -04:00
Aaron Suen
7d961a3bec Consistent "tip" in hints 2021-08-06 23:40:17 -04:00
Aaron Suen
46e60a2348 Graveled adze, new path to wood tech
Get rid of the intuitive leap necessary to climb a
tree to make planks.  Instead, a wooden adze
can be gravel-tipped (adzes are now represented
in all tiers) and can chop tree trunks.

The graveled adze is as powerful as a wooden
hatchet and spade combined, in terms of
diggability, but it breaks after a SINGLE use.
It doesn't consume the gravel it's made from,
but reapplying the tip each use is a lot of extra
process.
2021-08-06 23:39:39 -04:00
Aaron Suen
58968f39b7 Crude glass falls upon cooling 2021-08-06 23:05:09 -04:00
Aaron Suen
b4315def27 Delayed witness on staring 2021-08-06 22:59:33 -04:00
Aaron Suen
5c92ac7984 Fix dirt leaching hint
Was called in wrong order so it was looking for
dirt there instead of sand
2021-08-06 22:59:16 -04:00
Aaron Suen
5a9a18535f Hint completion by "staring", not "glancing"
Player needs to linger on the node for at least
long enough to reasonably read the description
before it counts as discovery.
2021-08-06 21:53:42 -04:00
Aaron Suen
3c41155550 Hint discovery by looktips
No touching necessary anymore
2021-08-06 21:46:27 -04:00
Aaron Suen
f7461414d2 Move lazy raycast into playerstep API 2021-08-06 21:33:23 -04:00
Aaron Suen
0e0a423e7e Make all liquids never exist as item stacks
Any liquids that are dropped should become
placed nodes.  It was observed before this that
wet concrete may have been displaced in such
a way that it created a stack node; this ensures
such things are precluded as much as possible.
2021-08-06 21:20:45 -04:00
Aaron Suen
0d3601b831 Items/nodes no longer bounce off players
Be consistent with the principle that the mere
presence of a player does not affect the behavior
of objects in the world.  Items should "fall
through" players instead of bouncing off them,
i.e. being deflected.
2021-08-06 21:11:42 -04:00
Aaron Suen
a0d2abfe3a Fix missed DNTs 2021-08-05 21:09:01 -04:00
Aaron Suen
4f9d756c3f Fix DNTs not firing without nodenames 2021-08-05 20:50:03 -04:00
Aaron Suen
7244d6d11d Fix loose self-repacking when sitting on top of loose nodes
The original idea was that stacks of loose nodes should repack
from the bottom up, and self-repacking should never "race" against
reposing.

If the node is sitting on a solid node, it can always self-repack.
If it's sitting on a loose node, then only repack if the node
below is not itself in the process of self-repacking, and if the
node itself isn't awaiting reposing.
2021-08-05 08:21:54 -04:00
Aaron Suen
81ef696bce Clear soaking meta cache on node replacement
Ensure that when meta is implicitly cleared by node replacement,
the cache doesn't keep an old copy and fast-forward through
soaking recipes if the old node is re-replaced later
2021-08-05 08:10:42 -04:00
Aaron Suen
6aafecf475 Optimize soaking check for dirt leaching
This was triggering on all dirt nodes everywhere, so optimize the
most common code path, i.e. one where there is no water above
and the soaking data must be reset.
2021-08-05 08:02:48 -04:00
Aaron Suen
0435e6af32 Rewrite core DNT API
- Store next runtime instead of countdown, so metadata always has
  one canonical representation for a given target time, allowing
  us to more easily avoid rewriting the same data with different
  representation.
- Tons of caching and duplicate write avoidance, reduced resetting
  of node timers, and MT API calls in general.
2021-08-05 07:36:14 -04:00
Aaron Suen
ffb25a9162 More exact DNT names
Keep actual name of DNTs distinct and self-describing instead of
relying on modname, which sometimes changes when things are
refactored.
2021-08-05 07:35:20 -04:00
Aaron Suen
ea51b81c39 Notes update 2021-08-04 22:58:29 -04:00
Aaron Suen
d8b29d047f Back out pickpocketing
- It was never really a major gameplay feature,
  and more than anything probably more annoying
  when mining close to someone and accidentally
  hitting their items.
- Broken with looktips due to an engine bug, not
  worth trying to fix or work around as is.
- May be readded later if a better way to do it is
  discovered.
- This may be part of a pivot toward a simpler
  plan for YCTIWY integration...
- Already served its purpose in getting rid of
  writers' block :-)
2021-08-04 21:00:51 -04:00
Aaron Suen
362ff17bb2 Don't crash on pointing at non-luaentity 2021-08-04 20:46:37 -04:00
Aaron Suen
dd009343f9 Fix DNT retriggering bug 2021-08-04 17:15:04 -04:00