BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:Content Patcher 制作指南/配置选项
← 模组:目录
配置选项功能让您向玩家提供可更改的配置,并基于配置在内容包中实现动态更改。
基本配置
概述
您可以使用 ConfigSchema
字段定义内容包的配置选项。Content Patcher 将自动添加 config.json
文件和游戏内配置菜单并允许玩家更改您提供的配置。
在内容包内您可以把配置选项当作令牌和条件使用,从而实现动态改变。
定义您的配置
首先,您需要为 Content Patcher 描述配置选项。添加一个 ConfigSchema
字段来描述您的内容包所提供的选项(该字段与 Changes
同级,因此应当将其放在包含补丁的 Changes
字段外)。每一个配置选项均包含一个作为令牌的键,以及含有以下字段的模型:
类型 | 作用 |
---|---|
AllowValues
|
(可选)一个以逗号分隔的字符串,代表玩家可选的值。如果省略,则允许任何值。 提示: 当您用 "true, false" 定义可启用/禁用的选项时,Content Patcher 将其识别为 bool 值(同时在配置菜单中以复选框形式显示此配置项)。
|
AllowBlank
|
(可选)该字段是否可以留空。如果值为空或 false,则将用默认值 Default 替换空字段。
|
AllowMultiple
|
(可选)玩家是否可以指定多个以逗号分隔的值。默认为 false。 |
Default
|
(可选,除非 AllowBlank 为 false)此配置项的默认值。如果 AllowMultiple 为 true,则可以包含多个以逗号分隔的值。如果省略,默认值为空。
|
配置选项的名称和字段不区分大小写。
示例
此 content.json
定义了一个名为 BillboardMaterial
的配置,并使用此配置令牌控制补丁效果。
{
"Format": "2.7.0",
"ConfigSchema": {
"Material": {
"AllowValues": "Wood, Metal",
"Default": "Wood"
}
},
"Changes": [
// 作为令牌
{
"Action": "Load",
"Target": "LooseSprites/Billboard",
"FromFile": "assets/material_{{Material}}.png"
},
// 作为条件
{
"Action": "Load",
"Target": "LooseSprites/Billboard",
"FromFile": "assets/material_wood.png",
"When": {
"Material": "Wood"
}
}
]
}
当您运行游戏时,Content Patcher 会自动生成一个 config.json
文件:
{
"Material": "Wood"
}
玩家可以编辑此 config.json
文件来改变配置,或使用游戏内配置菜单。
配置菜单
当您的内容包有配置选项时,Content Patcher 会为您的内容包自动添加一个游戏内的配置菜单(需要配合 Generic Mod Config Menu)。您可以为此配置菜单提供一些可选的字段来进一步优化它。
显示选项
现有两个控制配置菜单的字段:
类型 | 作用 |
---|---|
Description
|
(可选)配置选项的说明,在配置菜单界面中显示为提示信息。 |
Section
|
(可选)一个分段的标题。 请参阅下文分段章节。 |
分段
您可以用 Section
字段为您的配置选项分组。未被分组的选项会先显示,其余项则根据它们在 ConfigSchema
中出现的顺序依次列出。
例如,这些选项分到两个分段下:
{
"Format": "2.7.0",
"ConfigSchema": {
// 外观分段
"Material": {
"AllowValues": "Wood, Metal",
"Default": "Wood",
"Section": "Appearance"
},
"Texture": {
"AllowValues": "Grainy, Smooth",
"Default": "Grainy",
"Section": "Appearance"
},
// 行为分段
"Enabled": {
"AllowValues": "true, false",
"Default": "true",
"Section": "Behavior"
}
},
"Changes": [ ]
}
游戏内显示如下:
翻译
默认情况下,配置选项会直接显示在配置界面中,没有显示名称、提示信息或翻译:
您可以为配置添加翻译文件,从而提高界面的可读性与易用性。当您创建一个 i18n/default.json
后,您可以按照以下格式为您的字段添加翻译键:
键格式 | 描述 |
---|---|
config.<name>.name
|
配置选项名。 |
config.<name>.description
|
配置选项描述,一般在提示信息中显示。 |
config.<name>.values.<value>
|
在下拉列表或复选框中显示的 AllowValues 值。
|
config.section.<section>.name
|
分段名称。 |
config.section.<section>.description
|
分段描述,一般在提示信息中显示。 |
所有翻译键都是可选的,不区分大小写。
这个示例为以上的配置添加法语翻译:
// i18n/default.json(默认语言,英文)
{
"config.Material.name": "Material", // 为名为“Material”的选项添加翻译键
"config.Material.description": "The material style for the billboard background.", // 为“Material”的选项添加提示信息
"config.Material.values.Wood": "wood", // 为可选值“Wood”添加翻译键
"config.Material.values.Metal": "metal" // 为可选值“Metal”添加翻译键
}
// i18n/fr.json(法语)
{
"config.Material.name": "Matériel",
"config.Material.description": "Le style du matériel pour l'arrière-plan du panneau d'affichage.",
"config.Material.values.Wood": "bois",
"config.Material.values.Metal": "métal"
}
添加后法语玩家会看到以下界面:
请参阅翻译模组。