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
颜色优先级
- 若
userColourOverride = false且页面实现ICustomArrows→ 用ICustomArrows的颜色。 - 否则若
colourXxxRainbow = true→ 用ColourHelper.getRainbowColour(colourXxxRainbowSettings)。 - 否则用配置中的
colourXxx静态字段。
相关条目
- Configuration - 三个箭头颜色 +
userColourOverride配置项 - ColourHelper -
RGB("#RRGGBB")/getRainbowColour工具 - GuiBetterAchievements - 调用方