127 Commits

Author SHA1 Message Date
Aaron Suen
dabf8ac697 Fix node registration alpha for 5.4+ 2021-02-07 12:40:10 -05:00
Aaron Suen
d4fdf8c6e8 Fix items unplaceable due to stack/touch-hurt 2020-09-26 15:03:22 -04:00
Aaron Suen
761753d5dc Simplify water names 2020-09-11 19:48:42 -04:00
Aaron Suen
24953aafe6 Almost completely opaque pumwater inside 2020-09-10 22:39:51 -04:00
Aaron Suen
1b33ccb431 XD 2020-09-07 21:55:41 -04:00
Aaron Suen
05d985c635 Expand hint system a bit
- Add reset command
- Reset alerts on resetting state
- Add option to hide hints
- Add option to add custom hint attrs
- Add option to pass in an already-fully-formed
  hint object and skip construction helpers
- Tidy up terrain hints a bit
2020-09-05 16:08:17 -04:00
Aaron Suen
18b01c1ae7 Redistribute hints into each mod
Hints themselves have not been tided up
much, but this makes the project of fixing the
hints for each mod a little more manageable
and breaks up the hard-to-navigate single
monolithic hints file in the old guide mod.

The old guide mod has now been completely
retired.  Hints are now a full-fledged API-layer
standard feature.
2020-09-04 19:07:45 -04:00
Aaron Suen
6cd356c191 Remove explicit node non-diggability
This opens up the possibility of mods adding
tools that CAN dig some of these more exotic
things.
2020-09-02 08:21:46 -04:00
Aaron Suen
a002c88642 Remove smoothstone silk touch restriction 2020-08-10 20:16:41 -04:00
Aaron Suen
78d321c24f Support explicit TP overrides for special_tiles
Hughes Ross has started to work on a PR for this
(https://github.com/minetest/minetest/pull/10140)
but it doesn't look like it will be ready until 5.4 at
least, and we will support pre-5.4 versions for
some time yet.  The ability for TP artists to
override special_tiles is necessary to allow things
like flowing liquid textures to be customized in
texture packs.

Add a hack for these, similar to how we did the
inventory/wield image hacks.

Note that we are also forcing overrides for special
tiles, since there may be cases where we reuse a
base image without modifiers but TP artists may
still want an independent override.
2020-07-04 19:25:37 -04:00
Aaron Suen
88c10d3d6e Mapgen optimization
Two optimizations that added up to a significant
time savings in on_generated:
- Replacing calls to area:index(x,y,z) to precalculating
  an offset and then using stride math inside the loops
  gives us a huge cost savings.
- Prefilling lookup-by-ID tables to force them into
  sequential arrays instead of hashmaps speeds up
  lookups, for a more moderate savings.
2020-06-28 20:24:15 -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
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
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
74d42519b5 Revert grass growth abm
The performance costs were too high, as we're
under some ABM pressure on the new server...
2020-06-15 02:29:27 -04:00
Aaron Suen
f70c34cf8e Refactor amalgam into its own mod
This declutters nc_terrain and paves the way for
more igneous content
2020-06-06 08:00:59 -04:00
Aaron Suen
23527e264b Artificial stone hardening process
Stone is hardened by creating an elecric field via the Peltier
effect that causes internal crystals to align.  Or something like
that.

Stone hardens over time when touching both lava and water.
All stratafiable stone types (lode sign, lode ore, lux ore) are
affected.
2020-06-04 08:09:30 -04:00
Aaron Suen
1b646d3f63 Try to enforce stone group sanity 2020-06-04 07:33:49 -04:00
Aaron Suen
920fba34ee Separate node stand/touch/radiant damage types
Don't reuse damage_per_second for damage on punch and radiant
damage.  This allows these to be defined separately, i.e. no longer
assuming that all damage is from "heat" and can radiate.  This
allows for things like thorny plants that hurt if you touch them
or stand in them but not if you stand near them.

Thanks to WintersKnight94 for reporting this.
2020-04-09 06:56:18 -04:00
Aaron Suen
c6cabca0e9 Stone bricks by WintersKnight94
- Original texture by WintersKnight94.
- Node definitions and recipes adapted from original.
- Added some hooks in a few other places to make new
  recipes work.

- Chip smooth stone with a lode pick or better to make brick.
- Bricks fall but don't repose.
- Apply mortar (wet aggregate) to bond stone bricks
- Bonded bricks can be moved but don't fall anymore.
2020-03-29 20:55:55 -04:00
Aaron Suen
1c612ee1f7 Cobbley group, generic scaling factors by group 2020-03-29 08:05:13 -04:00
Aaron Suen
f37a918f0f Scaling and touch-hurt reforms
- Storeboxes are now scalable.
- Standardize touch-hurt operation.
- Touch-hurt damage on scaling.
- Now possible to alter scaling time via scaling_time
  group (percent of original scaling time)
2020-03-29 07:55:54 -04:00
Aaron Suen
ba95b0989a Mapgen: lava and water springs.
Rarity values may need to be adjusted.
2020-03-21 09:05:53 -04:00
Aaron Suen
0cb72f7f2b Updated code standards. 2020-02-27 19:11:12 -05:00
Aaron Suen
6db8d9fc26 Adjust things to work in twilight.
- Lenses no longer produce light from sun at all;
  artificial light is always needed.
- Grass and trees survive, don't do dual-time check.
- Breeze sounds work in twilight.
- Sponge drying only requires twilight, now also can
  happen under artificial light.
- Peat to grass happens under twilight.
2020-02-22 16:55:42 -05:00
Aaron Suen
c7a322941e Experimental new natural light system.
- No day/night cycle, no sun/moon.
- Get rid of clouds too.
- Skybox is now 100% texture-packable.
- Natural light diminishes with depth.

Night-time no longer disrupts gameplay topside, but
skylights are no longer useful to an infinite depth and
artificial light is necessary for all deep mining.
2020-02-22 10:38:03 -05:00
Aaron Suen
bc7987f9c4 Set drowning damage the correct way. 2020-02-19 21:30:45 -05:00
Aaron Suen
f03154453f More grass, less dirt on hillsides. 2020-02-19 08:15:39 -05:00
Aaron Suen
191e97fa27 Rename texture to avoid disrupting texture packs.
Reinterpreting the grass side as a mask instead of a texture
causes some really ugly artifacts with texture packs designed for
legacy textures and not overriding this.

Renaming the texture prevents the collision, and creates a sane
fallback for texture packs that don't have an override.
2020-02-19 11:08:59 -05:00
Aaron Suen
484c1a337f More subdued look for molten glass, image opt. 2020-02-18 20:10:08 -05:00
Aaron Suen
2ac5403149 The last few texture tweaks. 2020-02-18 19:57:30 -05:00
Aaron Suen
6a89bb5415 Compromise grass, and some more lode textures. 2020-02-18 19:02:52 -05:00
Aaron Suen
df2bb58793 Finish tree + terrain textures, new "rusty" lode look. 2020-02-18 06:30:43 -05:00
Aaron Suen
bc5708b343 Bold new look for lode! 2020-02-18 00:07:59 -05:00
Aaron Suen
979b652484 Fix grass side shadow, image opt. 2020-02-17 22:40:26 -05:00
Aaron Suen
e4e5dadf42 Start work on new textures.
New style is much more uniform, tiles better.
Look is more flat, muted, lower contrast.
2020-02-17 22:32:27 -05:00
Aaron Suen
47d18a554b Remove an unused resource. 2020-02-17 21:48:49 -05:00
Aaron Suen
80ed908b6b Fix grass eating tree sprouts (again). 2020-02-16 16:11:49 -05:00
Aaron Suen
06a94e4ffb Fix leech->leach spelling 2020-02-14 21:25:25 -05:00
Aaron Suen
aee03be096 Better grass ABM dispersal. 2020-02-08 15:04:52 -05:00
Aaron Suen
3848488a30 Offline catchup for grass spreading. 2020-02-08 15:02:43 -05:00
Aaron Suen
e2a5581085 Hint updates! 2020-01-21 21:19:30 -05:00
Aaron Suen
085039acea Make amalgamation solid/loose pair.
Quenching to solid prevents falling into lava below.  Amalgamation
can be harvested from the surface with silk touch of Lux-tier
tools.

Attempting to collect with lower Lode-tier tools will likely cause
the loose amalgamation to fall into the lava below, possibly
displacing a source node (if the pool is shallow enough) upward to
fill its spot, then the amalgamation below will melt and the source
node above will quench, so no progress is made.

It's possible to harvest using lode tools, in practice, by
digging down the side of a lava pool and quenching as you go,
until you reach the bottom...
2020-01-17 07:15:16 -05:00
Aaron Suen
06d2594671 Tweak the display name a bit.
"Amalgam" may imply a mercury alloy, which is
not true in this case; we're using it in the
"combination" sense, i.e. an amalgamation of
molten and solid stone.
2020-01-16 23:39:30 -05:00
Aaron Suen
2c47a151cc Started new mechanic for molten rock transport.
Quench lava to amalgam and it can be moved
around like loose cobble.  The tricky bit is that it
needs to STAY quenched at ALL TIMES, and is
not (currently) stackable, so water channels need
to be setup to transport it, and limited amounts
can be moved at a time.

It's also an igniter and thus will dry out sponges
left to keep it cool.
2020-01-16 23:09:55 -05:00
Aaron Suen
7bc1a4ddad Standardize node placement sounds.
Add node placement sounds to processes
missing them, like tree growth.
2020-01-16 22:02:59 -05:00
Aaron Suen
19de5dfd1e mapgen_shared improvements.
- Register def tables instead of bare funcs.
- Add labels for mod logic use.
- Automatically skip for singlenode mapgens,
  e.g. for the skyblock modpack.
2020-01-12 10:30:02 -05:00
Aaron Suen
2c4e502c21 Soaking API requires explicit field name.
This guards against possible bugs caused by
running multiple conflicting processes on the
same thing.
2020-01-11 08:42:23 -05:00
Aaron Suen
9916922432 Drop float support, displace lava.
BOLO gameplay that feels too "exploity" with ability
to forcibly transport lava upwards.
2020-01-05 13:26:45 -05:00
Aaron Suen
4d47ab2e75 NC API dependency simplification.
Treat all API mods as a "layer", and use the new
nc_api_all registration to indicate that a mod depends
on the NC API (which ALL NC mods assume they do).
This means that each non-API mod does not need to
worry about which API mods it really needs and which
it does not, nor will they need to be updated for any
internal API restructures.

This is a game, not a modpack, so all mods will be
loaded anyway, and we only care about order.  That
means that we don't really need to worry about
having excess dependencies because any mod we
don't actually need will be needed by something that's
loaded anyway.  If somebody wants to reuse a
component elsewhere, they're likely to need to do
some work to untangle it anyway, because of the
amount that NodeCore mechanics interact and
interdepend.
2020-01-05 12:59:12 -05:00