31 Commits

Author SHA1 Message Date
Aaron Suen
42d4cef19b Log splitting relaxations
- Allow splitting "upside down" logs.
- Allow splitting logs from the bottom using at least lode-tier
  tools (allowing automation options).
2020-09-30 06:38:46 -04:00
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
6e1f3fee94 Standardize intra-line spacing in code. 2019-12-01 11:08:12 -05:00
Aaron Suen
4eb4e80bc7 Fix log splitting. 2019-10-13 09:19:08 -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
5c05a3c6dd Avoid spewing so many individual items. 2019-03-16 16:54:35 -04:00
Aaron Suen
9607bcc6a6 Start working on sounds, plus minor refinements.
- Clean up registered_* usage patterns.
- Reduce tendancy of leaves to create stack nodes.
  Now they tend to stack up properly in-world more often.
- Tweak damage system to create "headroom" where minor
  damage doesn't cost inv slots immediately.
- Make player hand skin color match model skin.
- Cleanup/unify grass abm logic.
- Start installing new sounds by MagikEh

Sound source:
  https://github.com/MagikEh/SoundsOfWarr
2019-03-13 23:51:59 -04:00
Aaron Suen
46403c1fea Randomized lode prill yield.
Using an exponentially-distributed random variable for lode prill
yield.  This results in approximately the same average yield as
before, but with many pieces of ore yielding disappointingly only
1 prill, but a few yielding more, theoretically almost infinitely
more.  Every smelting operation now has a bit of a gambling thrill
aspect to it.
2019-03-02 17:49:09 -05:00
Aaron Suen
1bca9d4b32 Fix plank smashing yield. 2019-03-02 15:15:09 -05:00
Aaron Suen
480b999705 Make shelves easier to build.
- Double recipe yield
- Bash planks directly to sticks with mallet

- Remove debug code.
2019-02-23 10:39:38 -05:00
Aaron Suen
4b972b4d3b More recipe conversion, bugfixing. 2019-02-10 00:20:55 -05:00
Aaron Suen
05d4d52eb4 Survey of how we're using pummels right now. 2019-02-08 21:12:10 -05:00
Aaron Suen
d67f736ac5 Merge node_is into match. 2019-02-03 12:44:33 -05:00
Aaron Suen
739ad29acc Be a little more forgiving on tool wear for stonifying wood tools.
Allow up to 2% wear.  Sometimes you're diggng with a stone tool and
the tip breaks off and you don't notice (there's no sound yet),
so you accidentally dig a little with the wood tool and get it a
little dirty.  Let's be a little forgiving, and allow the stone
tip applicaton to also apply a little "repair" to the underlying
wood tool.
2019-01-26 11:39:55 -05:00
Aaron Suen
fcb8463953 Stone-tipped tools.
- Add a bit of stone to the tip of a wooden tool to harden it.
- Stone tools wear back down to their wooden originals.
- Stone tools dig faster, but wear quickly, so you need to pay
  attention to wear levels and carry spare stone tips.

Also:
- Nerfed mining speeds again, but made higher-tier tools much
  faster relative to lower.
- Nerfed tool durability as well.

Also:
- Standardized item ejection logic.
2019-01-25 09:26:15 -05:00
Aaron Suen
5fe1fe0c29 Fix crash on log splitting. 2019-01-25 00:27:49 -05:00
Aaron Suen
b6a83b2791 Pummel API overhaul.
- Make check/resolve functions naturally paired instead of having
  to test the "check" value, so we can use the "check" value for
  more specific parameter stuff.
- Make existing pummel logic use a standard tool speed check.
2019-01-24 23:16:12 -05:00
Aaron Suen
8e47b687d0 TOOL CAPABILITIES / LEVELS OVERHAUL
Try to standardize the way we handle tools, materials, digtimes.
- Levels start at 1 and work upwards.
  - Level 1 is for "hand" or "primitive" tools.
  - Levels 2+ are wood, stone, metal, etc.
- Link dig times, tool levels, and durability together.
- Material groups now define standard "base dig times" which
  are the main thing that makes e.g. stone harder to dig than dirt.

The speed of digging almost everything will probably have changed,
in some cases not for the better; much testing will be needed.
2019-01-24 22:08:05 -05:00
Aaron Suen
464a0e1d89 Finite fire rework.
- There are now 6 degrees of embers.  Better fuel sources will
  make better embers.
- Embers differ only in lifespan; each class lasts twice as long
  as the previous.  Top-grade fuels may last 15 minutes or
  longer.
- Embers decay stochastically.
- Embers decay 16x as fast when smothered, but still go through
  the same lifecycle.

Also:
- Plain ash now reposes.

There are no infinite fuel sources, nor are any specifically
planned at this time.
2019-01-17 00:01:00 -05:00
Aaron Suen
62f0db49e0 Fire mod is now basically functional.
"Qualitative" fire now works, spreads, etc.

Rub 2 sticks/staves together to start a fire in nearby flammables.
2019-01-06 13:04:07 -05:00
Aaron Suen
e2dd2de5ba Leaf decay, woodcraft wears tools. 2019-01-05 23:11:38 -05:00
Aaron Suen
67a0761e96 Clean up toolheads, refac pummel extension. 2019-01-03 23:19:41 -05:00
Aaron Suen
c91151ab06 Start of a more flexible centralized crafting system. 2018-12-30 17:36:47 -05:00
Aaron Suen
7835a357da API refacs, and some planning. 2018-11-05 20:03:05 -05:00
Aaron Suen
674f169090 Various touch-up. 2018-11-05 00:21:02 -05:00
Aaron Suen
e6977e1a0a Added particle effects to pummelling.
Similar to crack texture on digging, this gives visual feedback
that what the user is doing is working, and just needs more time.
2018-11-04 23:30:06 -05:00
Aaron Suen
aa1da28637 Simplify knowledge, add pummel support, stack breaking particles. 2018-11-03 21:18:39 -04:00
Aaron Suen
ac1d23c988 Merge nc_inv into nc_player.
Considering an eventual "achievement" system.
2018-11-03 19:23:33 -04:00
Aaron Suen
90574771c6 Simplify trees, since logs currently cannot be moved.
Presumably this will change in the future, but it's also not
a given that we should have a falling or rotating version of the
tree (or that it should also split to planks).
2018-11-03 19:18:28 -04:00
Aaron Suen
7bd9c4e63a Use adze to split logs into planks. 2018-11-03 18:56:07 -04:00