Guide-API
[!INFO] Git Commit:
cb44997| Updated: 2026-10-01
游戏内指南书(guide book)开发库。为第三方 mod 提供一套「书 → 分类 → 条目 → 页面」 四层内容结构、对应 GUI、JSON 反序列化器与 NBT 残页机制。 自身只注册 2 个物品(书本体 + 残页),不含任何方块 / 实体 / 附魔。
身份
| 属性 | 实测值 |
|---|---|
| modid | guideapi(全小写,gradle.properties:10) |
| modName | Guide-API(gradle.properties:7,与仓库名一致) |
| 网络频道 | GuideAPI(ModInformation.CHANNEL,≠ modid) |
| 主类包 | amerifrance.guideapi |
| Java 文件 | 75 |
| 注册内容 | 0 方块 / 实体;2 物品(guideBook、lostPage) |
| 配置项 | 2(Books 1 + General 1) |
| 网络包 | 3(id 0/1/2) |
| 硬依赖 | 无(DEPEND = "") |
| 其它 | 声明 apiPackage 为空(API 实际位于 api 包) |
[!IMPORTANT] 定位:指南书 API 库,不是导航 / 地图 mod README 首句:
Library mod for easy creation of guide books. Also allows book creation via JSON files.「Guide」在此处是指引手册之意,与 Navigator 那类地图 API 无关。 本 mod 不做任何寻路、定位、罗盘或地图渲染。
[!WARNING] modid 与 modName、频道三者各不相同
modid = guideapi(全小写,来自gradle.properties的modId)、modName = Guide-API、CHANNEL = GuideAPI。mcmod.info全文是${modId}/${modName}/${modVersion}/${minecraftVersion}占位符,ModInformation.java中ID/NAME/VERSION三个常量也全是GRADLETOKEN_*占位符 (由replaceGradleTokenInFile = ModInformation.java在编译期替换)。 因此 modid 只能从gradle.properties读取。
四层内容结构
- Book - 顶层:一本书(分类列表、纹理、颜色、作者、战利品设置)
- CategoryAbstract - 第 2 层:分类基类(持有条目列表)
- EntryAbstract - 第 3 层:条目基类(持有页面列表)
- IPage - 第 4 层:页面接口(一页的实际绘制与交互)
API 入口列表
- GuideAPI -
@Mod("guideapi")主类、生命周期、创造标签 - ModInformation - 全部常量的占位符声明
- GuideRegistry - 全局的
Book列表与「书 ↔ ItemStack」互转 - GuideAPIItems - 2 个
Item静态引用 - package-info -
api包的 Javadoc 声明(无代码)
API 抽象层列表
- CategoryAbstract - 分类抽象基类
- EntryAbstract - 条目抽象基类
- IPage - 页面接口
- IGuideLinked - 让方块直接跳转到指南条目的接口
- IRecipeRenderer - 配方渲染器接口(含内部
RecipeRendererBase)
API 基础实现列表
- Book - 4 个构造器(1 主 + 3 废弃)
- CategoryBase -
CategoryAbstract的默认实现 - EntryBase -
EntryAbstract的默认实现 - PageBase -
IPage的全空默认实现(含canSee默认逻辑)
API 工具列表
- BookBuilder - 链式构造
Book(14 方法) - BookHelper - 书的序列化 / 反序列化辅助
- PageHelper - 页面辅助(8 方法)
- GuiHelper - GUI 绘制辅助(8 方法)
- TextHelper - 文本处理
- NBTBookTags - NBT 键名常量
- ButtonGuideAPI - 指南专用按钮基类
内容实现列表
- CategoryItemStack - 用
ItemStack作分类图标 - CategoryResourceLocation - 用
ResourceLocation作分类图标 - EntryItemStack - 用
ItemStack作条目图标 - EntryResourceLocation - 用
ResourceLocation作条目图标 - EntryText - 纯文本条目(可指定 unicode)
- EntryUniText - 纯文本条目(
unicode固定为true)
页面实现列表
- PageText - 文本页(基类,被多个页继承)
- PageUnlocText - 未本地化文本页
- PageLocText - 本地化键文本页
- PageItemStack - 物品栈页(继承
PageText) - PageUnlocItemStack - 未本地化物品名 + 物品图标
- PageLocItemStack - 本地化物品名 + 物品图标
- PageImage - 整页图片
- PageUnlocImage - 未本地化文本 + 图片
- PageLocImage - 本地化文本 + 图片
- PageTextImage - 文本 + 图片组合
- PageSound - 播放音效的页面
- PageIRecipe - 通用
IRecipe页 - PageFurnaceRecipe - 熔炉配方页
- PageCustomIRecipe - 自定义配方页(继承
PageIRecipe)
配方渲染器列表
- BasicRecipeRenderer - 配方渲染器基类
- ShapedRecipesRenderer - 有序配方
- ShapelessRecipesRenderer - 无序配方
- ShapedOreRecipeRenderer - 有序矿物配方
- ShapelessOreRecipeRenderer - 无序矿物配方
GUI 列表
- GuiBase - 4 个 GUI 屏幕的公共基类
- GuiHome - 首页:显示分类列表
- GuiHomeNew - 新版首页(继承
GuiHome) - GuiCategory - 分类页:显示条目列表
- GuiEntry - 条目页:显示页面内容
- ButtonGuideAPI - 按钮基类(见 API 工具)
- ButtonBack - 返回按钮
- ButtonPrev - 上一步按钮
- ButtonNext - 下一步按钮
物品列表
- ItemsRegistry - 注册 2 个物品的入口
- ItemGuideBook - 指南书本体(metadata = 书序号)
- ItemLostPage - 残页(NBT 记录页面坐标)
序列化列表
- BookCreator - Gson 构造器 + 7 个自定义类型适配器
- TypeReaders -
ItemStack/Color等类型的读写实现 - ITypeReader - 序列化/反序列化双向接口
网络列表
- PacketHandler - 注册 3 个同步包
- PacketSyncHome - id 0:首页分类同步
- PacketSyncCategory - id 1:分类条目同步
- PacketSyncEntry - id 2:条目页面同步
包装器列表
- AbstractWrapper - 包装器基类
- CategoryWrapper - 分类的网络包装
- EntryWrapper - 条目的网络包装
- PageWrapper - 页面的网络包装
代理与事件列表
- CommonProxy - 公共端代理
- ClientProxy - 客户端代理
- EventHandler - 玩家加入 / 铁砧合成事件
- LootGenerator - 残页战利品表生成
- LogHelper - 受
enableLogging控制的日志门面
配置与核心列表
- ConfigHandler - 2 个配置项
- TestBook - 内置测试书(开发构建才注册 5 页)
依赖关系
本 mod 无硬依赖(DEPEND = "")。README 列出的兼容方
Sanguimancy / Creative Concoctions / Blood Magic 均不在本 wiki 收录范围
(relation.md 无对应行),故不建分类。