123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using UnityEngine;
- namespace ET.Client
- {
- [Invoke]
- public class GetAllConfigBytes: AInvokeHandler<ConfigComponent.GetAllConfigBytes, Dictionary<Type, byte[]>>
- {
- public override Dictionary<Type, byte[]> Handle(ConfigComponent.GetAllConfigBytes args)
- {
- Dictionary<Type, byte[]> output = new Dictionary<Type, byte[]>();
- HashSet<Type> configTypes = EventSystem.Instance.GetTypes(typeof (ConfigAttribute));
-
- if (Define.IsEditor)
- {
- string ct = "cs";
- GlobalConfig globalConfig = Resources.Load<GlobalConfig>("GlobalConfig");
- CodeMode codeMode = globalConfig.CodeMode;
- switch (codeMode)
- {
- case CodeMode.Client:
- ct = "c";
- break;
- case CodeMode.Server:
- ct = "s";
- break;
- case CodeMode.ClientServer:
- ct = "cs";
- break;
- default:
- throw new ArgumentOutOfRangeException();
- }
- List<string> startConfigs = new List<string>()
- {
- "StartMachineConfigCategory",
- "StartProcessConfigCategory",
- "StartSceneConfigCategory",
- "StartZoneConfigCategory",
- };
- foreach (Type configType in configTypes)
- {
- string configFilePath;
- if (startConfigs.Contains(configType.Name))
- {
- configFilePath = $"../Config/GenFromExcel/{ct}/{Options.Instance.StartConfig}/{configType.Name}.bytes";
- }
- else
- {
- configFilePath = $"../Config/GenFromExcel/{ct}/{configType.Name}.bytes";
- }
- output[configType] = File.ReadAllBytes(configFilePath);
- }
- }
- else
- {
- using (Root.Instance.Scene.AddComponent<ResourcesComponent>())
- {
- const string configBundleName = "config.unity3d";
- ResourcesComponent.Instance.LoadBundle(configBundleName);
-
- foreach (Type configType in configTypes)
- {
- TextAsset v = ResourcesComponent.Instance.GetAsset(configBundleName, configType.Name) as TextAsset;
- output[configType] = v.bytes;
- }
- }
- }
- return output;
- }
- }
-
- [Invoke]
- public class GetOneConfigBytes: AInvokeHandler<ConfigComponent.GetOneConfigBytes, byte[]>
- {
- public override byte[] Handle(ConfigComponent.GetOneConfigBytes args)
- {
- var abNames = args.ConfigName.Split('.');
- TextAsset v = ResourcesComponent.Instance.GetAsset("config.unity3d", abNames[1]) as TextAsset;
- return v.bytes;
- //throw new NotImplementedException("client cant use LoadOneConfig");
- }
- }
- }
|