This seems to reduce steady-state bandwidth
usage when standing still significantly, at least
according to rudimentary tests.
Try to reuse the entity that is already physically
closest to the target position, so to maximize
the chance that nearby player(s) already have
the entity transferred and only need the new
pos data, in case MT is intelligent enough to send
only the needed changes.
Instead of statically-positioned wind sounds, many
of which are often outside of hearing range,
attach sounds to moving entities which often tend
to move across the player's position.
- Lenses no longer produce light from sun at all;
artificial light is always needed.
- Grass and trees survive, don't do dual-time check.
- Breeze sounds work in twilight.
- Sponge drying only requires twilight, now also can
happen under artificial light.
- Peat to grass happens under twilight.
- No day/night cycle, no sun/moon.
- Get rid of clouds too.
- Skybox is now 100% texture-packable.
- Natural light diminishes with depth.
Night-time no longer disrupts gameplay topside, but
skylights are no longer useful to an infinite depth and
artificial light is necessary for all deep mining.
Ensure players can't cause a blast of loud
wind or drip sounds to happen within the near
clipping boundaries of other nearby players
just because they're in the same general
area and played their sounds first in the tick.
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.
This created a ton of dependency inversions, which
necessitated moving a number of API functions up into
higher layers, and restructuring dependency lists for
a number of mods.
BOLO: non-deterministic load errors due to missed
dependencies.
- 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.
Make tree sounds managed by the mod that defines the nodes in
question using register_ambient, consistent with other things like
fluids.
nc_envsounds is now responsible for just the air moving and
cave dripping sounds made by air itself.
Common windiness logic moved into api layer.