跳到正文
烈焰甘蔗Wiki

Machine Block(机器方块)

基本信息

属性 值
注册名 6 个,见下表(不存在 binniecore:machine)
TileEntity TileEntityMachine(由各 MachinePackage.createTileEntity() 产出)
硬度 1.5
爆炸抗性 源码未调用 setResistance
亮度 0

功能

BlockMachine 是 Binnie 全部机器方块的共用实现类(binnie/core/machines/BlockMachine.java:32),本身不注册。真正注册的是 MachineGroup 的构造过程:MachineGroup 每被 new 一次,就 new BlockMachine(this, blockName) 并调 GameRegistry.registerBlock(block, ItemMachine.class, blockName)(binnie/core/machines/MachineGroup.java:46-47)。

BlockMachine 构造函数只设了 setHardness(1.5f)(BlockMachine.java:34-36),Material.iron,isOpaqueCube() 返回 false,渲染类型取 Binnie.Machine.getMachineRenderID()(BlockMachine.java:58-60),由 ManagerMachine.postInit() 向代理注册(ManagerMachine.java:82)。

实际注册的 6 个机器方块

注册名 创建位置 所属 mod 机器类型枚举
BinnieCore:storage core/machines/storage/ModuleStorage.java:18-21 BinnieCore Compartment.values()
Genetics:machine genetics/machine/ModuleMachine.java:32 Genetics GeneticMachine.values()
Genetics:labMachine genetics/machine/ModuleMachine.java:35-38 Genetics LaboratoryMachine.values()
Genetics:advMachine genetics/machine/ModuleMachine.java:42-45 Genetics AdvGeneticMachine.values()
ExtraTrees:machine extratrees/machines/ModuleMachine.java:19-23 ExtraTrees ExtraTreeMachine.values()
ExtraBees:alveary extrabees/apiary/ModuleApiary.java:29 ExtraBees AlvearyMachine.values()

⚠️ 已订正:原条目写注册名 binniecore:machine。该注册名不存在——MachineGroup 的注册用调用方 mod 作为域(MachineGroup.java:47 传的 blockName 与激活的 mod 容器),实际产生上述 6 个不同域的方块,其中 BinnieCore 自己只注册了 storage。

TileEntity

TileEntityMachine 持有 Machine 对象,Machine 封装业务逻辑。BlockMachine.createTileEntity() 按 block metadata 查 group.getPackage(meta),取其 createTileEntity()(BlockMachine.java:64-71);查不到对应包时返回 null。

数值

无能量/流体数值。数值属性由各 MachinePackage 及其组件决定。

交互

触发 行为
右键 BlockMachine.java:102 调 ((TileEntityMachine) entity).getMachine().onRightClick(world, player, x, y, z) 打开机器 GUI
左键 无特殊行为
破坏 掉落按 MachinePackage.getDisplayName() 命名的物品堆叠

所属多方块结构

ExtraBees:alveary 参与 Alveary。其余 5 个无。

相关条目

浏览全部模组