QmunityLib

[!INFO] Git Commit: a16d4a6 (tag 0.3.1) | Updated: 2026-10-02

QmunityLib 是 GTNH 整合包中 Blue Power 的核心多方块(Multipart)库模组, 仓库 GTNewHorizons/QmunityLib,作者 Qmunity(BluePower 团队)。

它的作用是把「一个方块里塞进多个可独立存在、可独立渲染的小部件」这套机制 抽象成一套 API,让 Blue Power 等下游模组直接实现 IPart 接口即可获得 渲染、红石、碰撞、光照、WAILA 支持。

属性 实测值
modid qmunitylib(全小写,QLModInfo.java:5)
modName QmunityLib(QLModInfo.java:6)
主包 uk.co.qmunity.lib
Java 文件 133
注册方块 1(qmunitylib:multipart)
注册 TileEntity 1(qmunitylib:multipart)
注册物品 0
命令 1(/qlib)
语言文件 0(见「已知缺陷」)
mcmod.info 不存在
版本字段 GRADLETOKEN_VERSION(构建期占位符,QLModInfo.java:7)

[!IMPORTANT] 定位:库模组,不是独立玩法 mod 玩家视角几乎看不到任何内容——注册的 qmunitylib:multipart 方块 没有对应的 ItemBlock,进不了背包、也不在创造模式物品栏里。 它存在的唯一意义是给 TileMultipart 一个注册锚点,让下游模组通过 PartRegistry 把 IPart 挂到这个方块上。 不要把它当成「有方块有物品的普通模组」来记录。

[!WARNING] 本 mod 仓库内完全没有 src/main/resources 目录 没有 mcmod.info、没有任何 .lang、没有贴图。 后果:BlockMultipart 的 setBlockName("qmunitylib:multipart") 没有对应语言条目, 在游戏内该方块的显示名就是裸键名 qmunitylib:multipart。 这对库模组无害(玩家本来就拿不到),但「无本地化」是实测事实而非疏漏。

[!NOTE] 一处死常量:Names.Registry.Items.MULTIPART (Names.java:23)在全仓库没有任何引用—— ItemMultipart 是 abstract 类(ItemMultipart.java:14), 从未被实例化也从未注册。物品注册表实际为空。

依赖关系

本 mod 不依赖任何其它模组,@Mod 注解(QmunityLib.java:15)未声明 dependencies / depends。它提供的是 Forge 多方块兼容层:

  • 同时提供 FMP(ForgeMultipart) 与 standalone(自带) 两套实现, 由 MultipartSystem 在 preInit/init/postInit 三阶段分别初始化 (QmunityLib.java:25、:37、:43)
  • 客户端额外注册渲染处理器:RenderMultipart(方块)、RenderParticle(实体)

方块与实体

API

本 mod 的核心价值全部在 API 层,玩家不可见。

兼容层

网络

命令

快速导航

  • ForgeMultipart - 同类多方块框架库(独立仓库,本分类之外)
  • WAILAPlugins - 本库通过 IPartWAILAProvider 对接的 WAILA 附加组件