Repository navigation
Pier 26.40.0
Pre-release
Pre-release
Built for BDS 1.26.40 and LeviLamina 26.40.0. A release is built against the one BDS its
number names, so 26.32.2 stays the build for BDS 1.26.32 and does not run on 1.26.40.
The engine changes are small and none of them reaches the ABI: PIER_ABI_VERSION stays
at 2 and a mod built against 26.32.2 keeps working without a rebuild.
Changed
- Custom dimension registration carries a pack id.
DimensionManager::_registerCustomDimensionWithDimensionDefinitionGrouptakes a third
argument in 26.40, the resource pack a definition came from, and
DimensionDefinitionGroup::DimensionDefinitiongained the matchingmPackId. A Pier
dimension comes from no pack and registers with a zero UUID. - The scoreboard packet became a payload packet.
SetScorePacketderives from
ll::PayloadPacket<SetScorePacketPayload>, itsmTypeis gone, and a row is one
alternative ofstd::variant<RemoveScore, ChangePlayerScore, ChangeEntityScore, ChangeFakePlayerScore>instead of aScorePacketInfowith an identity type field. The
sidebar buildsChangeFakePlayerScorerows, which is what the identity field said. Player::startSleepInBedtakessetsRespawnandsleepOffset, and the sleep hook
passes both through unchanged.DedicatedServer::runDedicatedServerLoopreturns::ServerExitCoderather than a
nested one and takes anEditorAllowList; the client-side-generation hook follows.DimensionDataPacket,LevelChunkPacketandSubChunkPacketare payload packets,
so their fields are inherited and$writehas two overloads. The chunk trace names the
one-argument overload explicitly.LevelChunkPacketno longer carries
mClientNeedsToRequestSubchunks: a setmClientRequestSubChunkLimitis the request,
and the trace reports it that way.NetworkChunkPublisher::moveRegionis gone, and every other entry point of that
class carrying a region sits behindLL_PLAT_C, so none of them is declared on a
server build. The send-region trace readsmLastChunkUpdatePositionand
mLastChunkUpdateRadiusfrom inside the queued-chunk hook instead, and reports the
region when it changes rather than on every call.MobEffectInstancehas no constructor of its own. Adding an effect builds the
instance empty and assigns the id, duration, amplifier and visibility, which is what
the removed two-argument constructor did.
Removed
PIER_BPROP_IS_DOORandPIER_BPROP_IS_STAIRare unsupported.
BlockType::isDoorBlockandisStairBlockare gone in 26.40 and nothing replaces
them; a block tag would be a guess at the name the engine files carry.PIER_APROP_IS_IN_LOVEis unsupported.Actor::isInLoveis gone in 26.40 and
nothing replaces it. ThemInLovePartnerfield survives, and reading it would be a
guess at what the accessor tested, so the property is reported as unsupported rather
than answered with a value that may be wrong.