多方块方块

基本信息

属性 值
注册名 qmunitylib:multipart
注册常量 Names.Registry.Blocks.MULTIPART(Names.java:15)
类 uk.co.qmunity.lib.block.BlockMultipart
基类 net.minecraft.block.BlockContainer
材质 Material.ground(BlockMultipart.java:44)
显示名键 qmunitylib:multipart(BlockMultipart.java:46)
对应 ItemBlock 无
创造模式物品栏 不出现

功能

本 mod 唯一注册的方块,它本身不提供玩法,而是多方块系统的注册锚点: 下游模组把 IPart 实例塞进这个方块的 TileMultipart 里, 使一个格子里可以同时存在多个独立部件。

关键覆写

方法 行为 行号
isNormalCube() false —— 不是完整方块 BlockMultipart.java:58
createNewTileEntity 返回 new TileMultipart() BlockMultipart.java:52
registerBlockIcons 交由 MultipartSystem 的部件贴图接管 BlockMultipart.java:307

构造函数还会把自己注册到 MinecraftForge.EVENT_BUS(BlockMultipart.java:48), 用于监听 DrawBlockHighlightEvent 等客户端事件。

已知缺陷

  1. 没有 ItemBlock,无法获得:全仓库没有任何 ItemBlock 被注册 (grep ItemBlock 只在 RenderUtils.java:309、GuiAnimatedStat.java:337 两处做 instanceof 类型判断,均为消费方而非注册)。 因此该方块不能被合成、不能在创造模式拿到、不能进背包。 这是库模组的正常设计,但文档必须写明「玩家拿不到」。
  2. 无本地化:仓库内没有 src/main/resources 目录, 无任何 .lang 文件。setBlockName("qmunitylib:multipart") 没有语言条目, 显示名就是裸键名。

相关条目