HumanBreak/docs/api/class/setting-displayer.md
2024-03-01 19:52:30 +08:00

2.8 KiB

类 SettingDisplayer

渲染进程类,游戏进程不可直接使用,继承自 EventEmitter

setting

declare var setting: MotaSetting
  • 成员说明

    该成员描述了当前显示实例的设置

selectStack

declare var selectStack: string[]
  • 成员说明

    该成员描述了当前的设置选择栈,例如当选中了级联设置 setting1.setting2 时,选择栈就是 ['setting1', 'setting2']

displayInfo

declare var displayInfo: SettingDisplayInfo[]
  • 成员说明

    该成员是响应式对象(reactive),描述了当前设置的所有显示信息,包含父设置(级联设置)的信息,一般情况下信息与选择栈同步。

  • 接口 SettingDisplayInfo

    interface SettingDisplayInfo {
        item: MotaSettingItem | null;
        list: Record<string, MotaSettingItem>;
        text: string[];
    }
    
    • 详细说明
      • item: 描述了当前设置的信息,当没有选择设置或选择的是级联设置的时候为 null
      • list: 这个设置的选择栈
      • text: 显示的文字信息,经由 split 处理,分割字符为 \n,可以经过 splitText 函数处理后直接显示

constructor()

interface SettingDisplayer {
    new(setting: MotaSetting): SettingDisplayer
}
  • 构造器说明

    传入要显示的设置实例,返回一个显示器实例

add()

declare function add(key: string): void
  • 方法说明

    该方法用于向选择栈里面添加一个选择项,例如现在我选择了 setting2,那么就应该调用 add('setting2')

cut()

declare function cut(index: number, noUpdate: boolean = false): void
  • 参数说明

    • index: 从第几个元素开始剪切,即第一个剪切项的索引
    • noUpdate: 是否不进行刷新
  • 方法说明

    该方法用于剪切选择栈,例如我从选择支 s1.s2.s3.s4 切换至了 s1.s6,那么应该先调用 cut(1),再调用 add('s6')

update()

declare function update(): void
  • 方法说明

    用于更新选择栈显示信息

update 事件

interface SettingDisplayerEvent {
    update: (stack: string[], display: SettingDisplayInfo[]) => void
}
  • 事件说明

    该事件会在选择栈更新时触发,传入的参数分别是当前的选择栈和当前选择栈显示信息