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 事件处理器

本条目只覆盖前者。

关联