多方块方块
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | 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 等客户端事件。
已知缺陷
- 没有 ItemBlock,无法获得:全仓库没有任何
ItemBlock被注册 (grep ItemBlock只在RenderUtils.java:309、GuiAnimatedStat.java:337两处做instanceof类型判断,均为消费方而非注册)。 因此该方块不能被合成、不能在创造模式拿到、不能进背包。 这是库模组的正常设计,但文档必须写明「玩家拿不到」。 - 无本地化:仓库内没有
src/main/resources目录, 无任何.lang文件。setBlockName("qmunitylib:multipart")没有语言条目, 显示名就是裸键名。
相关条目
- 多方块 TileEntity - 本方块的 TileEntity
- 自带实现 - 实际的部件存储与更新逻辑
- FMP 兼容 - 有 FMP 时的替代实现