自动售货机外壳

基本信息

属性 值
注册名 vendingmachine:casing
显示名 casing.0.name = Vending Machine Casing
类 VendingMachineCasing extends BlockCasingsAbstract
TileEntity 无
metadata 仅 0(aMaxMeta = 1,只注册 0 号贴图索引)
硬度 5.0(继承 Blocks.iron_block.getBlockHardness)
爆炸抗性 继承 Blocks.iron_block.getExplosionResistance
挖掘工具 wrench(扳手)
挖掘等级 2
脚步音效 soundTypeMetal
创造栏 GregTechAPI.TAG_GREGTECH_CASINGS
光照 0(不发光)

功能

本 mod 唯一一个真正的 Block 子类,是 自动售货机(../multiblock/vending-machine)多方块结构唯一的构成材料, 同时也是 ME 售货机上行接口 的贴图底板。

源码只有 24 行,绝大部分属性来自 GregTech 的 BlockCasingsAbstract 基类,本类仅覆写贴图:

public class VendingMachineCasing extends BlockCasingsAbstract {
    public VendingMachineCasing(String aName) {
        super(ItemCasings.class, aName, MaterialCasings.INSTANCE, 1);
    }
    @Override @SideOnly(Side.CLIENT)
    public IIcon getIcon(int side, int meta) {
        return Textures.VM_CASING.getIcon();
    }
}

⚠️ 易错点:构造函数第 4 个参数 1 是 aMaxMeta(最大 metadata 数),不是硬度。 硬度由基类硬编码为铁块硬度 5.0。

注册

外壳在 自动售货机 的物品形态被取出时顺带创建(VMItems.registerMultis()), 而 VendingMachineBlocks.registerBlocks() 只在检测到 gregtech_nh 存在时才被调用:

// VendingMachine.init()
if (isGt5uNhLoaded) {
    VendingMachineBlocks.registerBlocks();
    VMItems.registerMultis();
}

交互

触发 行为
右键 无自定义逻辑(BlockCasingsAbstract 未覆写 onBlockActivated)
破坏 damageDropped(metadata) = metadata,metadata 原样掉落

限制

  • canCreatureSpawn() 恒为 false,不会刷怪
  • canSilkHarvest() 为 false,不能精准采集
  • getBlockHardness / getExplosionResistance 被覆写为铁块数值,本 mod 无法单独调整
  • isNormalCube() 为 true,不是半砖

相关条目