86 Commits

Author SHA1 Message Date
Aaron Suen
b2eac10f95 Quench glowing lode cobble to cobble, but anneal to ore. 2020-02-15 10:27:50 -05:00
Aaron Suen
ec2454d592 Lode tool breakage is now lossy.
Players have an incentive to be careful with lode tools
and collect worn ones to melt down for recycling instead
of just letting them break naturally.
2020-01-31 08:17:51 -05:00
Aaron Suen
8417236d42 Experimental lode forging rework.
- You can now forge hot lode using either tempered OR
  annealed anvil.
- This creates a gameplay path for accessing annealed
  lode without having the resources (i.e. water/sponges)
  to access tempered yet.
- Cold-working is still more efficient for being able to
  pick up the excess prills from the process.
- Cold working, and then heating afterwards, is still likely
  the only reasonable way to make mattocks.
2020-01-24 19:28:41 -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
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
Aaron Suen
dcfc80b367 Remove explicit names in mod.confs. 2020-01-05 12:38:45 -05:00
Aaron Suen
89020e8340 Major rebuild of item_entity.
This created a ton of dependency inversions, which
necessitated moving a number of API functions up into
higher layers, and restructuring dependency lists for
a number of mods.

BOLO: non-deterministic load errors due to missed
dependencies.
2020-01-05 11:42:22 -05:00
Aaron Suen
9ce6cabc32 Fix lode ore often dropping zero prills. 2019-12-17 19:51:01 -05:00
Aaron Suen
c0570db089 Fix lode yield probability distribution.
Also refactored exponential random transform function
into core API.
2019-12-16 09:20:00 -05:00
Aaron Suen
7050568938 Dammit dammit z-fighting hacks.
- Unbake the scaling tweak from models, apply it
  using mesh scaling in MT instead.
- Standardize ratio definition in one place.
- Default all nodeboxes to winning z-fights.
2019-12-08 23:14:56 -05:00
Aaron Suen
3d11536b81 Fix ugly frames/ladders/staves/rods.
Automatic z-fighting prevention was causing some
nodes to fail to connect to neighbors due to the tiny
gaps.  Allow certain nodes to "win" the z-fight instead
so they also connect to neighbors properly.
2019-12-08 17:19:47 -05:00
Aaron Suen
eeff1d530c Use standard framed mesh for lode crates too. 2019-12-08 16:47:51 -05:00
Aaron Suen
ce58f8294c Refactor shelf API/assets into its own module. 2019-12-08 16:41:59 -05:00
Aaron Suen
dd0cf19784 Centrally fix water z-fighting on ALL nodeboxes. 2019-12-07 22:24:09 -05:00
Aaron Suen
e99c72154d Shelf standarization and tweaks.
- Refactor common code.
- Allow placement of wood shelves inside lode crates.
2019-12-07 18:25:05 -05:00
Aaron Suen
6e1f3fee94 Standardize intra-line spacing in code. 2019-12-01 11:08:12 -05:00
Aaron Suen
b9e2f822f8 New flexible find_nodes_around api. 2019-11-30 10:28:35 -05:00
Aaron Suen
4c025eea00 Don't register useless glowing lode full tools. 2019-11-17 08:55:24 -05:00
Aaron Suen
e4dba54be3 Lode smelting rework.
Separate ore melting and draining processes, to
ease the cognitive leap necessary to figure out
lode smelting.  Players now get feedback when
they have figured out the heating part of the
process, and the visual for cobble with molten
lode in it hints at the draining process.
2019-10-06 10:31:58 -04:00
Aaron Suen
c147da4dde Convert from depends.txt to mod.conf 2019-10-05 11:24:16 -04:00
Aaron Suen
54cc3445d3 Further shelf placement fixes. 2019-09-21 12:12:52 -04:00
Aaron Suen
e48d306e98 Fix broken lux ore hard strata. 2019-09-15 07:32:06 -04:00
Aaron Suen
52de19a28c Unified falling check, check after craft. 2019-09-09 07:05:01 -04:00
Aaron Suen
6c650e85c7 New drowning HUD that's easier to see in already-dark environs. 2019-09-08 13:24:12 -04:00
Aaron Suen
19e20e4406 Add wrought annealed lode storage crates.
These are similar to wooden shelves, except:
- They are not flammable and protect all contents from fire.
- They can be accessed from the top as well, so can be used for
  e.g. floor storage.
2019-09-07 14:34:16 -04:00
Aaron Suen
612f67983e Lode block needs to be hot to chop up now. 2019-09-07 14:34:09 -04:00
Aaron Suen
1ebdaa6162 Fix falling glowing lode nodes. 2019-09-07 12:02:17 -04:00
Aaron Suen
d43b8cbcda All lode cooking recipes work on nodes in placed form too. 2019-09-07 12:00:33 -04:00
Aaron Suen
9a75f4c87a More flexible burning API.
Stone, lode, and lux tools now all have their handles burn, and
eject the non-flammable portions of the tool.

Now using a unified on_ignite hook for when flammable things catch
fire.  The call is made BEFORE the node is replaced, and has an
opportunity to look at node metadata and eject anything
non-flammable.

It can be a function, e.g. for shelves, or a static value in the
same format that the function would return (e.g. for lode tools
which need string values for temper substitutions).

If it returns a string or itemstack, it will eject that from the
position where the node burned.  If it returns a table it will
eject all the values of that table.
2019-09-07 11:28:51 -04:00
Aaron Suen
310ce1bc6c Treat NodeCore as a unified thing.
- Collapse all nodecore "core" mods in the /mods listing, so it's
  easier to find the actual add-on mods.
- Parameterize in-game branding to make renaming derivatives just
  a little easier.
2019-09-07 09:08:57 -04:00
Aaron Suen
39dea8a2ae MAJOR: Code quality audit using luacheck.
- Removed lots of unused variables, a few shadowed identifiers.
- Removed a few sections of dead code.
2019-08-31 09:26:53 -04:00
Aaron Suen
fe2c153f9e Clean up all lua code style.
Formatting rules based on Paul Kulchenko's perl-based formatter...
http://notebook.kulchenko.com/programming/lua-beautifier-in-55-lines-of-perl
...using a single tab for indent.

Mostly pure whitespace changes.
2019-08-27 19:14:51 -04:00
Aaron Suen
86cc55c12b Basic door node setup and recipes.
- Craft door panels by chiseling with a rod.
- Rotate door panels.
- Hammer in rod to act as hinge pin.
- Dig out hinge pin, dig up panel.
2019-08-13 21:06:13 -04:00
Aaron Suen
d13147fd57 Add bars and rods to lodecrafting. 2019-08-09 22:28:19 -04:00
Aaron Suen
285a21b796 New hand appearance.
- Matches player model.
- Stays down by player's side (off-screen) when not in use.
  The game looks even more minimalistic when first started.
2019-04-13 23:39:46 -04:00
Aaron Suen
431594b1b6 More nuanced ore distribution.
- There is now a thin "background" amount of lode at all depths,
  so you should never dig too large a stata without finding
  anything at all.
- Ore is now not only more plentiful at depth, but also packed
  into denser clusters, so you have to mine for longer before
  finding a huge deposit.
2019-04-04 08:48:55 -04:00
Aaron Suen
3614068263 Bug fixes, tidier craft excess handling. 2019-04-03 08:10:03 -04:00
Aaron Suen
4b1488ed3f Hints system overhaul.
- Included new content.
- Partially converted to base on recipes instead of just items.
- Added support for group and toolcap checks.

Fixed a number of small bugs elsewhere in the process.
2019-04-03 07:41:27 -04:00
Aaron Suen
be6b5ec8a0 Remove "Cube" from node descriptions.
Consistent with everything else in the world, we assume that "cube"
is the default state for things to be in (this is NodeCore after
all) and only use shape descriptors for things like lumps, prills
and other non-cube versions of things that also exist as cubes.
2019-04-02 08:10:17 -04:00
Aaron Suen
05efab5c58 Lode ore distribution overhaul.
- Don't generate in high terrain above y = 32 at all.
- Increase concentraion through 7 different strata moving downwards
  up until max concentration at y = -4096.  This creates incentives
  for digging deep instead of just staying at surface.
2019-03-31 12:59:09 -04:00
Aaron Suen
a8766c8b42 Fix deep lode ore description. 2019-03-29 21:46:54 -04:00
Aaron Suen
584fd2f9fa Make deep stone dig through each stage, taking longer to dig. 2019-03-24 23:15:34 -04:00
Aaron Suen
497e637d80 Code simplification. 2019-03-23 17:44:18 -04:00
Aaron Suen
29dbe0f411 Holy moly, it's the first new tool in like forever! 2019-03-23 17:41:31 -04:00
Aaron Suen
cff62c1281 Reset cooking/cooling recipe if stack quantities change. 2019-03-22 23:15:47 -04:00
Aaron Suen
8a8533a8fc Convert lode to new cooking recipe system. 2019-03-22 22:55:30 -04:00
Aaron Suen
209e0491a4 Fix loose lode cobble sounds 2019-03-16 17:02:10 -04:00
Aaron Suen
de4dff158f Sounds for lode things and sponges. 2019-03-14 19:31:56 -04:00
Aaron Suen
5de0cc54ec Add stony sounds, and sounds for stacks/shelves. 2019-03-14 00:31:09 -04:00