CommonProxy 与 TooltipRenderer
基本信息
| 属性 | 值 |
|---|---|
| 文件 | src/main/java/com/slprime/chromatictooltips/CommonProxy.java、TooltipRenderer.java |
| 启用版本 | Minecraft 1.7.10 |
CommonProxy
@SidedProxy 的 serverSide 实现,也是 ClientProxy 的基类。
⚠️ 服务端侧不承担渲染工作 —— 本 mod 是纯客户端 tooltip 增强,
CommonProxy 的 4 个生命周期方法(preInit / init / postInit /
serverStarting)在服务端均为空转发或空实现。
⚠️ ClientProxy.preInit 第一行是 super.preInit(event) ——
即客户端也走基类的(空)初始化,保证两侧签名一致。
⚠️ @SidedProxy 字段类型声明为 CommonProxy(见
mod 入口),所以只能在基类上访问代理方法,
客户端特有方法需强转。
TooltipRenderer
ITooltipRenderer 的实现,通过
TooltipHandler.setRendererClass(TooltipRenderer.class) 注册
(见 ClientProxy)。
⚠️ 注册的是类对象而非实例 —— 渲染器由 TooltipHandler 实例化。
渲染器组装的内容(按 TooltipRegistry 注册的顺序):
| 组成 | 数量 | 来源 |
|---|---|---|
| enricher | 12 实例 | enricher/ 的 11 个类 |
| 行转换器 | 3 | converter/ 的 3 个类 |
| component | 11 | component/ |
| 主题 | — | util/ThemeManager |
⚠️ 本 mod 自身只有 4 个 mixin
TooltipRenderer 渲染原版物品的 tooltip;
让其它 mod 画的 tooltip 改走本样式,是另一个仓
ChromaticTooltipsCompat 的职责
(60 个 mixin + 11 个事件处理器)。
⚠️ 两个仓的 modid 极易混淆:
| 分类 | 仓库 | 规模 |
|---|---|---|
chromatictooltips |
ChromaticTooltips/ |
89 java、4 mixin |
chromatictooltipscompat |
ChromaticTooltipsCompat/ |
60 mixin + 11 事件处理器 |
本条目只覆盖前者。
关联
- mod 入口 -
@SidedProxy - ClientProxy -
setRendererClass - TooltipHandler - 渲染总线
- TooltipRegistry - 注册中心
- ChromaticTooltipsCompat - 独立的兼容补丁分类