Преглед изворни кода

整理config,要实现一个excel to protobuf config的工具

tanghai пре 5 година
родитељ
комит
e7f87bbed0
33 измењених фајлова са 955 додато и 377 уклоњено
  1. 15 0
      Client-Server.sln
  2. 0 22
      Server/Model/Config/StartMachineConfig.cs
  3. 0 22
      Server/Model/Config/StartProcessConfig.cs
  4. 0 25
      Server/Model/Config/StartSceneConfig.cs
  5. 0 22
      Server/Model/Config/StartZoneConfig.cs
  6. 0 25
      Server/Model/Config/UnitConfig.cs
  7. 78 0
      Server/Model/Generate/Config/StartMachineConfig.cs
  8. 78 0
      Server/Model/Generate/Config/StartProcessConfig.cs
  9. 79 0
      Server/Model/Generate/Config/StartSceneConfig.cs
  10. 78 0
      Server/Model/Generate/Config/StartZoneConfig.cs
  11. 84 0
      Server/Model/Generate/Config/UnitConfig.cs
  12. 17 0
      Tools/ExcelExporter/ExcelExporter.csproj
  13. 110 0
      Tools/ExcelExporter/Program.cs
  14. 0 22
      Unity/Assets/Model/Config/StartMachineConfig.cs
  15. 0 11
      Unity/Assets/Model/Config/StartMachineConfig.cs.meta
  16. 0 22
      Unity/Assets/Model/Config/StartProcessConfig.cs
  17. 0 11
      Unity/Assets/Model/Config/StartProcessConfig.cs.meta
  18. 0 25
      Unity/Assets/Model/Config/StartSceneConfig.cs
  19. 0 11
      Unity/Assets/Model/Config/StartSceneConfig.cs.meta
  20. 0 22
      Unity/Assets/Model/Config/StartZoneConfig.cs
  21. 0 11
      Unity/Assets/Model/Config/StartZoneConfig.cs.meta
  22. 0 25
      Unity/Assets/Model/Config/UnitConfig.cs
  23. 0 11
      Unity/Assets/Model/Config/UnitConfig.cs.meta
  24. 0 71
      Unity/Assets/Model/Core/Object/ProtoObject.cs
  25. 78 0
      Unity/Assets/Model/Generate/Config/StartMachineConfig.cs
  26. 78 0
      Unity/Assets/Model/Generate/Config/StartProcessConfig.cs
  27. 79 0
      Unity/Assets/Model/Generate/Config/StartSceneConfig.cs
  28. 78 0
      Unity/Assets/Model/Generate/Config/StartZoneConfig.cs
  29. 84 0
      Unity/Assets/Model/Generate/Config/UnitConfig.cs
  30. 1 1
      Unity/Assets/Model/Module/Config/IConfig.cs
  31. 1 1
      Unity/Unity.Editor.csproj
  32. 5 5
      Unity/Unity.Model.csproj
  33. 12 12
      Unity/Unity.ThirdParty.csproj

+ 15 - 0
Client-Server.sln

@@ -31,6 +31,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server.ThirdParty", "Server
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Proto2CS", "Tools\Proto2CS\Proto2CS.csproj", "{8CE3862F-0F7C-4759-A0E5-266AC3991E32}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExcelExporter", "Tools\ExcelExporter\ExcelExporter.csproj", "{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -173,6 +175,18 @@ Global
 		{8CE3862F-0F7C-4759-A0E5-266AC3991E32}.Release|x64.Build.0 = Release|Any CPU
 		{8CE3862F-0F7C-4759-A0E5-266AC3991E32}.Release|x86.ActiveCfg = Release|Any CPU
 		{8CE3862F-0F7C-4759-A0E5-266AC3991E32}.Release|x86.Build.0 = Release|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Debug|x64.Build.0 = Debug|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Debug|x86.Build.0 = Debug|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Release|x64.ActiveCfg = Release|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Release|x64.Build.0 = Release|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Release|x86.ActiveCfg = Release|Any CPU
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -189,6 +203,7 @@ Global
 		{2F8409C1-DA01-D464-DBF2-00C6449E459E} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
 		{5CC830C4-3F2E-46AD-8160-3A0B032ACA5B} = {46008B91-6EC0-448B-8D1A-D8C6D2EEBEF4}
 		{8CE3862F-0F7C-4759-A0E5-266AC3991E32} = {4BC66C3C-D55F-4FAA-A2F5-29E8EB1797AE}
+		{E2F0B649-1A7B-4F01-A48B-A2825223C2B4} = {4BC66C3C-D55F-4FAA-A2F5-29E8EB1797AE}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {EABC01E3-3EB5-47EF-B46E-AAD8BB3585F1}

+ 0 - 22
Server/Model/Config/StartMachineConfig.cs

@@ -1,22 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartMachineConfigCategory : ACategory<StartMachineConfig>
-	{
-		public static StartMachineConfigCategory Instance;
-		public StartMachineConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartMachineConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public string InnerIP;
-		public string OuterIP;
-	}
-}

+ 0 - 22
Server/Model/Config/StartProcessConfig.cs

@@ -1,22 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartProcessConfigCategory : ACategory<StartProcessConfig>
-	{
-		public static StartProcessConfigCategory Instance;
-		public StartProcessConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartProcessConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public int MachineId;
-		public string InnerPort;
-	}
-}

+ 0 - 25
Server/Model/Config/StartSceneConfig.cs

@@ -1,25 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartSceneConfigCategory : ACategory<StartSceneConfig>
-	{
-		public static StartSceneConfigCategory Instance;
-		public StartSceneConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartSceneConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public int Process;
-		public int Zone;
-		public string SceneType;
-		public string Name;
-		public int OuterPort;
-	}
-}

+ 0 - 22
Server/Model/Config/StartZoneConfig.cs

@@ -1,22 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartZoneConfigCategory : ACategory<StartZoneConfig>
-	{
-		public static StartZoneConfigCategory Instance;
-		public StartZoneConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartZoneConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public string DBConnection;
-		public string DBName;
-	}
-}

+ 0 - 25
Server/Model/Config/UnitConfig.cs

@@ -1,25 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class UnitConfigCategory : ACategory<UnitConfig>
-	{
-		public static UnitConfigCategory Instance;
-		public UnitConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class UnitConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public string Name;
-		public string Desc;
-		public int Position;
-		public int Height;
-		public int Weight;
-	}
-}

+ 78 - 0
Server/Model/Generate/Config/StartMachineConfig.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class StartMachineConfigCategory : ProtoObject
+    {
+        public static StartMachineConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, StartMachineConfig> dict = new Dictionary<int, StartMachineConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<StartMachineConfig> list = new List<StartMachineConfig>();
+		
+        public StartMachineConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (StartMachineConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public StartMachineConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out StartMachineConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (StartMachineConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, StartMachineConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public StartMachineConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+	public partial class StartMachineConfig: IConfig
+	{
+        [ProtoMember(1, IsRequired  = true)]
+		public int Id { get; set; }
+        [ProtoMember(2, IsRequired  = true)]
+        public string InnerIP { get; set; }
+        [ProtoMember(3, IsRequired  = true)]
+		public string OuterIP { get; set; }
+	}
+}

+ 78 - 0
Server/Model/Generate/Config/StartProcessConfig.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class StartProcessConfigCategory : ProtoObject
+    {
+        public static StartProcessConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, StartProcessConfig> dict = new Dictionary<int, StartProcessConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<StartProcessConfig> list = new List<StartProcessConfig>();
+		
+        public StartProcessConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (StartProcessConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public StartProcessConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out StartProcessConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (StartProcessConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, StartProcessConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public StartProcessConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+	public partial class StartProcessConfig: IConfig
+	{
+        [ProtoMember(1, IsRequired  = true)]
+		public int Id { get; set; }
+        [ProtoMember(2, IsRequired  = true)]
+		public int MachineId { get; set; }
+        [ProtoMember(3, IsRequired  = true)]
+		public string InnerPort { get; set; }
+	}
+}

+ 79 - 0
Server/Model/Generate/Config/StartSceneConfig.cs

@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class StartSceneConfigCategory : ProtoObject
+    {
+        public static StartSceneConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, StartSceneConfig> dict = new Dictionary<int, StartSceneConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<StartSceneConfig> list = new List<StartSceneConfig>();
+		
+        public StartSceneConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (StartSceneConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public StartSceneConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out StartSceneConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (StartSceneConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, StartSceneConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public StartSceneConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+	public partial class StartSceneConfig: IConfig
+	{
+		[BsonId]
+		public int Id { get; set; }
+		public int Process;
+		public int Zone;
+		public string SceneType;
+		public string Name;
+		public int OuterPort;
+	}
+}

+ 78 - 0
Server/Model/Generate/Config/StartZoneConfig.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+	[Config]
+	public partial class StartZoneConfigCategory : ProtoObject
+	{
+		public static StartZoneConfigCategory Instance;
+		
+		[ProtoIgnore]
+		[BsonIgnore]
+		private Dictionary<int, StartZoneConfig> dict = new Dictionary<int, StartZoneConfig>();
+		
+		[BsonElement]
+		[ProtoMember(1)]
+		private List<StartZoneConfig> list = new List<StartZoneConfig>();
+		
+		public StartZoneConfigCategory()
+		{
+			Instance = this;
+		}
+		
+		public override void AfterDeserialization()
+		{
+			foreach (StartZoneConfig config in list)
+			{
+				this.dict.Add(config.Id, config);
+			}
+			list.Clear();
+			base.AfterDeserialization();
+		}
+		
+		public StartZoneConfig Get(int id)
+		{
+			this.dict.TryGetValue(id, out StartZoneConfig item);
+
+			if (item == null)
+			{
+				throw new Exception($"配置找不到,配置表名: {nameof (StartZoneConfig)},配置id: {id}");
+			}
+
+			return item;
+		}
+		
+		public bool Contain(int id)
+		{
+			return this.dict.ContainsKey(id);
+		}
+
+		public Dictionary<int, StartZoneConfig> GetAll()
+		{
+			return this.dict;
+		}
+
+		public StartZoneConfig GetOne()
+		{
+			if (this.dict == null || this.dict.Count <= 0)
+			{
+				return null;
+			}
+			return this.dict.Values.First();
+		}
+	}
+
+	public partial class StartZoneConfig: IConfig
+	{
+		[ProtoMember(1, IsRequired  = true)]
+		public int Id { get; set; }
+		[ProtoMember(2, IsRequired  = true)]
+		public string DBConnection { get; set; }
+		[ProtoMember(3, IsRequired  = true)]
+		public string DBName { get; set; }
+	}
+}

+ 84 - 0
Server/Model/Generate/Config/UnitConfig.cs

@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class UnitConfigCategory : ProtoObject
+    {
+        public static UnitConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, UnitConfig> dict = new Dictionary<int, UnitConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<UnitConfig> list = new List<UnitConfig>();
+		
+        public UnitConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (UnitConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public UnitConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out UnitConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (UnitConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, UnitConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public UnitConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+    public partial class UnitConfig: IConfig
+    {
+        [ProtoMember(1, IsRequired  = true)]
+        public int Id { get; set; }
+        [ProtoMember(2, IsRequired  = true)]
+        public string Name { get; set; }
+        [ProtoMember(3, IsRequired  = true)]
+        public string Desc { get; set; }
+        [ProtoMember(4, IsRequired  = true)]
+        public int Position { get; set; }
+        [ProtoMember(5, IsRequired  = true)]
+        public int Height { get; set; }
+        [ProtoMember(6, IsRequired  = true)]
+        public int Weight { get; set; }
+    }
+}

+ 17 - 0
Tools/ExcelExporter/ExcelExporter.csproj

@@ -0,0 +1,17 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+    <PropertyGroup>
+        <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
+        <RootNamespace>ConfigTool</RootNamespace>
+    </PropertyGroup>
+    
+    <PropertyGroup>
+        <OutputType>Exe</OutputType>
+        <TargetFramework>net5.0</TargetFramework>
+    </PropertyGroup>
+    
+    <ItemGroup>
+      <PackageReference Include="EPPlus" Version="5.5.2" />
+    </ItemGroup>
+
+</Project>

+ 110 - 0
Tools/ExcelExporter/Program.cs

@@ -0,0 +1,110 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using OfficeOpenXml;
+
+namespace ET
+{
+    struct HeadInfo
+    {
+        public string ClientServer;
+        public string FieldDesc;
+        public string FieldName;
+        public string FieldType;
+
+        public HeadInfo(string cs, string desc, string name, string type)
+        {
+            this.ClientServer = cs;
+            this.FieldDesc = desc;
+            this.FieldName = name;
+            this.FieldType = type;
+        }
+    }
+    
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
+            ExportExcel("/Users/tanghai/Documents/ET/Excel/StartMachineConfig.xlsx", new StringBuilder());
+        }
+
+        static void ExportExcel(string path, StringBuilder stringBuilder)
+        {
+            FileInfo fileInfo = new FileInfo(path);
+            using ExcelPackage p = new ExcelPackage(fileInfo);
+
+            List<HeadInfo> classField = new List<HeadInfo>();
+            foreach (ExcelWorksheet worksheet in p.Workbook.Worksheets)
+            {
+                ExportSheet(worksheet, classField);
+            }
+
+            ExportClass(Path.GetFileNameWithoutExtension(path), classField, "");
+
+            foreach (HeadInfo headInfo in classField)
+            {
+                Console.WriteLine($"{headInfo.FieldName} {headInfo.FieldType} {headInfo.FieldDesc}");
+            }
+        }
+        
+        static void ExportSheet(ExcelWorksheet worksheet, List<HeadInfo> classField)
+        {
+            const int row = 2;
+            for (int col = 3; col < worksheet.Dimension.Columns; ++col)
+            {
+                string fieldCS = worksheet.Cells[row, col].Text.Trim();
+                string fieldDesc = worksheet.Cells[row + 1, col].Text.Trim();
+                string fieldName = worksheet.Cells[row + 2, col].Text.Trim();
+                string fieldType = worksheet.Cells[row + 3, col].Text.Trim();
+                if (fieldName == "")
+                {
+                    continue;
+                }
+
+                classField.Add(new HeadInfo(fieldCS, fieldDesc, fieldName, fieldType));
+            }
+        }
+
+        static void ExportClass(string protoName, List<HeadInfo> classField, string exportDir)
+        {
+            string exportPath = Path.Combine(exportDir, $"{protoName}.cs");
+            using (FileStream txt = new FileStream(exportPath, FileMode.Create))
+            using (StreamWriter sw = new StreamWriter(txt))
+            {
+                StringBuilder sb = new StringBuilder();
+                sb.Append("namespace ET\n{");
+                sb.Append($"\t[Config]\n");
+                sb.Append($"\tpublic partial class {protoName}Category : ACategory<{protoName}>\n");
+                sb.Append("\t{\n");
+                sb.Append($"\t\tpublic static {protoName}Category Instance;\n");
+                sb.Append($"\t\tpublic {protoName}Category()\n");
+                sb.Append("\t\t{\n");
+                sb.Append($"\t\t\tInstance = this;\n");
+                sb.Append("\t\t}\n");
+                sb.Append("\t}\n\n");
+
+                sb.Append($"\tpublic partial class {protoName}: IConfig\n");
+                sb.Append("\t{\n");
+                sb.Append("\t\t[BsonId]\n");
+                sb.Append("\t\tpublic long Id { get; set; }\n");
+
+                for (int i = 0; i < classField.Count; i++)
+                {
+                    HeadInfo headInfo = classField[i];
+                    if (headInfo.ClientServer.StartsWith("#"))
+                    {
+                        continue;
+                    }
+                    sb.Append($"\t\tpublic {headInfo.FieldType} {headInfo.FieldName} {{ get; set;}};\n");
+                }
+
+                sb.Append("\t}\n");
+                sb.Append("}\n");
+
+                sw.Write(sb.ToString());
+            }
+        }
+    }
+}

+ 0 - 22
Unity/Assets/Model/Config/StartMachineConfig.cs

@@ -1,22 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartMachineConfigCategory : ACategory<StartMachineConfig>
-	{
-		public static StartMachineConfigCategory Instance;
-		public StartMachineConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartMachineConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public string InnerIP;
-		public string OuterIP;
-	}
-}

+ 0 - 11
Unity/Assets/Model/Config/StartMachineConfig.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: a58b7dfbd1f2447968265382cf244fe9
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 22
Unity/Assets/Model/Config/StartProcessConfig.cs

@@ -1,22 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartProcessConfigCategory : ACategory<StartProcessConfig>
-	{
-		public static StartProcessConfigCategory Instance;
-		public StartProcessConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartProcessConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public int MachineId;
-		public string InnerPort;
-	}
-}

+ 0 - 11
Unity/Assets/Model/Config/StartProcessConfig.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 39cf2e924f672d54190b2f6c0387eb7f
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 25
Unity/Assets/Model/Config/StartSceneConfig.cs

@@ -1,25 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartSceneConfigCategory : ACategory<StartSceneConfig>
-	{
-		public static StartSceneConfigCategory Instance;
-		public StartSceneConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartSceneConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public int Process;
-		public int Zone;
-		public string SceneType;
-		public string Name;
-		public int OuterPort;
-	}
-}

+ 0 - 11
Unity/Assets/Model/Config/StartSceneConfig.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 3cabfc3c98fa5584fa09d864a093f35d
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 22
Unity/Assets/Model/Config/StartZoneConfig.cs

@@ -1,22 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class StartZoneConfigCategory : ACategory<StartZoneConfig>
-	{
-		public static StartZoneConfigCategory Instance;
-		public StartZoneConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class StartZoneConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public string DBConnection;
-		public string DBName;
-	}
-}

+ 0 - 11
Unity/Assets/Model/Config/StartZoneConfig.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 909993798dcc71343b950e590de2fc00
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 25
Unity/Assets/Model/Config/UnitConfig.cs

@@ -1,25 +0,0 @@
-using MongoDB.Bson.Serialization.Attributes;
-
-namespace ET
-{
-	[Config]
-	public partial class UnitConfigCategory : ACategory<UnitConfig>
-	{
-		public static UnitConfigCategory Instance;
-		public UnitConfigCategory()
-		{
-			Instance = this;
-		}
-	}
-
-	public partial class UnitConfig: IConfig
-	{
-		[BsonId]
-		public long Id { get; set; }
-		public string Name;
-		public string Desc;
-		public int Position;
-		public int Height;
-		public int Weight;
-	}
-}

+ 0 - 11
Unity/Assets/Model/Config/UnitConfig.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: ef7492d2262be6e49ae8dc6278356e49
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 71
Unity/Assets/Model/Core/Object/ProtoObject.cs

@@ -7,81 +7,10 @@ namespace ET
 {
     public class ProtoObject: Object
     {
-
-#if UNITY_EDITOR
-        public virtual void BeginInitEditor()
-        {
-        }
-#endif
-        
         public object Clone()
         {
             byte[] bytes = ProtobufHelper.ToBytes(this);
             return ProtobufHelper.FromBytes(this.GetType(), bytes, 0, bytes.Length);
         }
     }
-
-    public class ProtoObject<M, N>: ProtoObject where M : new() where N : ProtoObject, IConfig
-    {
-        [ProtoIgnore]
-        public Dictionary<int, N> dict = new Dictionary<int, N>();
-
-        public static M Instance
-        {
-            get;
-            protected set;
-        }
-
-        public N Get(int id)
-        {
-            this.dict.TryGetValue(id, out N item);
-
-            if (item == null)
-            {
-                throw new Exception($"配置找不到,配置表名: {typeof(N).Name},配置id: {id}");
-            }
-
-            return item;
-        }
-
-        public bool ContainConfig(int id)
-        {
-            return this.dict.ContainsKey(id);
-        }
-
-        public Dictionary<int, N> GetAll()
-        {
-            return this.dict;
-        }
-
-        public N GetOne()
-        {
-            if (this.dict == null || this.dict.Count <= 0)
-            {
-                return null;
-            }
-
-            return this.dict.Values.First();
-        }
-
-        public N GetRandomOne()
-        {
-            if (this.dict == null || this.dict.Count <= 0)
-            {
-                return null;
-            }
-
-            int index = RandomHelper.RandomNumber(0,this.dict.Count);
-            foreach (var v in this.dict)
-            {
-                index--;
-                if (index < 0)
-                {
-                    return v.Value;
-                }
-            }
-            return null;
-            
-        }
-    }
 }

+ 78 - 0
Unity/Assets/Model/Generate/Config/StartMachineConfig.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class StartMachineConfigCategory : ProtoObject
+    {
+        public static StartMachineConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, StartMachineConfig> dict = new Dictionary<int, StartMachineConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<StartMachineConfig> list = new List<StartMachineConfig>();
+		
+        public StartMachineConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (StartMachineConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public StartMachineConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out StartMachineConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (StartMachineConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, StartMachineConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public StartMachineConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+	public partial class StartMachineConfig: IConfig
+	{
+        [ProtoMember(1, IsRequired  = true)]
+		public int Id { get; set; }
+        [ProtoMember(2, IsRequired  = true)]
+        public string InnerIP { get; set; }
+        [ProtoMember(3, IsRequired  = true)]
+		public string OuterIP { get; set; }
+	}
+}

+ 78 - 0
Unity/Assets/Model/Generate/Config/StartProcessConfig.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class StartProcessConfigCategory : ProtoObject
+    {
+        public static StartProcessConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, StartProcessConfig> dict = new Dictionary<int, StartProcessConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<StartProcessConfig> list = new List<StartProcessConfig>();
+		
+        public StartProcessConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (StartProcessConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public StartProcessConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out StartProcessConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (StartProcessConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, StartProcessConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public StartProcessConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+	public partial class StartProcessConfig: IConfig
+	{
+        [ProtoMember(1, IsRequired  = true)]
+		public int Id { get; set; }
+        [ProtoMember(2, IsRequired  = true)]
+		public int MachineId { get; set; }
+        [ProtoMember(3, IsRequired  = true)]
+		public string InnerPort { get; set; }
+	}
+}

+ 79 - 0
Unity/Assets/Model/Generate/Config/StartSceneConfig.cs

@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class StartSceneConfigCategory : ProtoObject
+    {
+        public static StartSceneConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, StartSceneConfig> dict = new Dictionary<int, StartSceneConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<StartSceneConfig> list = new List<StartSceneConfig>();
+		
+        public StartSceneConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (StartSceneConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public StartSceneConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out StartSceneConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (StartSceneConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, StartSceneConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public StartSceneConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+	public partial class StartSceneConfig: IConfig
+	{
+		[BsonId]
+		public int Id { get; set; }
+		public int Process;
+		public int Zone;
+		public string SceneType;
+		public string Name;
+		public int OuterPort;
+	}
+}

+ 78 - 0
Unity/Assets/Model/Generate/Config/StartZoneConfig.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+	[Config]
+	public partial class StartZoneConfigCategory : ProtoObject
+	{
+		public static StartZoneConfigCategory Instance;
+		
+		[ProtoIgnore]
+		[BsonIgnore]
+		private Dictionary<int, StartZoneConfig> dict = new Dictionary<int, StartZoneConfig>();
+		
+		[BsonElement]
+		[ProtoMember(1)]
+		private List<StartZoneConfig> list = new List<StartZoneConfig>();
+		
+		public StartZoneConfigCategory()
+		{
+			Instance = this;
+		}
+		
+		public override void AfterDeserialization()
+		{
+			foreach (StartZoneConfig config in list)
+			{
+				this.dict.Add(config.Id, config);
+			}
+			list.Clear();
+			base.AfterDeserialization();
+		}
+		
+		public StartZoneConfig Get(int id)
+		{
+			this.dict.TryGetValue(id, out StartZoneConfig item);
+
+			if (item == null)
+			{
+				throw new Exception($"配置找不到,配置表名: {nameof (StartZoneConfig)},配置id: {id}");
+			}
+
+			return item;
+		}
+		
+		public bool Contain(int id)
+		{
+			return this.dict.ContainsKey(id);
+		}
+
+		public Dictionary<int, StartZoneConfig> GetAll()
+		{
+			return this.dict;
+		}
+
+		public StartZoneConfig GetOne()
+		{
+			if (this.dict == null || this.dict.Count <= 0)
+			{
+				return null;
+			}
+			return this.dict.Values.First();
+		}
+	}
+
+	public partial class StartZoneConfig: IConfig
+	{
+		[ProtoMember(1, IsRequired  = true)]
+		public int Id { get; set; }
+		[ProtoMember(2, IsRequired  = true)]
+		public string DBConnection { get; set; }
+		[ProtoMember(3, IsRequired  = true)]
+		public string DBName { get; set; }
+	}
+}

+ 84 - 0
Unity/Assets/Model/Generate/Config/UnitConfig.cs

@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MongoDB.Bson.Serialization.Attributes;
+using ProtoBuf;
+
+namespace ET
+{
+    [Config]
+    public partial class UnitConfigCategory : ProtoObject
+    {
+        public static UnitConfigCategory Instance;
+		
+        [ProtoIgnore]
+        [BsonIgnore]
+        private Dictionary<int, UnitConfig> dict = new Dictionary<int, UnitConfig>();
+		
+        [BsonElement]
+        [ProtoMember(1)]
+        private List<UnitConfig> list = new List<UnitConfig>();
+		
+        public UnitConfigCategory()
+        {
+            Instance = this;
+        }
+		
+        public override void AfterDeserialization()
+        {
+            foreach (UnitConfig config in list)
+            {
+                this.dict.Add(config.Id, config);
+            }
+            list.Clear();
+            base.AfterDeserialization();
+        }
+		
+        public UnitConfig Get(int id)
+        {
+            this.dict.TryGetValue(id, out UnitConfig item);
+
+            if (item == null)
+            {
+                throw new Exception($"配置找不到,配置表名: {nameof (UnitConfig)},配置id: {id}");
+            }
+
+            return item;
+        }
+		
+        public bool Contain(int id)
+        {
+            return this.dict.ContainsKey(id);
+        }
+
+        public Dictionary<int, UnitConfig> GetAll()
+        {
+            return this.dict;
+        }
+
+        public UnitConfig GetOne()
+        {
+            if (this.dict == null || this.dict.Count <= 0)
+            {
+                return null;
+            }
+            return this.dict.Values.First();
+        }
+    }
+
+    public partial class UnitConfig: IConfig
+    {
+        [ProtoMember(1, IsRequired  = true)]
+        public int Id { get; set; }
+        [ProtoMember(2, IsRequired  = true)]
+        public string Name { get; set; }
+        [ProtoMember(3, IsRequired  = true)]
+        public string Desc { get; set; }
+        [ProtoMember(4, IsRequired  = true)]
+        public int Position { get; set; }
+        [ProtoMember(5, IsRequired  = true)]
+        public int Height { get; set; }
+        [ProtoMember(6, IsRequired  = true)]
+        public int Weight { get; set; }
+    }
+}

+ 1 - 1
Unity/Assets/Model/Module/Config/IConfig.cs

@@ -5,6 +5,6 @@
 	/// </summary>
 	public interface IConfig
 	{
-		long Id { get; set; }
+		int Id { get; set; }
 	}
 }

+ 1 - 1
Unity/Unity.Editor.csproj

@@ -62,6 +62,7 @@
      <Compile Include="Assets\Editor\ReferenceCollectorEditor\ReferenceCollectorEditor.cs" />
      <Compile Include="Assets\Editor\BuildEditor\BuildEditor.cs" />
      <Compile Include="Assets\Editor\RsyncEditor\RsyncEditor.cs" />
+     <Compile Include="Assets\Editor\Helper\MongoHelper.cs" />
      <Compile Include="Assets\Editor\ComponentViewEditor\ComponentViewEditor.cs" />
      <Compile Include="Assets\Editor\BuildEditor\ETBuildSettings.cs" />
      <Compile Include="Assets\Editor\ComponentViewEditor\TypeDrawer\CharTypeDrawer.cs" />
@@ -85,7 +86,6 @@
      <Compile Include="Assets\Editor\Proto2CsEditor\InnerProto2CS.cs" />
      <Compile Include="Assets\Editor\RsyncEditor\RsyncConfig.cs" />
      <Compile Include="Assets\Editor\ComponentViewEditor\TypeDrawer\StringTypeDrawer.cs" />
-     <Compile Include="Assets\Editor\Helper\MongoHelper.cs" />
      <None Include="Assets\Editor\Unity.Editor.asmdef" />
  <Reference Include="UnityEngine">
  <HintPath>/Applications/Unity/Hub/Editor/2020.2.2f1c1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.dll</HintPath>

+ 5 - 5
Unity/Unity.Model.csproj

@@ -52,6 +52,11 @@
     <ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
   </PropertyGroup>
   <ItemGroup>
+     <Compile Include="Assets\Model\Generate\Config\StartMachineConfig.cs" />
+     <Compile Include="Assets\Model\Generate\Config\StartProcessConfig.cs" />
+     <Compile Include="Assets\Model\Generate\Config\StartSceneConfig.cs" />
+     <Compile Include="Assets\Model\Generate\Config\StartZoneConfig.cs" />
+     <Compile Include="Assets\Model\Generate\Config\UnitConfig.cs" />
      <Compile Include="Assets\Model\Helper\PathHelper.cs" />
      <Compile Include="Assets\Model\Unit\TurnComponent.cs" />
      <Compile Include="Assets\Model\Core\DoubleMap.cs" />
@@ -72,7 +77,6 @@
      <Compile Include="Assets\Model\Module\Resource\AssetsLoaderAsync.cs" />
      <Compile Include="Assets\Model\Core\Helper\EnumHelper.cs" />
      <Compile Include="Assets\Model\Core\Object\BaseAttribute.cs" />
-     <Compile Include="Assets\Model\Config\UnitConfig.cs" />
      <Compile Include="Assets\Model\Module\CoroutineLock\CoroutineLockQueueType.cs" />
      <Compile Include="Assets\Model\Unit\Unit.cs" />
      <Compile Include="Assets\Model\Module\Message\MessageSerializeHelper.cs" />
@@ -131,12 +135,9 @@
      <Compile Include="Assets\Model\Module\Message\MessageHandlerAttribute.cs" />
      <Compile Include="Assets\Model\Core\Event\EventAttribute.cs" />
      <Compile Include="Assets\Model\Core\Object\NoObjectPool.cs" />
-     <Compile Include="Assets\Model\Config\StartMachineConfig.cs" />
-     <Compile Include="Assets\Model\Config\StartZoneConfig.cs" />
      <Compile Include="Assets\Model\Core\Object\Object.cs" />
      <Compile Include="Assets\Model\Module\Message\OpcodeHelper.cs" />
      <Compile Include="Assets\Model\Module\Numeric\INumericWatcher.cs" />
-     <Compile Include="Assets\Model\Config\StartSceneConfig.cs" />
      <Compile Include="Assets\Model\Module\Network\KService.cs" />
      <Compile Include="Assets\Model\Module\CoroutineLock\CoroutineLockComponent.cs" />
      <Compile Include="Assets\Model\Core\Object\EntityFactory.cs" />
@@ -172,7 +173,6 @@
      <Compile Include="Assets\Model\Core\Object\ObjectSystemAttribute.cs" />
      <Compile Include="Assets\Model\Module\Config\ConfigHelper.cs" />
      <Compile Include="Assets\Model\Core\Entity\Game.cs" />
-     <Compile Include="Assets\Model\Config\StartProcessConfig.cs" />
      <Compile Include="Assets\Model\Core\StructBsonSerialize.cs" />
      <Compile Include="Assets\Model\Module\CoroutineLock\CoroutineLock.cs" />
      <Compile Include="Assets\Model\Module\Message\ErrorCode.cs" />

+ 12 - 12
Unity/Unity.ThirdParty.csproj

@@ -58,6 +58,7 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\BufferPool.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ServiceModel\XmlProtoSerializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ExtensibleUtil.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\JsonReader.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ProtoConverterAttribute.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\DiscriminatedUnion.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\DecimalSerializer.cs" />
@@ -68,6 +69,7 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\RuntimeTypeModel.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\SByteSerializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\ParseableSerializer.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\ParserToken.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\TupleSerializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\MemberSpecifiedDecorator.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\TagDecorator.cs" />
@@ -77,6 +79,7 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\TypeFormatEventArgs.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\CompiledSerializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ProtoIgnoreAttribute.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\JsonMapper.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ProtoContractAttribute.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ImplicitFields.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\DefaultValueDecorator.cs" />
@@ -90,6 +93,7 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\SubItemSerializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Properties\AssemblyInfo.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\StringSerializer.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\JsonWriter.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\SystemTypeSerializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\BufferExtension.cs" />
@@ -99,8 +103,10 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\NetObjectCache.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ProtoReader.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\Int32Serializer.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\Lexer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\Int64Serializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\CallbackSet.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\Extensions.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\IProtoTypeSerializer.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Compiler\CompilerDelegates.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ProtoMemberAttribute.cs" />
@@ -111,8 +117,11 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\PrefixStyle.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\ImmutableCollectionDecorator.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\BooleanSerializer.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\JsonException.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\JsonData.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Compiler\Local.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\UriDecorator.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\UnityTypeBindings.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Compiler\CompilerContext.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\PropertyDecorator.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\SingleSerializer.cs" />
@@ -125,9 +134,11 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\TypeModel.InputOutput.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ServiceModel\ProtoBehaviorAttribute.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\BclHelpers.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\JsonMockWrapper.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\KeyValuePairProxy.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ProtoWriter.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\IProtoInputT.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\Netstandard15Polyfill.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\GlobalSuppressions.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\DataFormat.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ProtoMapAttribute.cs" />
@@ -139,6 +150,7 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\BasicList.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\ProtoSyntax.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Helpers.cs" />
+     <Compile Include="Assets\ThirdParty\LitJson\IJsonWrapper.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\ServiceModel\ProtoBehaviorExtensionElement.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\NullDecorator.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\AttributeMap.cs" />
@@ -148,18 +160,6 @@
      <Compile Include="Assets\ThirdParty\protobuf-net\Meta\TypeModel.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\DiscriminatedUnion.Serializable.cs" />
      <Compile Include="Assets\ThirdParty\protobuf-net\Serializers\FieldDecorator.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\JsonReader.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\Netstandard15Polyfill.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\Extensions.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\ParserToken.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\JsonException.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\IJsonWrapper.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\JsonWriter.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\UnityTypeBindings.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\JsonData.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\Lexer.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\JsonMapper.cs" />
-     <Compile Include="Assets\ThirdParty\LitJson\JsonMockWrapper.cs" />
      <None Include="Assets\ThirdParty\Unity.ThirdParty.asmdef" />
  <Reference Include="UnityEngine">
  <HintPath>/Applications/Unity/Hub/Editor/2020.2.2f1c1/Unity.app/Contents/Managed/UnityEngine/UnityEngine.dll</HintPath>