enricher 清单
基本信息
| 属性 | 值 |
|---|---|
| 位置 | src/main/java/com/slprime/chromatictooltips/enricher/ |
| 类数 | 11 |
| 注册实例 | 12 |
| 启用版本 | Minecraft 1.7.10 |
11 个类与注册顺序
ClientProxy 的 preInit 按固定顺序注册
12 个实例:
| 序 | 实例 | 类 | 作用 |
|---|---|---|---|
| 1 | new TitleEnricher() |
TitleEnricher |
标题 |
| 2 | new KeyboardModifierEnricher() |
KeyboardModifierEnricher |
按键修饰 |
| 3 | new ItemStatsEnricher(true) |
ItemStatsEnricher |
物品属性(仅图标) |
| 4 | new StackSizeEnricher() |
StackSizeEnricher |
堆叠数量 |
| 5 | new HotkeyEnricher() |
HotkeyEnricher |
快捷键提示 |
| 6 | new ItemInfoEnricher() |
ItemInfoEnricher |
物品信息 |
| 7 | new FluidInfoEnricher() |
FluidInfoEnricher |
流体信息 |
| 8 | new EnchantmentEnricher() |
EnchantmentEnricher |
附魔 |
| 9 | new ItemStatsEnricher(false) |
ItemStatsEnricher |
物品属性 |
| 10 | new OreDictionaryEnricher() |
OreDictionaryEnricher |
矿物词典 |
| 11 | new ContextInfoEnricher() |
ContextInfoEnricher |
上下文信息 |
| 12 | new ModInfoEnricher() |
ModInfoEnricher |
来源 mod |
⚠️ 12 个实例 ≠ 11 个类 —— ItemStatsEnricher 被注册两次
(序 3 与序 9),中间夹 5 个其它 enricher。
⚠️ 两次实例化靠构造参数 boolean showOnlyIcons 区分,
并通过 sectionId() 产生不同分节 id:
public String sectionId() { return SECTION_ID + (this.showOnlyIcons ? ":icons" : ""); }
即 true 版得 …:icons,false 版得基础 id。
分节靠 sectionId() 字符串区分,不靠对象身份。
接口与事件
enricher 实现 api/ITooltipEnricher,
其扩展点事件在 event/ 包(15 个类)中有对应者:
| enricher | 对应事件 |
|---|---|
TitleEnricher |
TitleEnricherEvent |
KeyboardModifierEnricher |
— |
ItemStatsEnricher |
AttributeEnricherEvent |
StackSizeEnricher |
StackSizeEnricherEvent |
HotkeyEnricher |
HotkeyEnricherEvent |
ItemInfoEnricher |
ItemInfoEnricherEvent |
FluidInfoEnricher |
FluidInfoEnricherEvent |
EnchantmentEnricher |
EnchantmentEnricherEvent |
OreDictionaryEnricher |
— |
ContextInfoEnricher |
ContextInfoEnricherEvent |
ModInfoEnricher |
ModInfoEnricherEvent |
⚠️ KeyboardModifierEnricher 与 OreDictionaryEnricher 没有专属事件 ——
11 个 enricher 只对应 9 个 *EnricherEvent。
另有 3 个非 *EnricherEvent 事件(FoodEffectsEvent、FoodStatsEvent、
TooltipEnricherEvent、RenderTooltipEvent、TextLinesConverterEvent、TooltipEvent)
属其它用途。不要建立「enricher 数 = enricher 事件数」的一一映射。
行转换器(同在 enricher 关注域)
converter/ 包 3 个类,以静态 PATTERN 为键注册:
| 类 | 作用 |
|---|---|
ModifierConverter |
文本修饰符 |
DividerTextConverter |
分隔线文本 |
DividerConverter |
分隔线 |
⚠️ 它们不在 enricher/ 包,而在 converter/ 包,
但都经 TooltipRegistry 的
addLineConverter 注册。
关联
- ClientProxy - 注册顺序的来源
- TooltipRegistry - 注册中心
- 行转换器 - 3 个
Pattern - api 包 -
ITooltipEnricher等接口 - 配置类 - 3 个
@Config类