It seems that when we access metadata too rapidly
it pulls data out of order or something, so that the
player damage time stuff is unstable, and healing can
start immediately, or more than 8 seconds later.
Caching this stuff manually seems to work around the
issue, and it seems that the metadata system is at
least EVENTUALLY consistent, so it's still good for
long-term use or across world unloads.
Treat all API mods as a "layer", and use the new
nc_api_all registration to indicate that a mod depends
on the NC API (which ALL NC mods assume they do).
This means that each non-API mod does not need to
worry about which API mods it really needs and which
it does not, nor will they need to be updated for any
internal API restructures.
This is a game, not a modpack, so all mods will be
loaded anyway, and we only care about order. That
means that we don't really need to worry about
having excess dependencies because any mod we
don't actually need will be needed by something that's
loaded anyway. If somebody wants to reuse a
component elsewhere, they're likely to need to do
some work to untangle it anyway, because of the
amount that NodeCore mechanics interact and
interdepend.
- Unbake the scaling tweak from models, apply it
using mesh scaling in MT instead.
- Standardize ratio definition in one place.
- Default all nodeboxes to winning z-fights.
Automatic z-fighting prevention was causing some
nodes to fail to connect to neighbors due to the tiny
gaps. Allow certain nodes to "win" the z-fight instead
so they also connect to neighbors properly.
When you have a thing in your hand that doesn't help
you dig a node, but you can dig that node by hand,
then apparently the after_use callback still seems to
trigger, causing the rake effect, and wear-out.
Any items that don't fit in the player's inventory will gather
to the center of the raked area, so they can combine and pile
together for easier pickup later.
If a node is specially tagges with the stack_as_node group, and
the stack size is exactly 1, place as a real node instead of a
stack node.
This reinstates logic from WAY back in the super-early pre-alpha
days, except only for nodes explicitly tagged this way.
This should be applied only to nodes that aren't transformed in
any non-desirable way when placed as nodes instead of stacks, and
can be dug the same ways as stacks (i.e. snappy = 1 or
crumbly = 1).
Currently applied to sticks, staves, leaves, ladders/frames,
and torches. Ladder/frame placement offers some interesting
possibilities in terms of throwing ladders to rappel down holes.
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.
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.
- 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
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.
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.