Tooltip 控制符
基本信息
| 属性 | 值 |
|---|---|
| 常量类 | mcp.mobius.waila.api.SpecialChars(SpecialChars.java:5) |
| 带标签列表 | mcp.mobius.waila.api.impl.TipList(TipList.java:13) |
| 带标签列表接口 | mcp.mobius.waila.api.ITaggedList(ITaggedList.java) |
provider 回调返回的每一行都是一个 String,其中可嵌入控制符。Waila 用 SpecialChars 里的一组 Pattern 在渲染时切分并解释它们。
功能
字符前缀
| 常量 | 码点 | 用途 | 行 |
|---|---|---|---|
MCStyle |
§(U+00A7) |
原版颜色/格式码前缀 | 7 |
WailaStyle |
¤(U+00A4) |
Waila 扩展前缀 | 33 |
WailaIcon |
¥(U+00A5) |
扩展:图标 | 34 |
WailaRenderer |
¦(U+00A6) |
扩展:自定义渲染 | 35 |
WailaRendererComma |
‚(U+0082) |
渲染参数分隔符 | 36 |
三段式扩展标记
均为 WailaStyle 双写或组合(SpecialChars.java:37-43):
| 常量 | 实际串 | 含义 | 行 |
|---|---|---|---|
TAB |
¤¤a |
制表/缩进 | 37 |
ALIGNRIGHT |
¤¤b |
右对齐 | 38 |
ALIGNCENTER |
¤¤c |
居中 | 39 |
RENDER |
¤¦a |
调用自定义渲染器 | 43 |
HEART |
¤¥a |
半颗心 | 40 |
HHEART |
¤¥b |
满心 | 41 |
EHEART |
¤¥c |
空心 | 42 |
解析用 Pattern
| 常量 | 匹配目标 | 行 |
|---|---|---|
patternMinecraft |
§ + [0-9A-FK-OR](原版颜色与格式) |
45 |
patternWaila |
¤ + 任意 2 字符(捕获组名 type) |
46 |
patternRender |
完整的 ¤¦a{名称‚参数...} |
48-54 |
patternTab |
¤¤a |
55 |
patternRight |
¤¤b |
56 |
patternCenter |
¤¤c |
57 |
patternIcon |
¤¥[0-9a-z] |
58 |
patternLineSplit |
一行内所有可识别片段(¤¤… / ¤¥X / ¤¦a{…} / 纯文本) |
60-77 |
全部 Pattern 带 (?i) 忽略大小写(SpecialChars.java:45-77)。
生成渲染调用串
SpecialChars.getRenderString(String name, String... params)(SpecialChars.java:83-90)是推荐的构造方式:拼出 RENDER + "{" + name,再对每个 param 追加 WailaRendererComma,最后补 }。手工拼接容易漏掉 ‚ 分隔符,javadoc 亦建议使用该方法(SpecialChars.java:79-82)。
颜色常量
BLACK 到 WHITE 共 16 个颜色(SpecialChars.java:9-24)与 OBF / BOLD / STRIKE / UNDER / ITALIC / RESET 6 个格式码(SpecialChars.java:26-31),均为 § 加一位十六进制字符。
TipList
TipList<E, T> extends ArrayList<E> implements ITaggedList<E, T>(TipList.java:13)是一个带标签的字符串列表:每行可挂若干 tag,供后续按 tag 批量查询或删除。核心方法(ITaggedList.java):add(E,T)、add(E,Collection)、getTags、addTag、removeTag、getEntries(T)、removeEntries(T)、getTagsAsString(E)。
Waila 自身用它来保存 tip 行与其来源标记(WailaTickHandler.java:27 持有一个 MetaDataProvider,tip 列表在 WailaTickHandler.java:52-55 分 head/body/tail 三段构造)。
数值
| 项 | 值 | 来源 |
|---|---|---|
| 颜色常量数 | 16 | SpecialChars.java:9-24 |
| 格式码常量数 | 6 | SpecialChars.java:26-31 |
| 扩展标记常量数 | 7 | SpecialChars.java:37-43 |
| 解析 Pattern 数 | 8 | SpecialChars.java:45-77 |
ITaggedList 方法数 |
11 | ITaggedList.java |
交互
provider 输出的行在 WailaTickHandler 中被按 head / body / tail 三段组织(WailaTickHandler.java:52-55),最终交给 OverlayRenderer.renderOverlay 绘制(WailaTickHandler.java:31-33)。¤¦a{...} 的渲染器分发见 Tooltip 渲染器 API。
相关条目
- Tooltip 渲染器 API -
RENDER控制符的实现方契约 - IWailaDataProvider - 产出这些控制符串的回调
- HUD 渲染管线 - tip 行的实际绘制