GuideNH

GTNH 的游戏内指南框架。把资源包里的 Markdown 文档渲染成可交互的「游戏内手册」, 是 GuideME 的移植与扩展。

它不注册任何方块、物品或实体——整个 mod 是一套纯渲染 / 文档引擎, 没有可供「合成配方」或「掉落列表」描述的游戏内容。

项目 值
modid guidenh(gradle.properties 的 modId)
显示名 GuideNH
源仓库 /Users/evlos/a/mirror/GuideNH/
源 commit b5369fa(2026-09-27 01:20:42 +0800)
Minecraft 1.7.10(minecraftVersion,@Mod 里另有 acceptedMinecraftVersions = "[1.7.10]")
Forge 10.13.4.1614(forgeVersion)
Java 包根 com.hfstudio.guidenh(modGroup)
必需依赖 required-after:gtnhlib(@Mod(dependencies) 唯一一条)
作者 HFstudio(@Mod 源码常量 AUTHOR)
加载方式 同时是 coremod + mixin mod(gradle.properties:128 coreModClass = coremod.GuideNHCoreMod、:107 usesMixins = true)
主源文件数 1402 个 .java(src/main/java,无 kotlin / scala / groovy)

语言构成

find src/main/java -name '*.java' | wc -l 实测 1402; find src -name '*.java' | wc -l 为 1414,差额 12 是 src/test/java 下的 测试文件,不属于主源。

主源分属 3 个包根,不是 1 个:

包根 文件数
com/hfstudio/guidenh/ 1353
com/hfstudio/structurelibexport/ 33
guideme/flatbuffers/scene/ 16

⚠️ com/hfstudio/structurelibexport 与 com/hfstudio.guidenh 平级, 不在 guidenh 包下;guideme 更是第三套根包(flatbuffers 生成的场景结构代码)。 本 mod 的 modGroup 只覆盖 com.hfstudio.guidenh,另外两个根是构建期分包的产物。

全仓库另有 .json 27 个、.properties 3 个(均在 gradle 与 web-editor/), src/main/resources 下 .cfg 1 个(guidenh_at.cfg,access transformer)。 没有 kotlin、scala 或 groovy 源文件,@Mod 写在 com/hfstudio/guidenh/GuideNH.java:20。

猜测裁定

本条目收到的猜测是「GuideNH 是『指引 / 任务 mod』」。

裁定:不准确。 GuideNH 与任务 / 指引系统无关:

$ grep -rn "GameRegistry.registerBlock|GameRegistry.registerItem" src/main/java
(无输出)

$ grep -rn "registerQuest|Quest|quest" --include=*.java src/main/java/com/hfstudio/guidenh
(仅命中 BetterQuesting 兼容层的 3 个 mixin,无任何任务定义)

grep -rn 'registerBlock\|registerItem' 的 18 处命中全部是误报—— 其中 16 处是 GuideNH 自己 integration API 的方法名 (registerBlockDisplayProvider、registerBlockStatsProvider、 registerBlockExportIdProvider、registerItemStackNormalizationProvider 等, 定义在 integration/api/GuideNhIntegrationRegistry.java:101-742), 另 2 处是 guide/internal/syntax/BuiltinSyntaxContributor.java:975,991 的 私有辅助方法 registerBlockLayoutAttributes。 与 GameRegistry 无关。

准确描述是:游戏内文档渲染框架,消费资源包里的 Markdown, 渲染成带 3D 场景预览、物品链接、配方查询、图表、LaTeX 的可交互手册。 唯一与「任务」沾边的是它对 BetterQuesting 的只读显示兼容(见 模组兼容)。

键位(6)

键位 默认键 配置 ID 作用
打开指南 G key.guidenh.open_guide 打开当前指南
打开首页 G key.guidenh.open_guide_home 打开指南首页
上一页 Backspace key.guidenh.guide_page_back 页面后退
下一页 Enter key.guidenh.guide_page_forward 页面前进
打开场景编辑器 未绑定 key.guidenh.open_scene_editor 编辑 3D 场景
切换区域导出魔棒模式 未绑定 key.guidenh.cycle_region_wand_mode 切换区域导出模式

⚠️ 「打开指南」与「打开首页」默认都是 G,需要玩家自行改键才能区分。 详见 键位。

指令(3)

指令 端 条目
/guide list|open|reload 服务端 guide 指令
/guidenh importstructure|placeallstructures 服务端 guidenh 指令
/exportStructure structureLib|gameScene 客户端 指令

游戏设定

条目 内容
ModConfig - 4 段共 78 项配置
网络协议 - 通道 guidenh、3 条封包、运行时桥接
指南框架 - 文档模型 → 编译器 → 场景图 → 渲染的完整链路
MDX 标签 - 119 个内置运行时标签
模组兼容 - 22 个宿主 mod 的显示与数据集成
Coremod 与 Mixin - ASM transformer 与 23 个已注册 mixin 类
结构导出 - StructureLib / 场景导出链路

源码结构

1402 个主源 .java 的分布(com/hfstudio/guidenh/ 1353, com/hfstudio/structurelibexport/ 33,guideme/flatbuffers/scene/ 16):

包 文件数 职责
guide/internal 374 内部实现:场景、渲染、编辑器、调度器、启动流程
guide/scene 140 3D 场景图(方块、实体、标注、相机)
guide/document 136 文档模型(页面、章节、导航、锚点)
guide/compiler 87 Markdown → 文档模型 的编译管线
guide/mediawiki 61 MediaWiki 导出
guide/siteexport 53 站点导出
guide/syntax 18 语法高亮与 MDX 标签注册
guide/editor 11 指南编辑器
guide/indices 8 物品索引导航与搜索
guide/layout 10 布局引擎
guide/color / guide/render / guide/style 各 6 颜色 / 渲染 / 样式主题
guide/sound 4 声音标签
guide/extensions 3 扩展点
guide/latex / guide/navigation 各 2 LaTeX 渲染 / 导航
guide/ui 1 UI 壳
guide(根 9 个) 9 Guide / GuideBuilder / GuidePage / PageCollection 等门面类
client 9 ClientProxy 与 5 个 hotkey 类
bridge 48 运行时桥接(protocol / transport / security / semantic / preview)
integration 150 宿主 mod 集成(Mods.java 列 22 个)
libs 160 内置的 mdast / mdx / micromark / unist 实现
network 16 封包与处理器
mixins 26 23 个已注册 mixin 类 + MixinGuiTextEditor(未注册)+ 2 个加载器
config 3 ModConfig / GuideNHGuiConfig / GuideNHGuiFactory
coremod 1 GuideNHCoreMod
com/hfstudio/structurelibexport 33 StructureLib 导出(平级包根)
guideme/flatbuffers/scene 16 flatbuffers 生成的场景结构代码
根目录 3 GuideNH / ClientProxy / CommonProxy

⚠️ guide/ 子树合计 937 个文件(com/hfstudio/guidenh/guide/), libs 不是 guide/libs——它是 com/hfstudio/guidenh/libs,与 guide 平级。

libs 下 4 个包(mdast 65 / micromark 82 / mdx 7 / unist 6)是把 JavaScript 生态的 unified/remark/micromark AST 概念移植到 Java 的实现, 这是本 mod 架构上最不寻常的一点。

本 mod 没有的内容

以下均经源码检索确认完全没有,因此不建目录、不建条目:

类别 依据
方块 grep -rn 'GameRegistry.registerBlock|new Block(' src/main/java 无输出;18 处 registerBlock* 命中全是 integration API 方法名与 1 个语法辅助方法
物品 grep -rn 'GameRegistry.registerItem|new Item(' src/main/java 无输出
实体 grep -rn 'EntityRegistry|registerModEntity' src/main/java 无输出
TileEntity grep -rn 'registerTileEntity' src/main/java 无输出
附魔 / 药水 / 成就 无 Enchantment / PotionEffect / Achievement 注册
合成配方 无 GameRegistry.addRecipe
新维度 无 registerDimension
世界生成 无 IWorldGenerator / registerWorldGenerator
任务系统 无任务定义,仅有对 BetterQuesting 的只读显示兼容

依赖范围

依赖 状态
gtnhlib 不在 relation.md 收录范围。它是 @Mod(dependencies) 里唯一一条必需依赖,但不建分类页
UniMixins usesMixins = true,由 GTNH 构建插件自动引入;不在收录范围
structurelib StructureLib 导出功能的宿主 mod,已在 relation.md 收录(✓ 完成),有独立分类页 → structurelib

22 个集成目标 mod(AE2、GregTech、BartWorks、BuildCraft Transport、Railcraft、 LogisticsPipes、Tinkers’ Construct 等)多数不在收录范围, 故只在 模组兼容 里点名,不建分类页。 已收录的集成目标有 structurelib、gregtech、logisticspipes、railcraft 与 betterquesting(后者尚未撰写,属前向引用)。

⚠️ NotEnoughItems(NEI)虽是集成目标之一,也是注册 provider 最多的宿主 (8 个配方相关 provider),但 relation.md 中没有 NotEnoughItems 行—— NEI Recipe Panels(nei-recipe-panels,modid neirecipepanels)是另一个 mod。 故 NEI 不建分类、不做跨分类链接,仅在集成条目里点名。

相关条目

  • betterquesting - 集成目标之一,仅只读显示兼容(尚未撰写)
  • structurelib - 结构导出的目标格式宿主 mod
  • gregtech - 集成目标,注册 oreDict 统一与机器预览 provider
  • logisticspipes - 集成目标,注册 BlockDisplayProvider
  • railcraft - 集成目标,注册预览 PreviewPrepareContributor