Skip to content

类定义

优秀的小杨同学 edited this page Jun 21, 2023 · 3 revisions

类定义

此页面存放所有开发者可以使用的类结构定义。

Search 类

Search 类由一个存放所有 SearchOption 的动态数组组成,定义如下:

class SearchTextOption {   // 输入框选项类
    string query;          // 选项标识符
    string name;           // 选项名
    string placeholder;    // 选项提示信息
};

class SearchSliderOption { // 拖动条选项类
    string query;          // 选项标识符
    string name;           // 选项名
    int def;               // 默认值
    int min;               // 最小值
    int max;               // 最大值
    int step;              // 步长
    string unit;           // 单位
};

class SearchToggleOption { // 开关选项类
    string query;          // 选项标识符
    string name;           // 选项名
    bool def = 0;          // 默认值
};

class SearchSelectOption { // 选择框选项类
    string query;          // 选项标识符
    string name;           // 选项名
    int def;               // 默认值
    vector<string> values; // 选项值数组
}

class SearchFileOption {   // 文件选项类
    string query;          // 选项标识符
    string name;           // 选项名
};

class SearchTitleOption {  // 选项标题类
    string name;           // 选项名
    int level;             // 标题等级
};

class SearchColorOption {  // 颜色选项类
    string query;          // 选项标识符
    string name;           // 选项名
};

class SearchOption = SearchTextOption | SearchSliderOption | SearchToggleOption | SearchSelectOption | SearchFileOption | SearchTitleOption | SearchColorOption

class Search {            
    vector<SearchOption> options;  // 选项数组
};

请注意,Sonolus 官方的标准只支持 SearchTextOption, SearchSliderOption, SearchToggleOptionSearchSelectOption。这意味着如果在 搜索配置文件 中出现了 SearchFileOption, SearchTitleOptionSearchColorOption,可能会导致 Sonolus 应用报错,但网页端服务不会出现问题。

SRL 类

SRL(Sonolus Resource Locator),Sonolus 资源定位类。定义如下:

enum ResourceType {
    LevelCover,
    LevelBgm,
    LevelPreview,
    LevelData,
    SkinThumbnail,
    SkinData,
    SkinTexture,
    BackgroundThumbnail,
    BackgroundData,
    BackgroundImage,
    BackgroundConfiguration,
    EffectThumbnail,
    EffectData,
    EffectAudio,
    ParticleThumbnail,
    ParticleData,
    ParticleTexture,
    EngineThumbnail,
    EngineData,
    EngineRom,
    EngineConfiguration,
    ServerBanner
};

template<ResourceType T>
class SRL {
    ResourceType type = T; // 资源类型
    string hash;           // 资源 sha1 哈希
    string url;            // 资源链接
};

Section, ItemList, ItemDetails 类

Todo

SkinItem 类

Todo

BackgroundItem 类

Todo

EffectItem 类

Todo

ParticleItem 类

Todo

EngineItem 类

Todo

LevelItem 类

Todo