MixinBlockFire

基本信息

属性 值
Mixin 目标 net.minecraft.block.BlockFire
Phase EARLY
角色 火方块 field_149849_a/field_149848_b 数组大小从 4096 升到 32767
字段 field_149849_a(encouragement)、field_149848_b(flammability)

注入字段

private int[] field_149849_a = new int[Constants.MAX_BLOCK_ID];  // encouragement 表
private int[] field_149848_b = new int[Constants.MAX_BLOCK_ID];  // flammability 表

vanilla 数组大小是 4096(按 12-bit block ID 索引)。NEID 提升到 MAX_BLOCK_ID = 32767,让 ID > 4095 的方块也能被火点燃或助燃。

@ModifyConstant 注入

@ModifyConstant(
    method = { "rebuildFireInfo()V", "getFlammability(Lnet/minecraft/block/Block;)I",
            "getEncouragement(Lnet/minecraft/block/Block;)I" },
    constant = @Constant(intValue = 4096),
    remap = false,
    require = 1)
private int neid$increaseBlockSize(int original) {
    return Constants.MAX_BLOCK_ID;
}

涉及方法

方法 改写的常量 含义
rebuildFireInfo 4096 注册时把方块 ID 当下标的循环上限
getFlammability 4096 查表时返回 0 的边界判断
getEncouragement 4096 同上

相关条目