集成配置

集成配置

允许您注册自定义的XML配置文件,这些文件可以从本地或服务器加载(视情况而定)。这样您的XML就能像原版XML加载一样运作。无需再确保所有客户端都拥有相同的XML配置值。

实用工具

该模组是针对7D2D Alpha 21版本开发的

适用于单人游戏、游戏内托管和专用服务器。

必须在服务器(如果有)和客户端上同时存在。

入门指南:

如果你的模组想使用此功能:

在你的项目中引用IntegratedConfigs.dll(发布时无需在模组内提供此引用。7D2D会在运行时从该模组加载IntegratedConfigs.dll依赖项)

为给定的XML创建一个C#类(例如CustomOptionsConfig.cs

IIntegratedConfig接口扩展并实现,以便能够被找到并注册。

using System.Collections;
using IntegratedConfigs.Core.Entities;
using IntegratedConfigs.Scripts;

namespace YourNamespace
{
    public class CustomOptionsConfig : IIntegratedConfig
    {
        public XmlLoadInfo RegistrationInfo { get; }
        private const string XML_NAME = "CustomConfig";
        
        // 此处提供此代码块作为
        public static readonly string ModName = "你的模组名称";
        public static readonly Mod Mod = ModManager.GetMod(ModName, true);
        public static readonly string ModPath = Mod.Path;
        // 一个示例。
        public CustomOptionsConfig()
        {
            RegistrationInfo = new XmlLoadInfo(XML_NAME, $"{ModPath}/你的XML文件/位置",
                false, true, OnLoad, null, OnLoadComplete);
        }
        
        private IEnumerator OnLoad(XmlFile xmlFile)
        {
            Log.Out($"自定义XML加载调用: {XML_NAME}");
            yield break;
        }
        
        private static IEnumerator OnLoadComplete()
        {
            Log.Out($"自定义XML加载完成调用: {XML_NAME}");
            yield break;
        }
    }
}

日志示例:

2023-08-05T17:10:52 10.583 INF [集成配置] - 正在注册自定义XML Mod1选项
2023-08-05T17:10:52 10.584 INF [集成配置] - 正在注册自定义XML Mod2选项
...
...
...
2023-08-05T17:11:16 35.245 INF 从服务器接收到配置文件 'Mod1Options'。长度: 35
2023-08-05T17:11:16 35.246 INF 从服务器接收到配置文件 'Mod2Options'。长度:35
...
...
...
2023-08-05T17:11:16 35.295 INF [模组1] - 自定义XML加载调用:Mod1Options XmlFile
2023-08-05T17:11:16 35.329 INF [模组1] - 自定义XML加载完成回调:Mod1Options
2023-08-05T17:11:16 35.345 INF 已加载(接收):Mod1选项
2023-08-05T17:11:16 35.396 INF [Mod2] - 自定义XML加载调用:Mod2Options XmlFile
2023-08-05T17:11:17 35.641 INF [模组2] - 自定义XML加载完成回调:Mod2Options
2023-08-05T17:11:17 35.735 INF 已加载(接收):Mod2选项

日志"Loaded (received): Mod1Options"若使用本地副本,则会显示为"Loaded (local): Mod1Options"。(主机/单人模式)

如果你喜欢所看到的内容,考虑支持更多类似的模组创作吧!(Vandracon的Patreon)

虽然我尽量避免这种情况发生,但有时原版更新会导致问题。如果您发现错误需要报告,或想提交拉取请求以提升模组质量,请随时在此处或GitHub上报告。