- Players start out at a brisk walk, accelerate to a run
if moving continuously forward.
- Clean up and consolidate various player movement
code, including footsteps, freefall, and zoom focus.
This freezes many things that normally happen automatically
in the world, including most ABMs and AISMs, and a few other
custom step logic items like the player "hot potato" logic.
This can be used for "creative mode" purposes to setup a complex
build without it running itself away from you, and for texture
pack authors, to have time to see things that are normally
transient or difficult to observe because of the effects they have
on nearby things or players.
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.
- Thrown objects inherit initial velocity.
- Player and objects have matched terminal
velocity and can free-fall in tandem.
- Thrown objects experience horizontal air
friction too.
Note that for extremely long falls, something
still needs to be done for items falling in
parallel with players, since as it is right now,
then fall at different speeds.
Even with player velocity being limited,
objects tend to fall at much slower speeds
initially than players, and collide with
unloaded areas and "settle" into node space,
requriing an ABM to release them again.
Instead, when a falling item collides with an
unloaded area, we need a way to preserve
its speed until the area is loaded, and then
continue falling.
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.
Direct PvP is not (yet) a meaningful thing in NodeCore,
so there's no real benefit to targeting a player with a
tool. However, having players be pointable CAN cause
issues with spectators blocking the selection path of
legit players in multiplayer. This allows players to dig
around such spectators, and other players.
Players are not really "of the world" so this makes a
certain kind of sense...
Consistent with removal of the arms and wield hud,
remove the hotbar HUD and dump all inventory items
on the ground at time of revocation, if necessary.
- 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.
Translations are currently by holistic strings, i.e.
no parameterization. This may create some busy
work for translators, but gives them more freedom
to account for differences between languages.
A translation template file is written out to the world
path on game start, so translators have a seed to
work from.
Use interception where possible to modify destintion for items
directly instead of relying on post-hoc inventory rearrangement.
This should resolve the glitches where items appear in the wrong
place in inventory for a flash before being moved.
Players can specify the exact slot they want picked up items to go
into. Items will try to fit into the currently selected slot first
before filling additional slots according to normal rules.
This is experimental and may lead to lost or duplicate items!!
Hopefully this should end up being a lot more intuitive and
immersive than the old sneak-dig hack that only worked for certain
objects. It's consistent across all functionality that causes
items to be added to player invetory (including /give).
Unfortunately it adds yet another globalstep function, and a
fairly complex one at that...
- 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.
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.
- Inventory screen is now no longer game-interactive, and serves
as purely an "about" screen.
- Move the HUD components out of inv mod and into hud mod.
- Separate player setup mod for static physical limitations like
step height, inv size, etc.