Theseus 模组文档
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 内只增不破。