30 Commits

Author SHA1 Message Date
Aaron Suen
ce58f8294c Refactor shelf API/assets into its own module. 2019-12-08 16:41:59 -05:00
Aaron Suen
a53030cdcf Use a mesh instead of nodebox for shelves.
In principle this should be equivalent to 2 cuboids
instead of 6.  In practice, FPS improvements are
hard to measure.
2019-12-08 16:13:44 -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
a695ac4071 Fix runaway shelf-item fires. 2019-12-01 16:54:15 -05:00
Aaron Suen
6e1f3fee94 Standardize intra-line spacing in code. 2019-12-01 11:08:12 -05:00
Aaron Suen
54cc3445d3 Further shelf placement fixes. 2019-09-21 12:12:52 -04:00
Aaron Suen
2a3e0cc3ca Fix vertical shelf building.
Placing a shelf against the side of another shelf was possible
with a simple right-click, but placing one against the top or
bottom of another shelf didn't work.  This fixes that.
2019-09-21 09:50:26 -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
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
85f87d1c17 Simplify some selectionboxes significantly. 2019-03-30 21:23:02 -04:00
Aaron Suen
a9c89eac4c Fix collision boxes for shelf/stack to be full cubes. 2019-03-22 18:41:33 -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
3be4f221ff Completely different approach to the item name tip thing.
Can't get HUDs to align right on high-DPI/android at all.  Give up
on the combination breath/wield bar, switch back to a much earlier
version of the code for that.

For wield names, add a new tooltip to the center of the screen, and
show it transiently so that it doesn't disrupt all gameplay.

As a bonus, this is also a logical place to put a "what am I
touching" display, so hook this up for punching.  Now you can
tell what you're touching even when you can't dig it.  This is
like a WAILA mod, but doesn't require tracing.
2019-03-06 13:50:54 -05:00
Aaron Suen
ab2132a035 Fix shelf not accepting ANY items. 2019-03-02 22:53:28 -05:00
Aaron Suen
5a83a15b48 Definitively block placing shelves/totes inside shelves. 2019-03-02 21:41:25 -05:00
Aaron Suen
29dc12fcfb Appearance and recipe for tote node. 2019-02-28 23:16:07 -05:00
Aaron Suen
67041ac54d Craft shelves in-place.
Since the recipe output count matches frame count, this is more
consistent with design intent.

Shelves can also be crafted in place this way for use in a tote.
2019-02-28 23:15:26 -05:00
Aaron Suen
579679da2c Initial revision of a portable "tote" node.
When picked up, it carries up to 8 surrounding shelves with it,
allowing significant inventory compression into one slot.  Needs
to be placed somewhere everything fits to access the inventory
again.
2019-02-28 00:02:00 -05:00
Aaron Suen
393210db69 Start proper spectator support.
Make sure that non-built-in content respects the interact priv
and prevents spectator players from doing nasty stuff.
2019-02-24 21:54:33 -05:00
Aaron Suen
0d44601374 Fix shelf appearance under mipmapping. 2019-02-23 20:35:22 -05:00
Aaron Suen
a364e28cd2 Make shelf selection and collision boxes consistent.
This was causing weird issues with items falling "into" a shelf
and ending up stored there, leading to a few "where did my items
go" moments.
2019-02-23 20:08:40 -05:00
Aaron Suen
e2cf72282c Disallow shelf access through top/bottom. 2019-02-23 20:06:14 -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
e303f100cf Shelves can no longer be nested.
- As a general rule, we're disallowing nesting of containers for
  now.  Only bare stack nodes may contain containers.
- Overhaul docs.  Ideas are getting out of hand, shoved a lot of
  stuff into the icebox for now.
2019-02-23 10:33:17 -05:00
Aaron Suen
58cd080fdf Apply big stack refactor. 2019-02-23 10:21:27 -05:00
Aaron Suen
94bd5a9cc8 Fix wield check again, make shelves flammable. 2019-02-23 10:00:31 -05:00
Aaron Suen
63d587cf8b Missed files in prev commit. 2019-02-21 14:59:41 -05:00
Aaron Suen
0638e3f11f Crafting cleanup.
- Alternate shelf recipe to make it a little more intuitive.
- Label all existing recipes.
2019-02-21 14:37:22 -05:00
Aaron Suen
8559316b89 Shelf fixes.
- Remove debugging code.
- We don't really need to be able to reach through shelves, but
  we don't want to miss when trying to access them, so make
  shelf hitboxes solid for now.
2019-02-20 00:48:55 -05:00
Aaron Suen
6d2b15a81b Item storage shelving. 2019-02-20 00:40:55 -05:00