20 Commits

Author SHA1 Message Date
Aaron Suen
b2f78c0daa Indexing for craft checks
By restricting the recipes we check based
on the name of the central object being
checked, we can do many fewer craft
checks per item and avoid expensive
checks.
2020-06-27 12:20:35 -04:00
Aaron Suen
42f125c716 Make most recipes indexable
Register a "rootmatch" property for all
recipes that represents a broader, quicker
test for recipe eligibility.  False positives are
allowed but false negatives are not.

Since most recipes are eligible, we can
use this to build an index for fast lookups
of subsets of recipes to run and skip most
of the other ones.
2020-06-27 11:06:43 -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
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
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
db5ff04b1c Composting spread catchup too. 2020-02-08 15:16:41 -05:00
Aaron Suen
3848488a30 Offline catchup for grass spreading. 2020-02-08 15:02:43 -05:00
Aaron Suen
e3f7aee3e5 Peat rarely ferments to grass under sunlight. 2020-02-07 18:48:48 -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
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
585672c81b Dirt/humus leaching via soaking.
- Add humus->dirt leeching recipe.
- Use soaking API, track dirt leeching progress across
  offline time.
2019-12-27 10:09:00 -05:00
Aaron Suen
6427db69d8 Peat making now requires an appropriate tool. 2019-11-17 08:50:47 -05:00
Aaron Suen
ec723ea6d2 Tree growth requires adequate light and space. 2019-10-19 11:00:18 -04:00
Aaron Suen
90dd2c259b Fix and clean up tree growth and composting. 2019-10-06 09:26:18 -04:00
Aaron Suen
d453df0bb8 New dirt cycle.
- Pack 8 leaves into 1 peat node.
- Leave peat nodes near soil and moisture to decompose further
  into humus.
- Humus is a high-quality soil that works like dirt in most
  ways, but grows trees quite a bit faster.
- Humus converts to dirt via grass (and eventually maybe other
  plant cultivation activities).
2019-10-06 00:08:59 -04:00
Aaron Suen
79419dd10a Simplify composting logic.
- Leaves no longer decay into air.
- Leaves compost over longer time, following tree growth logic
  (i.e. based on moisture and soil) when not exposed to air.
2019-10-01 18:23:12 -04:00
Aaron Suen
9bfe902634 Try nerfing composting rates by 5x. 2019-09-15 07:38:38 -04:00
Aaron Suen
57b032d062 Initial work on leaf composting.
- Leaves left in the sun decay to nothing.
- Leaves deprived of air decay into dirt.

TODO:
- Decay out of stack nodes, half-life qty?
- Dig particle effects for node destruction; create API and
  apply to other places?
2019-09-14 10:33:02 -04:00