summaryrefslogtreecommitdiff
path: root/tests/examplefiles/mcschema/manifest.mcschema
blob: 39feb62123e206900151e66164d79c40584e0e86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
manifest:2:
object
{
    int "format_version" // 该文件的格式版本,此处应为`2`
    object "header"
    {
        string "uuid"</[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/> // 该包的UUID,当解析内容出错时,引擎会报内容日志错误。当引擎最终使用的该包的UUID为`6989C411-4355-4756-9163-51C1DF5EF677`时,由于该UUID为保留的UUID,这会使该附加包从列表中隐藏
        string "name" // 当不存在时引擎会报内容日志错误
        string "description" : opt
        bool "platform_locked" : opt // 默认为false
        enumerated_value "pack_scope"<"global", "world", "any"> : opt // 默认为`any`
        bool "lock_template_options" // 当该包是世界模板包时是必须字段,当不是世界模板包时有效的该字段值会导致内容日志警告。引擎中实际有三种值:未定义、启用和禁用,该字段不存在或解析出错时为未定义,`true`时为启用,`false`时为禁用
        semver "version" // 该语义化版本字段不可为`*`,解析出错时报内容日志错误
        semver "min_engine_version" // 当该包是资源包或行为包时是必须字段,当不是资源包且不是行为包时有效的该字段值会导致内容日志警告。该语义化版本字段只支持数组格式,且值必须大于或等于`1.13.0`,否则会报内容日志错误
        semver "base_game_version" // 当该包是世界模板包时是必须字段,当不是世界模板包时有效的该字段值会导致内容日志警告。该语义化版本字段无限制,但不得大于当前游戏版本或小于`1.13.0`,否则会报内容日志错误
    }
    array "modules" // 若不存在,则会报内容日志错误
    {
        object "<any array element>"
        {
            string "uuid"</[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/> // 该模块的UUID,当解析内容出错时,引擎会报内容日志错误。如果包的UUID和某个模块的UUID重复,会报内容日志警告并以包的UUID的MD5杂凑值为种子通过一定算法生成新的包的UUID
            semver "version" // 该语义化版本字段不可为`*`,解析出错时报内容日志错误
            string "name" : opt
            enumerated_value "type"<"invalid", "resourcepack", "resources", "data", "plugin", "client_data", "interface", "script", "client_script", "world_template", "worldtemplate", "skin_pack", "skinpack", "persona_piece"> // `invalid`和其他非法字符串会导致内容日志错误
            enumerated_value "language"<"javascript"> : opt
            string "entry" : opt
        }
    }
    array "dependencies" : opt
    {
        object "<any array element>"
        {
            string "module_name" // 依赖的脚本API模块名,与`uuid`至少存在一个
            string "uuid"</[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}/> // 依赖的包或模块的UUID,当解析内容出错时,引擎会报内容日志错误。
            string "version" // 该语义化版本字段不可为`*`,解析出错时报内容日志错误
        }
    }
    object "metadata" : opt
    {
        string "url" : opt
        string "license" : opt
        array "authors" : opt
        {
            string "<any array element>"
        }
        object "generated_with" : opt
        {
            array "<any tool name>"
            {
                semver "<any array element>" // 该语义化版本字段不可为`*`
            }
        }
    }
    array "settings" : opt
    {
        object "<any label control>"
        {
            enumerated_value "type"<"label", "toggle", "slider", "step_slider", "dropdown", "input"> // 控件类型,当前应为`label`
            string "text" // 控件显示的文本
            string "name" // 该控件的名字,用于存值
        }
        object "<any toggle control>"
        {
            enumerated_value "type"<"label", "toggle", "slider", "step_slider", "dropdown", "input"> // 控件类型,当前应为`toggle`
            string "text"
            string "name"
            bool "default" // 默认值
            enumerated_value "control_locked"<"none", "pregame", "ingame"> : opt // 何时锁定该控件
        }
        object "<any slider control>"
        {
            enumerated_value "type"<"label", "toggle", "slider", "step_slider", "dropdown", "input"> // 控件类型,当前应为`slider`
            string "text"
            string "name"
            float "default"
            float "min"
            float "max"
            float "step" : opt // 步长,默认为`1`
            enumerated_value "control_locked"<"none", "pregame", "ingame"> : opt
        }
        object "<any step slider control>"
        {
            enumerated_value "type"<"label", "toggle", "slider", "step_slider", "dropdown", "input"> // 控件类型,当前应为`step_slider`
            string "text"
            string "name"
            int "default"<0-*>
            array "steps"
            {
                string "<any array element>" // 滑块中每步的文本
            }
            enumerated_value "control_locked"<"none", "pregame", "ingame"> : opt
        }
        object "<any dropdown control>"
        {
            enumerated_value "type"<"label", "toggle", "slider", "step_slider", "dropdown", "input"> // 控件类型,当前应为`dropdown`
            string "text"
            string "name"
            int "default"<0-*>
            array "options"
            {
                string "<any array element>" // 下拉菜单中每项的文本
            }
        }
        object "<any text input control>"
        {
            enumerated_value "type"<"label", "toggle", "slider", "step_slider", "dropdown", "input"> // 控件类型,当前应为`input`
            string "text"
            string "name"
            string "default"
            string "placeholder" : opt // 当用户尚未输入文本时输入框底部的暗文本
            enumerated_value "control_locked"<"none", "pregame", "ingame"> : opt
        }
    }
    array "legacy_module_dependencies" : opt // 等价于`0`格式版本下的依赖
    {
        object "<any array element>"
        {
            string "uuid" : opt
            string "version" : opt
        }
    }
    array "subpacks" : opt
    {
        object "<any array element>"
        {
            string "folder_name"
            string "name"
            int "memory_tier" : opt // 默认为`0`
        }
    }
    array "capabilities" : opt
    {
        enumerated_value "<any array element>"<"chemistry", "raytraced", "script_eval">
    }
    bool "has_education_metadata" : opt // 默认为`0`
}