查看“模组:制作指南/APIs/Config”的源代码
←
模组:制作指南/APIs/Config
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
{{../../header}} {{翻译}} 您可以让用户通过标准的<samp>config.json</samp>文件配置您的模组。SMAPI将自动创建并负责读取、规范化和更新它。 ==配置模型== ===创建配置模型=== The ''config model'' is a C# class you create, with properties representing the settings you want to store. It can contain almost anything from a few boolean fields to a complex object graph (though you should try to keep things simple for players). <br> 这是一个简单的配置模型: <syntaxhighlight lang="c#"> public sealed class ModConfig { public bool ExampleBoolean { get; set; } public int ExampleNumber { get; set; } } </syntaxhighlight> 这个模型将会保存到<samp>config.json</samp>中,内容如下: <syntaxhighlight lang="json"> { "ExampleBoolean": false, "ExampleNumber": 0 } </syntaxhighlight> 这个属性必须是公开的。 ===默认值=== 你可以在数据模型中设置默认值: <syntaxhighlight lang="c#"> public sealed class ModConfig { public bool ExampleBoolean { get; set; } = true; public int ExampleNumber { get; set; } = 5; } </syntaxhighlight> 或使用构造函数来设置默认值: <syntaxhighlight lang="c#"> public sealed class ModConfig { public bool ExampleBoolean { get; set; } public int ExampleNumber { get; set; } public ModConfig() { this.ExampleBoolean = true; this.ExampleNumber = 5; } } </syntaxhighlight> ==使用配置文件== 读取<samp>config.json</samp>(SMAPI会自动创建它): <ol> <li>Create your [[#Config model|config model]].</li> <li>Access the config values in your <samp>ModEntry</samp> class: <syntaxhighlight lang="c#"> /// <summary>The main entry point for the mod.</summary> internal sealed class ModEntry : Mod { /********* ** Properties *********/ /// <summary>The mod configuration from the player.</summary> private ModConfig Config; /********* ** Public methods *********/ /// <summary>The mod entry point, called after the mod is first loaded.</summary> /// <param name="helper">Provides simplified APIs for writing mods.</param> public override void Entry(IModHelper helper) { this.Config = this.Helper.ReadConfig<ModConfig>(); bool exampleBool = this.Config.ExampleBoolean; } } </syntaxhighlight> </li> </ol> 就是这样!当玩家启动游戏时,如果<samp>config.json</samp>文件尚不存在,SMAPI就会使用您在模型中提供的默认配置选项自动创建该它。如果您需要保存部分更改,就可以使用<samp>this.Helper.WriteConfig(this.Config)</samp>来进行。 请注意,如果用户没有提供有效的JSON,那么<samp>ReadConfig</samp>会引发异常。 ==按键绑定设置== : {{main article|模组:制作指南/APIs/Input}} You can use SMAPI's [[Modding:Modder Guide/APIs/Input#KeybindList|<samp>KeybindList</samp>]] in your model to let users configure keybinds. This automatically supports multi-key or alternative bindings (''e.g.,'' to support split-screen mode): <syntaxhighlight lang="c#"> class ModConfig { public KeybindList ToggleKey { get; set; } = KeybindList.Parse("LeftShift + F2, LeftTrigger"); } </syntaxhighlight> The value is automatically written/parsed in the <samp>config.json</samp> file as a string: <syntaxhighlight lang="json"> { "ToggleKey": "LeftShift + F2, LeftTrigger" } </syntaxhighlight> [[en:Modding:Modder Guide/APIs/Config]]
该页面使用的模板:
Template:Main article
(
查看源代码
)
Template:Quote
(
查看源代码
)
Template:Quote/styles.css
(
查看源代码
)
Template:翻译
(
查看源代码
)
模组:制作指南/header
(
查看源代码
)
返回至
模组:制作指南/APIs/Config
。
导航菜单
个人工具
创建账户
登录
名字空间
模组
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
台灣正體
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
未翻译的页面
帮助:编辑入门
随机页面
官方链接
官方网站
官方论坛
官方商品
Discord
Reddit
工具
链入页面
相关更改
上传文件
特殊页面
页面信息