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 实现会被调用。

相关条目