33 Commits

Author SHA1 Message Date
Aaron Suen
b59482358b Prevent absurd stack ent sizes. 2019-12-09 07:51:08 -05:00
Aaron Suen
cd95102b34 Fix item ents not being saved on unload. 2019-12-07 18:32:23 -05:00
Aaron Suen
6e1f3fee94 Standardize intra-line spacing in code. 2019-12-01 11:08:12 -05:00
Aaron Suen
52de19a28c Unified falling check, check after craft. 2019-09-09 07:05:01 -04:00
Aaron Suen
a74829cf5c Make this a public API. 2019-09-06 19:26:39 -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
a674184df0 Fix deprecated getpos -> get_pos. 2019-04-06 20:34:13 -04:00
Aaron Suen
cd5dbc8268 Make collision boxes just a LITTLE bigger for realism. 2019-03-31 21:32:11 -04:00
Aaron Suen
2fe4875e6b Shrink now annoyingly-big collision box.
This is interfering with being able to toss items down chutes
that are purposefully made too small for players to fit.
2019-03-31 21:30:10 -04:00
Aaron Suen
ef1eb45ea5 And, of course, with the debug code I forgot to remove... 2019-03-30 23:05:07 -04:00
Aaron Suen
359c625df8 Larger, bolder, easier to see item and stack ents.
This restores an old visual scale from the extremely early days
of NodeCore.  That style was removed to syncrhonize the scale of
stack nodes with item ents.  The syncrhonization can work the
other way, too, though.

This was triggered by wanting to make loose item ents more
visually distinct at a glance from settled stack nodes, by making
loose item ent rotation faster.  Since we were going to change the
properties either way, given that, then we might as well use the
better visual.

Since making stack nodes have a full-size collision hull, it was
distracting having the items inside be so mismatched in scale.
Also, the "pointing around stacks" thing becomes less important
in long-run gameplay with shelves in play, which do not allow
pointing around/through anyway.
2019-03-30 22:07:23 -04:00
Aaron Suen
45160f7270 Oops, fix regression in stack dig node sounds. 2019-03-24 18:42:32 -04:00
Aaron Suen
7c19e0aa07 Remove the old sneak-dig hack.
It was superseded effectively by the new inventory management
system.  To split stacks, count out the items to transfer onto the
ground using sneak-drop, select the destination slot and pick them
back up.
2019-03-24 18:34:17 -04:00
Aaron Suen
5de0cc54ec Add stony sounds, and sounds for stacks/shelves. 2019-03-14 00:31:09 -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
4d0f0734ba Beginning of a bold new health system.
- Eliminate health and breath stat bars.
- Players NO LONGER DIE FROM INJURY.
- Players no longer lose walking speed or mobility.
- Players lose inventory slots in proportion to injury; they're
  stuffed with an "injury" item, and items they displace are
  ejected.  Slots are displaced in random order.
- Healing rate is much faster, so players are usually mildly
  inconvenienced by injury, but can soon enough pick up their
  stuff and leave.
- Health and breath HUDs are gone.  Health is visible based on
  number of lost slots, and breath uses a vignette to narrow
  tunnel vision for O2 loss.

Overall, the old health system has been more of an immersion-
breaking annoyance than anything.  This allows health to get out
of the way of the primary gameplay.

UNFINISHED: Need a replacement for the old "suicide to get unstuck"
mechanic.
2019-03-10 15:47:22 -04:00
Aaron Suen
811186f835 Turn tools based on wear instead of count. 2019-03-09 21:24:17 -05:00
Aaron Suen
efa9007793 Change how visinv items handle rotation.
Rotation is now fixed, non-moving, and deterministic.  This fits
in better with the rest of the visuals in the game being
stationary when in steady-state, i.e. only things actually changing
are actually moving.

Instead of rotation speed indicating a full stack, rotation angle
now does; non-full stacks will always be off significantly from
orthogonal, while full ones will be perfectly square.
2019-03-08 19:11:05 -05:00
Aaron Suen
47fc0a958c Fix. 2019-03-05 20:57:51 -05:00
Aaron Suen
81aac617a4 Fix item duplication bug. 2019-03-05 20:55:22 -05:00
Aaron Suen
3b08a8ee9a Documentation updates, new player guide interface.
Also restructured the player_inv/player_setup thing AGAIN.
Now setup is all rules and inv is all interface.
2019-03-05 19:20:38 -05:00
Aaron Suen
3a299e712f Some minor API cleanup (celebrating 5.0 release). 2019-03-04 19:33:55 -05:00
Aaron Suen
a6b454b1a3 Fix items being deleted on sneak-dig.
Cannot change the wielded item because this is overwritten between
getting and handling node drops, so we can only sneak items into
the other slots.
2019-03-03 16:46:30 -05:00
Aaron Suen
3ef32c0206 Sneak-digging an item stack prefers keeping the stack separate.
This is allows you to split a stack by throwing individual items
with sneak-drop, letting them settle into a single stack, and
then sneak-digging the stack to keep it separate in your inventory.

This makes it possible to split stacks into arbitrary quantities
without having to use the inventory GUI.
2019-03-03 16:22:02 -05:00
Aaron Suen
d1e52fb303 Tote bug fixing.
The major bug was the lode heating/cooling logic wiping out the
tote's inventory when it was sitting in a stack node.

Also setup description text.
2019-02-28 23:47:36 -05:00
Aaron Suen
2091c6621e Nudge stack ents up to prevent z-fighting w/ bottom of shelves. 2019-02-23 21:30:35 -05:00
Aaron Suen
58cd080fdf Apply big stack refactor. 2019-02-23 10:21:27 -05:00
Aaron Suen
0004d4aaf1 New version numbering scheme, updated plans. 2019-01-28 23:13:21 -05:00
Aaron Suen
37f5c0a0de Laid the groundwork for metal-working.
- Defined nodes, slabs, and prills of lode.
- Heating lode ore releases hot lode prills.
- Lode things in stack can air-cool to anneal or water-quench to
  harden/temper.  Cooling of placed nodes/slabs is planned.
- Hot items cannot be carried; picking them up causes damage and
  causes player to drop them.
2019-01-27 22:34:53 -05:00
Aaron Suen
cc793cdbb5 Item stack rotation tweaks.
- Random initial rotation.

- When stackable items represent a complete full stack, rotate
  about 1/3 as fast as normal.  This subtle cue helps organizing
  storage by finding available space, but you still need to pick
  up the stack if you want an EXACT count.
2019-01-27 01:40:39 -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
7080270e56 Fully rename iron to lode.
Also refactored API to handle simple aliasing on rename
automatically, and allow registration intercept for non-node
item defs too.
2019-01-24 20:45:14 -05:00