API 参考 / capability 包:服务、状态与游玩访问
HudElementOverride
想先跑起来?
这一页是签名与行为参考。单元素属性声明,多模组叠加语义见页面。直接做一遍:教程 · 自定义 HUD。
单个 HUD 元素的可改属性声明。模组经 GameplayHud.override(HudElement) 对某元素返回本对象,宿主在渲染该元素时应用——这是属性级原语(模组给值、宿主按值应用),不是预设样式枚举。
方法速览
| 方法 | 用途 |
|---|---|
offsetX() | 水平偏移(逻辑像素,正值向右) |
offsetY() | 垂直偏移(逻辑像素,正值向下) |
colorArgb() | 元素颜色覆盖(ARGB,null = 不改) |
alphaScale() | 透明度系数(1.0 = 不变) |
完整签名
java
public interface HudElementOverride {
default double offsetX();
default double offsetY();
default Integer colorArgb();
default float alphaScale();
}offsetX()
签名:
java
double offsetX();行为:水平偏移(画布逻辑像素,正值向右),直接叠加在元素绘制的平移上;多模组声明时求和。默认 0.0。
示例:
java
@Override
public double offsetX() {
return 8.0;
}offsetY()
签名:
java
double offsetY();行为:垂直偏移(画布逻辑像素,正值向下);多模组声明时求和。默认 0.0。
示例:
java
@Override
public double offsetY() {
return -4.0;
}colorArgb()
签名:
java
Integer colorArgb();行为:元素颜色覆盖(ARGB,含 alpha);null = 保持原版颜色(默认)。多个模组都声明颜色时启用顺序最后者生效(颜色不可叠加),宿主输出 [ModConflict] 限频告警。
示例:
java
@Override
public Integer colorArgb() {
return 0xFFFFD040;
}alphaScale()
签名:
java
float alphaScale();行为:元素透明度系数(与原版 HUD 整体透明度相乘;多模组连乘)。默认 1.0。返回 0 可隐藏该元素——这是 SYSTEM_LOG / STATUS / NOTES_INFO / BPM_SPEED 等无可见性开关元素的隐藏手段。
示例:
java
@Override
public float alphaScale() {
return 0.0f; // 隐藏该元素
}线程:宿主在渲染线程逐帧读取,实现应返回前文构造好的不可变值;不要在校验方法里做阻塞操作。
稳定性: 新增;2.x 内只增不破。