燃料与合成
基本信息
| 属性 | 值 |
|---|---|
| 燃料实现 | modernmarkings.init.ModFuelHandler |
| 配方实现 | modernmarkings.init.ModRecipes |
| 燃料值 | 4 tick / 每个标线方块物品 |
| 配方数 | 2 |
| 注册时机 | 均在 FMLPreInitializationEvent |
燃料:4 tick
public int getBurnTime(ItemStack fuel) {
if (fuel == null) return 0;
if (Block.getBlockFromItem(fuel.getItem()) instanceof BlockBase) {
return 4;
}
return 0;
}
判定条件是「物品对应的方块是 BlockBase 的实例」,因此全部 170 个标线方块都能当燃料,每个值 4 tick。源码注释解释了推导:
Wood plank smelts for 300 ticks, 1 plank + 1 paper = 64 markings One marking smelts for floor(300/64)=4 ticks
即一个木板(300 tick)+ 一张纸产出 64 个标线,把 300 tick 均摊给 64 个即每个 4 tick。
[!WARNING] 这是单件的 4 tick。合成配方一次产出 64 个标线,整批烧完是
64 × 4 = 256tick,已经超过 1 个木板的 300 tick 的 85%。作为燃料它更像是拆除标线时的顺手处理(避免掉落物无法清除),而不是有意的燃料设计——因为标线本身的主要用途是贴花装饰,掉落成物品堆在地上无法清理才是真问题。
[!NOTE] 粉笔 不受影响:
getBlockFromItem对普通Item返回null,null instanceof BlockBase为false,因此粉笔的燃料值是 0。
仅有的 2 个配方
两个配方都只产出出口标线,且都产出 64 个:
地面出口标线
FLOOR_MARKING_EXIT × 64,纸条在上、木板在中:
X
Y
X=Items.paper(纸)Y=Blocks.planks(木板)
墙面出口标线
WALL_MARKING_EXIT × 64,木板在左、纸在右(第二行,与地面版不同):
XY
X=Items.paperY=Blocks.planks
[!NOTE] 两个配方刻意用了不同的行位置(地面版第 1 行放纸、墙面版第 2 行放纸),使两者在合成网格里不冲突——玩家无法一次做出地面版和墙面版,只能分开合成。
其余 168 个方块没有配方
除两个 exit 外,其余 168 个方块没有任何合成配方,只能通过 Chisel 雕刻台从 Floor blocks / Wall blocks 组循环切换得到。这是本 mod 的预期获取方式。
相关条目
- Chisel 雕刻组 - 主要的获取途径
- 地面标线 - 地面出口标线的朝向与放置
- 墙面标识 - 墙面出口标线的贴附规则