ModBlocks

基本信息

属性 值
类名 remoteio.common.lib.ModBlocks
字段 6 个 Block 静态字段,实际注册 5 个
注册域 RIO(modid)

注册的 5 个方块

字段 注册名 构造 TileEntity ItemBlock
remoteInterface remote_interface BlockRemoteInterface TileRemoteInterface 无
remoteInventory remote_inventory BlockRemoteInventory TileRemoteInventory ItemBlockRemoteInventory
machine machine BlockMachine meta 0 = TileMachineReservoir,meta 1 = TileMachineHeater ItemBlockMulti({reservoir, heater})
skylight skylight BlockSkylight 无 无
intelligentWorkbench intelligentWorkbench BlockIntelligentWorkbench TileIntelligentWorkbench 无

未注册的 transceiver

ModBlocks.java:57-61 有一段被 /* */ 注释掉的代码:

/* transceiver = new BlockTransceiver().setBlockName("transceiver"); GameRegistry.registerBlock(transceiver,
 * ItemBlockTransceiver.class, "transceiver"); GameRegistry.registerTileEntity(TileTransceiver.class,
 * "remoteio:transceiver");
 */

[!WARNING] transceiver 字段声明了但永远为 null。被注释的 BlockTransceiver、 ItemBlockTransceiver、TileTransceiver 三个类在仓库中根本不存在—— find src -iname '*Transceiver*' 只命中 assets/remoteio/models/transceiver.obj 与 .mtl 两个模型文件。 即模型资源残留,代码已删除。

实现要点

  • remoteInterface 的渲染 ID 在 RemoteIO 的 preInit 里 用 RenderingRegistry.getNextAvailableRenderId() 单独分配。
  • skylight 用 GameRegistry.registerBlock(skylight, "skylight") 的两参重载, 即没有 ItemBlock,在物品栏中不可得。
  • machine 用四参 registerBlock + Object[]{"reservoir","heater"} 提供两个子名。

相关条目