ICustomArrows

基本信息

属性 值
全限定名 betterachievements.api.components.page.ICustomArrows
类型 接口(AchievementPage 三态箭头颜色)
源文件 src/main/java/betterachievements/api/components/page/ICustomArrows.java

功能

AchievementPage 实现后,可为该页内的连接箭头提供自定义颜色(区分可解锁 / 不可解锁 / 已解锁三种状态)。userColourOverride=true 时会被配置文件中的颜色覆盖。

方法签名

方法 返回 说明
getColourForCantUnlockArrow() int 不可解锁成就箭头的颜色。注释推荐用 ColourHelper.RGB("#RRGGBB") 解析
getColourForCanUnlockArrow() int 可解锁成就箭头的颜色
getColourForUnlockedArrow() int 已解锁成就箭头的颜色

调用点

GuiBetterAchievements.drawAchievements(...) 在每帧绘制前计算 3 个颜色并透传给 drawArrow(achievement, colourCantUnlock, colourCanUnlock, colourUnlocked):

boolean customColours = page instanceof ICustomArrows;
int colourCantUnlock = !userColourOverride && customColours
        ? ((ICustomArrows) page).getColourForCantUnlockArrow()
        : (GuiBetterAchievements.colourCantUnlockRainbow
                ? ColourHelper.getRainbowColour(GuiBetterAchievements.colourCantUnlockRainbowSettings)
                : GuiBetterAchievements.colourCantUnlock);
// 同理 colourCanUnlock、colourUnlocked

颜色优先级

  1. 若 userColourOverride = false 且页面实现 ICustomArrows → 用 ICustomArrows 的颜色。
  2. 否则若 colourXxxRainbow = true → 用 ColourHelper.getRainbowColour(colourXxxRainbowSettings)。
  3. 否则用配置中的 colourXxx 静态字段。

相关条目