TH1/DotNet/Loader/ConfigLoaderInvoker.cs
2025-07-17 18:26:28 +08:00

49 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
namespace ET
{
[Invoke]
public class GetAllConfigBytes: AInvokeHandler<ConfigLoader.GetAllConfigBytes, ETTask<Dictionary<Type, byte[]>>>
{
public override async ETTask<Dictionary<Type, byte[]>> Handle(ConfigLoader.GetAllConfigBytes args)
{
Dictionary<Type, byte[]> output = new Dictionary<Type, byte[]>();
List<string> startConfigs = new List<string>()
{
"StartMachineConfigCategory",
"StartProcessConfigCategory",
"StartSceneConfigCategory",
"StartZoneConfigCategory",
};
HashSet<Type> configTypes = CodeTypes.Instance.GetTypes(typeof (ConfigAttribute));
foreach (Type configType in configTypes)
{
string configFilePath;
if (startConfigs.Contains(configType.Name))
{
configFilePath = $"../Config/Excel/s/{Options.Instance.StartConfig}/{configType.Name}.bytes";
}
else
{
configFilePath = $"../Config/Excel/s/{configType.Name}.bytes";
}
output[configType] = File.ReadAllBytes(configFilePath);
}
await ETTask.CompletedTask;
return output;
}
}
[Invoke]
public class GetOneConfigBytes: AInvokeHandler<ConfigLoader.GetOneConfigBytes, byte[]>
{
public override byte[] Handle(ConfigLoader.GetOneConfigBytes args)
{
byte[] configBytes = File.ReadAllBytes($"../Config/Excel/s/{args.ConfigName}.bytes");
return configBytes;
}
}
}