2526 Commits

Author SHA1 Message Date
Aaron Suen
3c2104561a Explicit cobble fill for dungeon brick API
Instead of relying on base layers to replace dungeon cobble with
real cobble in the bricking logic, explicitly set a cobble node
name so that downstream consumers (e.g. nature mod) that extned
this API will reliably get all fill/brick/bonded members of the
material profile to transform consistently.
2021-09-27 08:15:53 -04:00
Aaron Suen
1a26ec1f9e Always be more careful with future params in interception 2021-09-27 08:08:08 -04:00
Aaron Suen
47d0b68dba Unify dungeon API RNG
Avoid having to have each dungeon generation method manage its
own RNG, which should save a lot of time on RNG seeding.
2021-09-27 08:04:09 -04:00
Aaron Suen
2e9d342110 Complex concrete dungeon materials
Use all base concrete materials in dungeon gen.

- From y=+32 to y=+64, transition from stone to a 50/50 mix
  of adobe and sandstone.
- From y=-640 to y=-768, transition from stone to tarstone.

Adds some more variety and reason to explore dungeons.
2021-09-27 07:55:35 -04:00
Aaron Suen
b5eb58d2bb Dungeon stonework API, restrict a few more loot items
Add a generic method to get stonework materials for dungeon
brick generation so we can extend dungeon bricking while keeping
the same pattern of mixed cobble/bricks/bonded.
2021-09-27 06:59:14 -04:00
Aaron Suen
f3f60ff507 Depth-restrict dungeon loot
Some loot does not appear above certain depths, to restrict
late-game content to players who are more likely to have actually
achieved that level, and not spoil very-late-game content very
early in surface-accessible dungeons.
2021-09-27 06:51:31 -04:00
Aaron Suen
7bf0507cfd Fix uninitialized dungeons below y=-80
This was caused by a missing biome definition at this depth,
causing stonework and loot not to populate.
2021-09-27 06:50:41 -04:00
Aaron Suen
f763778436 Fix flower breeding influence radius 2021-09-25 11:56:26 -04:00
Aaron Suen
b73d1d1290 Pre-clean-transparent filter on all textures
Some users may use filtering but not have the "clean transparent"
filter enabled in the Minetest engine config.  Bake this filter
into all images to (1) avoid the consequences of this (i.e. black
halos), and (2) possibly speed up startup time (the filter will
converge immediately).
2021-09-23 07:36:21 -04:00
Aaron Suen
92a9b2bed3 Allow artificial water sources to overwrite flows
Sponges can "time out" due to having been unloaded, and having
their check timer fire before an automated squeezer door timer
fires.  If this happens, the water needed to drain completely
before it could be re-squeezed, forcing a break in the water
flow.

This allows water sources to replace the water flows, so that
unbroken water sources will work even in load/unload boundary
conditions.
2021-09-17 07:17:51 -04:00
Aaron Suen
23509a7796 Explicit order of ops
I've had "not a or b" or "not a and b" behave
counterintuitively for me before so now I'm rather
defensive about binding order for "not".
2021-09-15 22:27:00 -04:00
Aaron Suen
52f36ce528 Fix pliant conrete being brickable 2021-09-15 22:24:56 -04:00
Aaron Suen
f23f87cc47 Make sure empty bandolier slots never glow 2021-09-12 16:41:05 -04:00
Aaron Suen
102bc0e85e More docs updates 2021-09-12 09:07:26 -04:00
Aaron Suen
a21ed2241d Retire the "design principles" doc
This document has remained unmaintained for a
long time, never was truly correct, was always
reactive and descriptive rather than being
prescriptive, and frankly the readme does a better
job of that anyway.

From early on, NodeCore was always about
experimentation, and just keeping what fit in and
worked.  This means that "design principles" have
always been less about some grand underlying long-
term vision, and more about just pattern recognition.
NodeCore has been around long enough that the
patterns are fairly evident by now.  Trying to keep
around a doc that is always lagging behind these
patterns is not helpful.
2021-09-12 08:55:36 -04:00
Aaron Suen
e017229a5d Reduce warning noise on wrong time_speed 2021-09-10 10:20:05 -04:00
Aaron Suen
afeddfd8ee Add rudimentary river water support
This is demanded by the valleys mapgen,
and it's probably easier to give it some
support than justify disabling it.
2021-09-06 22:00:25 -04:00
Aaron Suen
02e0dcc8ea Ensure standard dungeon gen priorities 2021-09-06 21:07:05 -04:00
Aaron Suen
86c96274dd Sync in more German translations 2021-09-06 12:27:02 -04:00
Aaron Suen
b42a01a4f9 Register group for dry flora
This represents plant matter that may be
"dead" more or less and could be used for
thatch or adding plant fibers to things.
2021-09-06 10:17:39 -04:00
Aaron Suen
e535e126c1 Fix debug flower breeding rates 2021-08-28 19:36:43 -04:00
Aaron Suen
74587aca63 New flower breeding mechanics
Simpler, fixed-probability-based, mutate into
nearby phenotypes only.  Mutation rate is
greatly reduced, should make flower breeding
into a challenging idle minigame.
2021-08-28 10:51:40 -04:00
Aaron Suen
4f3f613f4b Don't generate sand deep underground 2021-08-27 21:24:39 -04:00
Aaron Suen
27a2b61f21 Document one more issue 2021-08-27 21:13:10 -04:00
Aaron Suen
ee4ce44478 Docs update/merge 2021-08-27 20:50:31 -04:00
Aaron Suen
b21f8d4051 Fix typo in release description 2021-08-24 07:34:07 -04:00
Aaron Suen
3cee88f34a Remove mis-included file 2021-08-23 06:28:54 -04:00
Aaron Suen
9a700b597c Fix for tote placement crash
When placing a tote, if the space it's being placed into is not
buildable (e.g. placing against the ground where a stick is
lying above it) then it would crash; make it just abort tote
placement instead.
2021-08-23 06:26:42 -04:00
Aaron Suen
7dc18b3eab Fix crosshair in darkness
Crosshair can no longer be used to "sense" solid
nodes in darkness; need to punch or create a
light spot.
2021-08-22 08:53:01 -04:00
Aaron Suen
1c40a5384d Fix lux level stack combining on drop 2021-08-20 07:06:41 -04:00
Aaron Suen
55a3e9120e Mark issue done
Turns out the only major use of particles was
a unified smoke generation system.

In theory sound could be limited too, but there
maybe some risk in delaying it (in case
globalstep flushes run before the sound-causing
events) or losing sounds affecting accessibility.
2021-08-19 22:21:26 -04:00
Aaron Suen
fd181833f4 Limit smoke effects, e.g. from concrete cure
Standardize a "fair limiting" mechanism that
limits the items accepted into a queue, and
returns a uniform random sample when flushed.

Pass all cooking/curing smoke effects into fair
limit queue.

Apply fairl limit queue to fire sparks too.

Pliant concrete curing checks still seem to lag
the server somewhat, but at least now they
shouldn't hammer the client with particles and
kill framerate too.
2021-08-19 22:19:27 -04:00
Aaron Suen
22ff675761 Fix hint alert state on re-granting interact
If a player loses interact after having discovered
things, then logs out, then later relogs in without
interact privs, it will not load the correct already
seen alert cache data on join.  This causes a
swarm of hint alerts to appear when interact
privs are restored.  Instead, detect when interact
is freshly re-granted and reset the cache at that
time automatically.
2021-08-19 21:35:46 -04:00
Aaron Suen
2cbc95635b Clear a non-bug from bug list 2021-08-19 21:29:38 -04:00
Aaron Suen
3a425f5459 Fix writing orientation on walls 2021-08-19 20:51:43 -04:00
Aaron Suen
977eab5231 Slightly more nuanced looktip delay
Player can trigger looktips by standing still
for a while (looktips on everything instantly),
by holding focus on a specific face for a
while (looktip just on that one face), or by
punching (instant looktip for that one face).
2021-08-19 20:17:09 -04:00
Aaron Suen
b2269d4424 Fix opaque leaves appearance
Draw faint (and code-configurable) outlines
of leaves when opaque, and don't let
texture_clean_transparent completely fill
in the gaps with green.
2021-08-19 00:48:14 -04:00
Aaron Suen
699dc3481b Notes updates 2021-08-18 23:12:06 -04:00
Aaron Suen
0c893e1183 Try to mitigate spammy looktips
Right now looktips are rather obtrusive to
the overall game experience, and should
show up on some kind of delay to mitigate
this.

I tried having a delay for looking at a node
before a looktip showed up, but it felt sort
of annoying when switching from node to
node, especially since the faster response
on the face-dependent location of the tip
is helpful for building.  The code for it also
turned out to be messy, since node and
object handling needed to be different, since
it was unrealistic to actually hold the
crosshair on a moving thrown object.

What I've got for now is just disabling the
looktip during, and for a slight delay right
after, any player movement, based on
movement input controls.  This prevents
the player from having a bunch of looktips
juddering across the screen while walking,
but allows them whenever standing still.

This MAY be good enough, but it may take
some play-testing to confirm.
2021-08-18 22:46:53 -04:00
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