ChromaticTooltips
[!INFO] Git Commit:
9c1a2d9| Updated: 2026-10-28
物品提示(tooltip)美化与自定义 mod。在 1.7.10 上完全接管原版 tooltip 的渲染,通过可配置的主题(theme)、enricher 扩展点、 component 片段与行转换器,让物品提示的排版、配色、字体、 分组与图标都可由配置和资源包定制。
身份
| 属性 | 实测值 |
|---|---|
| modid | chromatictooltips(全小写;ChromaticTooltips.java:21) |
| modName | ChromaticTooltips(驼峰;同文件 :22) |
| version | Tags.VERSION —— ⚠️ 构建期生成的类,仓库中不存在 |
| 资源域 | chromatictooltips(assets/chromatictooltips/) |
| Minecraft | 1.7.10(acceptedMinecraftVersions = "[1.7.10]") |
| Java 文件 | 89 |
@Mod 位置 |
Java(ChromaticTooltips.java:13),非 Scala / Kotlin |
| 生命周期 | 4 个 @Mod.EventHandler(全转发 proxy) |
| 命令 | 0 |
| 快捷键 | 2(Z 翻页;上一页默认未绑定) |
| mixin | 4(early 3 + late 1),5 个注入点 |
| mixin 配置 | 3(全部 required: true,minVersion: 0.8.5-GTNH) |
| enricher | 11 个类 / 12 个实例 |
| 行转换器 | 3 |
| component | 11 |
| 事件类 | 15 |
| api 类型 | 16(6 接口 + 2 枚举 + 8 类) |
| 配置类 | 3(general / enricher / stackamount) |
| 注册内容 | 0 方块 / 物品 / 实体 / TileEntity / 维度 |
| 硬依赖 | required-after:gtnhlib@ + [0.9.6,) |
⚠️ modid 正确,但 version 指向仓库中不存在的类
@Mod(modid = ChromaticTooltips.MODID, version = Tags.VERSION, …)
public static final String MODID = "chromatictooltips";
public static final String NAME = "ChromaticTooltips";
⚠️ Tags 类在整个仓库中不存在 ——
find -name 'Tags.java' 命中 0,grep 'class Tags' 命中 0。
它由 GTNH MDK 在构建期生成(gradle.properties:77
generateGradleTokenClass = com.slprime.chromatictooltips.Tags)。
即:modid 可从源码直接查到,version 不可。
mcmod.info 里的 ${modVersion} 同为占位符。
依赖
| 依赖 | 声明 | 收录状态 |
|---|---|---|
gtnhlib |
required-after:gtnhlib@ + [0.9.6,) —— 硬依赖 + 版本区间 |
已登记为 GTNHLib,尚未成文 |
⚠️ 缺 GTNHLib 或版本 < 0.9.6 直接启动失败。
[0.9.6,) 是左闭右开区间。
⚠️ 尾部多余分号(… + [0.9.6,);)会被 FML 当空条目忽略 ——
按字面数会以为有第二个依赖。
mixin(4 个,required: true 裁定)
| 配置 | 类 | 目标类 | 注入 |
|---|---|---|---|
| early | MixinGuiContainerCreative |
GuiContainerCreative |
renderToolTip @ HEAD, cancellable |
| early | MixinGuiScreen(priority = 999) |
GuiScreen |
renderToolTip @ HEAD, cancellable |
| early | MixinGuiScreen |
GuiScreen |
drawHoveringText @ HEAD, cancellable, remap = false |
| early | ItemEnchantedBookMixin |
ItemEnchantedBook |
addInformation @ HEAD, cancellable |
| late | MixinGuiContainerCreative |
GuiContainerCreative |
renderToolTip @ HEAD, cancellable |
裁定:4 个目标全部是 Minecraft 1.7.10 原版类,恒定存在,
因此不存在「目标属第三方 mod 而缺该 mod 则启动即崩」的缺陷,
无需 addRequiredMod。
⚠️ 但 3 个配置都没有 plugin 字段,
minVersion = 0.8.5-GTNH 硬性要求 GTNH 特制 Mixin 0.8.5 ——
用非 GTNH 版 Mixin 会被拒,且本 mod 不提供 IMixinConfigPlugin 放宽。
⚠️ drawHoveringText 是唯一 remap = false 的注入点 ——
混淆环境下若该成员名变化,因 required: true 会直接启动失败。
其余 4 个用默认 remap = true。
⚠️ GuiContainerCreative 被 early / late 各混入 1 次(同名同 76 行但实现不同),
按类名去重会少数 1 个。共 4 类 / 5 注入点。
入口与渲染链
| 条目 | 说明 |
|---|---|
mod 入口 - ChromaticTooltips |
@Mod,4 个生命周期全转发 proxy |
| ClientProxy - 客户端代理 | 全部注册逻辑:2 快捷键、3 监听器、12 enricher、3 转换器 |
| CommonProxy 与 TooltipRenderer | 服务端空实现 + 渲染器 |
| TooltipHandler - 渲染总线 | setRendererClass(Class) 传类对象 |
| TooltipRegistry - 注册中心 | addEnricher / addLineConverter(Pattern,…) |
扩展点
| 条目 | 内容 |
|---|---|
| enricher 清单 | 11 类 / 12 实例,ItemStatsEnricher 注册两次 |
| 行转换器 | 3 个,按静态 PATTERN 注册 |
| api 包 | 16 = 6 接口 + 2 枚举 + 8 类 |
| component 包 | 11 个渲染片段 |
| 事件包 | 15 个事件 |
| util 包 | 15 个工具类 |
| 配置 | 3 个 @Config 类 + JSON 主题 |
mixin 明细
⚠️ 源码既有拼写错误(勿「顺手改正」)
| 位置 | 错误拼写 | 正确应为 |
|---|---|---|
component/DyncamicTextComponent |
Dyncamic |
Dynamic |
| 事件包 前置说明 | 见各条目 | —— |
另:ChromaticTooltips.java 保留 MDK 模板注释
(// preInit "Run before anything else. …" (Remove if not needed))未清理。
⚠️ 与 ChromaticTooltipsCompat 是两个仓
| 分类 | 仓库 | 规模 | 职责 |
|---|---|---|---|
chromatictooltips(本条目) |
ChromaticTooltips/ |
89 java、4 mixin | 渲染引擎 + 主题 + 扩展点 |
chromatictooltipscompat |
ChromaticTooltipsCompat/ |
60 mixin + 11 事件处理器 | 让第三方 mod 的 tooltip 改走本样式 |
⚠️ 后者是独立分类(已收录,见 ChromaticTooltipsCompat),
本 mod 的 api/ 与 event/ 主要供它使用。
本条目不涉及后者的任何内容。
关联
- GTNHLib - 硬依赖
required-after:gtnhlib@+[0.9.6,)(已登记未成文) - ChromaticTooltipsCompat - 独立的兼容补丁分类