ICustomTooltip
基本信息
| 属性 | 值 |
|---|---|
| 全限定名 | betterachievements.api.components.achievement.ICustomTooltip |
| 类型 | 接口(Achievement 自定义 Tooltip) |
| 源文件 | src/main/java/betterachievements/api/components/achievement/ICustomTooltip.java |
功能
Achievement 实现后,可以完全接管该成就的 Tooltip 渲染(默认按 defaultTooltipWidth=120 绘制灰度背景 + 标题/描述/Taken 文字)。
方法签名
void renderTooltip(int mouseX, int mouseY, StatFileWriter statFileWriter);
| 参数 | 含义 |
|---|---|
mouseX |
当前鼠标 X |
mouseY |
当前鼠标 Y |
statFileWriter |
当前玩家的 StatFileWriter,可查询 hasAchievementUnlocked / canUnlockAchievement / func_150874_c(achievement) 等 |
调用点
GuiBetterAchievements.drawMouseOverAchievement(mouseX, mouseY):
if (this.hoveredAchievement instanceof ICustomTooltip)
((ICustomTooltip) this.hoveredAchievement).renderTooltip(mouseX, mouseY, this.statFileWriter);
else {
// 默认 tooltip:drawGradientRect + 标题 + 描述 + "Taken"
}
调用前已经过滤:
this.hoveredAchievement == null或鼠标不在inInnerScreen→ 直接 return。- 不可解锁且
depth > 3→ 默认分支 return,但 ICustomTooltip 实现会被调用。