- 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
Avoid above-grade placement, but randomly allow it, allowing
items that are "stuck" in a pile of leaves to gradually
random-walk their way out into a stable position.
With item_eject trying to place stack nodes now instead of ents,
converting stack nodes to ents was causing an infinite loop.
Impart a tiny velocity on ents to make them ineligible for
automatic immediate stack placement.
Hacky. Should probably have a separate API to indicate ejection
as an ent or as ent/stack or something.
The old code wasn't working in v5.0+, due to the separation of
item entity physical_state into separate moving/sliding states.
Instead, just check to see if its position has remained unchanged
for a nominal amount of time before settling.
Using a separate ABM for this. We may want the burn-up effect with
containers later, but it may have to be handled differently in
those cases as the container itself may have flammability
characteristics to take into account.
This SHOULD also resolve the problem with transient states of the
stack node (i.e. wherein it was temporarily empty) burning up,
which caused some things to burn up when they shouldn't.
Particularly egregious was the destruction of hot lode prills when
they dropped into forgefire.
Appears to work with existing functionality.
Next step will be to rework pummel to use a "recipe" system and
reuse most of the useful parts of the crafting system.
Nobody was using the snooper; not worth the bother to host it.
Instead, consolidate player statistics tracking for the achievement
system. We can still use it for statistics collection, but users
would probably have to post world dumps for that.
- Eggcorn cleanup. They look a little better falling out of the
tree, and we don't have so many now.
- Crushing damage fixes. Crushing is nuanced now, and most things
don't smush you, and many do reduced damage. A few may do more.
- Item stack convenience. Items landing on a stack or right-
clicked onto one attempt to merge into it.
- Ladders now fall (they don't connect to sides). Use the new
full-scale frames for ones that don't.
- Refactor player knowledge into player mod, to declutter API.
- Move player knowledge into mod storage so players don't need to
be connected to access. Old knowledge will be reset, but I
doubt there was very much of it to lose.
- Start gathering some basic stats.
- Main glaring omission is player moving and idle time.
- 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.
Try to place items into existing stacks when searching for a
settling location.
Try to launch items from reasonable corners of a source node in
item_eject so they don't self-collide and end up in one pile.
- 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.
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.
- 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.
There are 4 different states for things in the world:
- Regular node in world
- Item stack on ground
- Item entity (falling)
- Falling node entity
The entity states are not interactable at all, and regular node
doesn't rotate. We can help differentiate node-in-air vs
node-stack-on-ground with a shadow visual.
Sometimes a node will get stuck as an entity inside another node's
negative space (e.g. a nodebox) and having a way to tell that it's
not a real one should maybe help.
Right-clicking with an item now by default places one as a stack
node. When placing this way, crafting detection applies.
Had to copy in a bit of code from builtin.