MixinS26PacketMapChunkBulk

基本信息

属性 值
Mixin 目标 net.minecraft.network.play.server.S26PacketMapChunkBulk
Phase EARLY
角色 批量区块包 EBS 字节尺寸常数 8192 → 18432

@ModifyConstant

@ModifyConstant(
    method = "readPacketData",
    constant = @Constant(intValue = Constants.VANILLA_BYTES_PER_EBS_MINUS_LIGHTING_BUT_INCLUDE_MSB),  // 8192
    require = 1)
private static int neid$readPacketConstantUpdate(int i) {
    return Constants.BYTES_PER_EBS_MINUS_LIGHTING_BUT_INCLUDE_MSB;  // 18432
}

为什么是 18432?

Constants.BYTES_PER_EBS_MINUS_LIGHTING_BUT_INCLUDE_MSB = 18432(公式见 Constants.java 注释):

NEID: 16 LSB + 0 MSB + 16 meta = 32 bits/block
加上 MSB padding 0.5 byte/block(vanilla byte[] 分配) → 32.5 bits/block
32.5 × 4096 = 18432 bytes

原版:8 LSB + 4 MSB + 4 meta = 16 bits/block × 4096 = 8192 bytes(注意原版常数 8192 对应 Constants.VANILLA_BYTES_PER_EBS_MINUS_LIGHTING_BUT_INCLUDE_MSB,不是 BYTES_PER_EBS 12288)。

相关条目