Don't use the stored pos, which might be at the time of
player login, and thus arbitrarily far from where the player
is now, such that it might never actually be loaded.
An engine bug can cause bandolier attachments to become
detached from the perspective of a player if they and another
player wander farther than the server's player transfer
distance from one another and then re-meet later.
Sometimes the attached entities appear to be floating at the
place where the player was reloaded from the other player's
perspective instead of attached.
Work around this for now by just periodically regenerating
the bandolier attachments for all players, so that at least if
it happens, it will self-correct in time and not be stuck
indefinitely broken.
This was avoided in the past due to an old engine bug that
caused attachments that were attached while a player was
in 3rd person mode not to be visible to that player until they
toggled view mode again ... but this seems to have been
fixed at least in recent versions.
As of now, other-player bandoliers in MP are probably more
important than own-bandoliers in 3rd person view for most
serious use-cases anyway.
- It was never really a major gameplay feature,
and more than anything probably more annoying
when mining close to someone and accidentally
hitting their items.
- Broken with looktips due to an engine bug, not
worth trying to fix or work around as is.
- May be readded later if a better way to do it is
discovered.
- This may be part of a pivot toward a simpler
plan for YCTIWY integration...
- Already served its purpose in getting rid of
writers' block :-)
Complement to YCTIWY (which may be merged
sooner or later). Bandolier items are now
pointable and can be "dug" to take them.
Pickpocketing requires reasonable aim (players
can protect themselves by moving), produces
sound, and logs the action. Players also cannot
pickpocket from far away or behind.
TODO: Visual hint that it's happening for players
without sound.
The MT client crashes sometimes when trying to do a
lighting calc on upright_sprite entity visuals.
This may or may not be fixed in a future release, since it's
a heisenbug and a rare use-case, so for now try to
eliminate use of the rare and poorly supported upright_sprite
visual type by making empty inventory slots craftitem extrude
meshes.
As a limitation, for now, virtual_items such as injury or
lux burns will be invisible instead of showing the icon, as
we can't swap out the texture like we could for upright_sprite.
This should more reliably minimize network traffic
incurred by excess property setting.
We could probably standardize a few more things,
like set attach, anim, yaw, pos...
Alpha blending is apparently broken for
upright_sprite as of the latest v5.2-dev.
Use a simpler, more solid texture for
empty bandolier slots that looks a bit
more reminiscent of a stitched-on pocket
but still abstract.
Just hide selected slot altogether instead
of showing an alternate "selected slot"
texture.
If players are invisible, NodeCore will not add any visible or
audible effects for them, allowing such players to be completely
non-interactive with gameplay.
This allows things like spectator or stealth-admin mods to
function properly.
Supposedly entity attachment is fixed in v5.1+.
Replace the "rotating toolbelt" with a front bandolier placement.
- Should be sufficiently realistic.
- Explains quick access to items (backpack wouldn't).
- Keeps "social surface" of player on front.
- Collapse all nodecore "core" mods in the /mods listing, so it's
easier to find the actual add-on mods.
- Parameterize in-game branding to make renaming derivatives just
a little easier.
We actually haven't been testing in 0.4 at all for quite a while
now. Since this is a standalone base game without complex
interdependency relationships, there isn't really any need to
maintain compat with old versions of the engine. Players can
upgrade to play; keeping a separate copy just to play on old 0.4
servers is even still an option.
There is some internal cruft that has been building up to support
0.4, and this allows us to purge most of it. The larger benefit
may come when we're able to remove line_of_sight in favor of the
more efficient raycast (still yet to be done).
- 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
This was effectively never really working in practice on MP, and
only ended up more of an eyesore than anything. Since it was
really only ever cosmetic, it's probably okay to just leave
this one out.
Clean up some old issues that are probably not worth worrying
about anymore.
- Simplify queue handling, FIFO retry for ents not created due
to world not loaded.
- Make ents responsible for own attachment, to reduce the chance
of non-attachment due to out-of-order replication.
- Unify config object passed to ents, allowing ents to self-manage
more.