Theseus 模组文档
API 参考 / 能力接口(capability 包)

TrackStyle


不可变轨道样式覆盖值对象,由 TrackStyleProvider 返回。null 字段 = 保持引擎默认;颜色为 ARGB(java.awt.Color#getRGB() 语义)。

方法速览

方法 / 字段用途
构造器一次性给出 7 个可选覆盖字段
bgColor / bgVisible背景填充色 / 背景可见性
lineColor / lineVisible分隔线颜色 / 可见性
keyText / keyColor / keyVisible快捷键框文本 / 文本色 / 可见性
isUnset()是否所有字段都未设置

完整签名

java
public final class TrackStyle { // UiCustomization 的嵌套值类型

    public final Integer bgColor;

    public final Boolean bgVisible;

    public final Integer lineColor;

    public final Boolean lineVisible;

    public final String keyText;

    public final Integer keyColor;

    public final Boolean keyVisible;

    public TrackStyle(Integer bgColor, Boolean bgVisible,
                      Integer lineColor, Boolean lineVisible,
                      String keyText, Integer keyColor, Boolean keyVisible) {
        // 字段逐一赋值
    }

    public boolean isUnset() {
        return bgColor == null && bgVisible == null && lineColor == null && lineVisible == null
                && keyText == null && keyColor == null && keyVisible == null;
    }
}

TrackStyle(...)

签名:

java
public TrackStyle(Integer bgColor, Boolean bgVisible,
                  Integer lineColor, Boolean lineVisible,
                  String keyText, Integer keyColor, Boolean keyVisible);

行为:按顺序接收 7 个可选覆盖值,null 表示该项保持引擎默认。构造函数本身不做校验,也不会复制可变对象(String 不可变,其余为装箱基元)。字段全部 public final,对象不可变,可安全跨帧缓存复用。

示例:

java
UiCustomization.TrackStyle style = new UiCustomization.TrackStyle(
        null, null,          // 背景不改
        0xFFFF4040, true,    // 分隔线红色、可见
        null, null, null);   // 快捷键框保持默认

isUnset()

签名:

java
boolean isUnset();

行为:7 个字段全为 null 时返回 true。注意它不是"放弃覆盖"——宿主仍把该对象视为已生效,从而不再询问后续提供器。因此 isUnset() 是"占位"而非"放弃":想跳过某条轨道请让 styleFor 返回 null。

示例:

java
if (style.isUnset()) {
    return null;   // 真正放弃:让后续提供器有机会生效
}

线程:不可变值对象,任意线程读取安全;通常在渲染线程构造 / 读取。

稳定性:2.0 起冻结:2.x 内只增不破。