Concrete Powder

基本信息

属性 值
注册名 VillageNames:concretePowder(单注册名 + 16 metadata)
类 astrotibs.villagenames.block.color.BlockConcretePowder
物品形式 ItemBlockConcretePowder(block/ModBlocksVN.java:82)
注册条件 GeneralConfig.addConcrete == true
材质 Material.sand(block/color/BlockConcretePowder.java:47)
硬度 0.5(block/color/BlockConcretePowder.java:52)
挖掘等级 铲 / level 0(block/color/BlockConcretePowder.java:53)
脚步声 Block.soundTypeSand(block/color/BlockConcretePowder.java:54)
创造标签 CreativeTabs.tabBlock
爆炸抗性 无法核实:全类未调用 setResistance,沿用 Block 默认值

功能

Concrete Powder(混凝土粉末)是 1.12 彩色方块组的移植内容,单注册名 + 16 metadata(颜色序同 Concrete,block/color/BlockConcretePowder.java:24-40)。

它是本 mod 中唯一能产出 Concrete 的途径(init/Recipes.java 中无 blockConcrete 配方)。

合成配方

无序(shapeless) 物品字典配方,共 16 条,每条产出 8 个(init/Recipes.java:61-64):

1 × <对应颜色的 dye>
4 × Blocks.sand
4 × Blocks.gravel

→ 8 × blockConcretePowder(对应颜色 meta)

即8 沙 + 4 砂砾 + 1 染料 = 8 混凝土粉末,折合每单位粉末 1 沙 + 0.5 砂砾。染料名称来自 Recipes.java:15-31 的 oreDyeNames 数组(dyeWhite … dyeBlack,标准 16 色序)。

受 GeneralConfig.addConcrete 控制(init/Recipes.java:50)。

遇水硬化

当任一相邻面为水时,粉末原位替换为同 metadata 的 Concrete(block/color/BlockConcretePowder.java:169-171):

int meta = worldIn.getBlockMetadata(x, y, z);
BlockConcrete concreteOut = ModBlocksVN.blockConcrete;
worldIn.setBlock(x, y, z, concreteOut, meta, 3);

硬度随即可从 0.5 跃升到 1.8。

水检测范围

遍历 6 个方向,仅当某方向的方块 getMaterial() == Material.water 时才触发。但底面(case 0)的判断被注释掉了(block/color/BlockConcretePowder.java:152):

//case 0: yo--; break;
case 1: yo++; break;

因此实际只检查上、北、南、西、东 5 个面,放在混凝土粉末正下方的水不会触发硬化(侧面与上方的水则可以)。

相关条目