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_EBS12288)。
相关条目
- MixinS21PacketChunkData - 单区块包变体
- Constants - 两个 BYTES_PER_* 常量定义