自动售货机外壳
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | 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,不是半砖
相关条目
- 自动售货机 - 唯一使用该外壳的多方块结构
- ME 售货机上行接口 - 可替换结构中 0~1 个外壳位置