模组兼容
GuideNH 通过可插拔 provider 与宿主 mod 集成,宿主清单在
com/hfstudio/guidenh/integration/Mods.java 的枚举里,共 22 个。
集成代码在 integration/ 包(150 文件),由两个引导类拉起:
GuideNhIntegrationBootstrap(通用,preInitCommon())与
GuideNhClientIntegrationBootstrap(客户端)。
⚠️ integration/ 下有 21 个子包,最大的三个是 api(29)、
ae2(28)、structurelib(23)——宿主数是 22,但集成代码量
不与宿主数成正比:NEI 一个宿主就占 nei(14)+ neicustomdiagram(1)包。
宿主 modid 清单(22)
modid 取自 Mods 枚举的构造参数,逐字照抄,含大小写与竖线:
| 枚举名 | modid | 说明 |
|---|---|---|
NotEnoughItems |
NotEnoughItems |
NEI,本 wiki 已收录 |
NeiCustomDiagram |
neicustomdiagram |
小写全 |
BetterQuesting |
betterquesting |
本 wiki 已收录 |
StructureLib |
structurelib |
结构导出依赖 |
AE2 |
appliedenergistics2 |
Applied Energistics 2 |
GregTech |
gregtech |
本 wiki 已收录 |
BartWorks |
bartworks |
GT 附属 |
KubaTech |
kubatech |
GT 附属 |
CarpentersBlocks |
CarpentersBlocks |
首字母大写 |
ForgeMultipart |
ForgeMultipart |
Forge 自身的多方块 |
Railcraft |
Railcraft |
本 wiki 已收录 |
BuildCraftTransport |
BuildCraft|Transport |
带竖线 |
LogisticsPipes |
LogisticsPipes |
本 wiki 已收录 |
WirelessRedstoneCore |
WR-CBE|Core |
带竖线 + 连字符 |
DistantHorizons |
distanthorizons |
|
EtFuturum |
etfuturum |
|
SimpleSkinBackport |
simpleskinbackport |
|
ChromaticTooltips |
chromatictooltips |
|
Translocators |
Translocator |
枚举名复数、modid 单数 |
TinkersConstruct |
TConstruct |
枚举名与 modid 完全不同 |
BlockRenderer6343 |
blockrenderer6343 |
|
Angelica |
angelica |
⚠️ 三个 modid 陷阱:
| 陷阱 | 枚举名 | 实际 modid |
|---|---|---|
| 枚举名 ≠ modid | TinkersConstruct |
TConstruct |
| 单复数不一致 | Translocators |
Translocator |
| 带竖线 | BuildCraftTransport |
BuildCraft|Transport |
Mods 枚举还提供 resourceDomain 字段,由
modid.toLowerCase(Locale.ENGLISH) 推导——所以 CarpentersBlocks 的资源域是
carpentersblocks,贴图查找要用小写。
Provider 接口
注册中心 integration/api/GuideNhIntegrationRegistry.java 提供 28 个 register* 方法
(:82-769),覆盖 24 类可插拔 provider。
与方块显示直接相关的 5 个(也是 grep 'registerBlock' 的主要来源):
| 方法 | 用途 | 已注册的实现 |
|---|---|---|
registerBlockDisplayProvider(BlockDisplayProvider) |
<Block> / <BlockImage> 的方块显示 |
LogisticsPipesBlockDisplayProvider、BuildCraftBlockDisplayProvider、CarpentersBlocksBlockDisplayProvider |
registerBlockDisplayNameProvider(BlockDisplayNameProvider) |
方块显示名 | CarpentersBlocksBlockDisplayNameProvider |
registerBlockStatsProvider(BlockStatsProvider) |
<BlockStats> |
Ae2BlockStatsProvider、ForgeMultipartBlockStatsProvider、CarpentersBlocksBlockStatsProvider |
registerBlockExportIdProvider(BlockExportIdProvider) |
导出用方块 ID | ForgeMultipartBlockExportIdProvider |
registerItemStackNormalizationProvider(ItemStackNormalizationProvider) |
物品堆栈归一化 | GregTechHelpers::applyOreDictUnification |
其余方法覆盖预览(registerPreviewTileEntityProvider /
registerPreviewPrepareContributor 等)、配方(registerRawRecipeHandlerProvider /
registerRecipeEntryProvider / registerRecipeHandlerRenderProvider 等 8 个)、
语法(registerSyntaxContributor / registerTagCompilerProvider)、
假世界(registerFakeWorldIntegration)与编辑器(registerEditorAction)等。
有 provider 的宿主(14)
22 个宿主里有 14 个注册了 provider,8 个只是被探测:
| 宿主 | 提供的 provider |
|---|---|
| NEI | 8 个配方 provider(raw / entry / tooltip / animation / metadata / slot / drawable / render) |
| BetterQuesting | GuideBuilderIntegrationHook + TagCompilerProvider + QuestHoverProvider |
| GregTech | ItemStackNormalizationProvider(oreDict 统一)、FakeWorldIntegration、PreviewPrepareContributor、4 个注册/放置/预览/状态同步 |
| ForgeMultipart | BlockStatsProvider + BlockExportIdProvider + PreviewTileEntityProvider + PreviewTileEntityFinalizer + PreviewBlockRenderProvider |
| AE2 | BlockStatsProvider + FakeWorldIntegration + PreviewPrepareContributor |
| BartWorks | FakeWorldIntegration |
| Distant Horizons | FakeWorldIntegration |
| LogisticsPipes | BlockDisplayProvider + PreviewPrepareContributor |
| BuildCraft | BlockDisplayProvider + PreviewPrepareContributor |
| CarpentersBlocks | BlockDisplayProvider + BlockDisplayNameProvider + BlockStatsProvider |
| Railcraft | PreviewPrepareContributor |
| Tinkers’ Construct | PreviewPrepareContributor |
| SimpleSkinBackport | 2 个玩家预览 provider(slim arm / preview player model) |
| EtFuturum | 2 个玩家预览 provider(slim arm / elytra) |
其余 8 个宿主(NeiCustomDiagram、StructureLib、KubaTech、
WirelessRedstoneCore、ChromaticTooltips、Translocators、
BlockRenderer6343、Angelica)在 Mods 枚举里被探测并写入
registerModDescriptor,但没有向 GuideNhIntegrationRegistry 注册任何 provider——
这一结论来自对两个 bootstrap 全部 register* 调用点的穷举检索。
ForgeMultipart 尤其值得注意:ForgeMultipart 的方块在 ItemStack 里
可能是 multipart 组合而非单一 Block,所以需要
BlockExportIdProvider 与 BlockStatsProvider 两条专门处理。
跨分类链接
以下宿主在 relation.md 中已登记,可做跨分类引用:
- betterquesting —
BetterQuesting,只读显示兼容(3 个 mixin,无任务定义)。⚠️ 该分类尚未撰写,属前向引用 - structurelib —
StructureLib,结构导出的目标格式宿主 mod - gregtech —
GregTech - logisticspipes —
LogisticsPipes - railcraft —
Railcraft
⚠️ NotEnoughItems(NEI)不在 relation.md 收录范围,
因此不建分类、也不做链接,仅在此点名。
(注意别与已收录的 nei-recipe-panels 混淆,那是 modid neirecipepanels 的另一个 mod。)
其余 8 个宿主(AE2、BartWorks、KubaTech、CarpentersBlocks、BuildCraft、 Tinkers’ Construct、Angelica、Distant Horizons 等)不在收录范围,故只在本页点名。
相关条目
- MDX 标签 - provider 服务的那些标签
- Coremod 与 Mixin - 兼容层大量依赖 mixin
- 指南框架 - 集成在管线中的位置