From 60a5caebaed7a86988b2694c872bb64c85ab6af6 Mon Sep 17 00:00:00 2001 From: ALEXTANGXIAO <574809918@qq.com> Date: Sat, 29 Jul 2023 01:03:35 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81Scene.Create=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=B8=80=E4=B8=AA=E6=B3=9B=E5=9E=8B?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=8E=A5=E5=8F=A3=E3=80=82=202=E3=80=81Scene?= =?UTF-8?q?Config=E5=A2=9E=E5=8A=A0=E4=BA=86SceneTypeConfig=E5=92=8CSceneS?= =?UTF-8?q?ubType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、Scene.Create接口增加了一个泛型方法接口。 2、SceneConfig增加了SceneTypeConfig和SceneSubType --- .../GameScripts/DotNet/Core/CoreErrorCode.cs | 1 + .../DotNet/Core/Entitas/Scene/Scene.cs | 57 +++++------ .../Entitas/Scene/SceneTypeConfigToEnum.cs | 89 ++++++++++++++++++ .../Scene/SceneTypeConfigToEnum.cs.meta | 3 + .../Core/Exporter/Excel/ExcelExporter.cs | 88 ++++++----------- .../DotNet/Core/Helper/ExcelHelper.cs | 34 +++++++ .../DotNet/Core/Helper/ExcelHelper.cs.meta | 3 + .../DotNet/Core/Helper/FileHelper.cs | 10 ++ .../Network/Base/Server/SceneConfigInfo.cs | 6 +- .../DotNet/Core/Network/Base/Server/Server.cs | 4 +- .../Message/Addressable/AddressableHelper.cs | 2 +- .../DotNet/Core/TEngineSettingsHelper.cs | 37 ++++---- DotNet/Config/Binary/SceneConfigData.bytes | Bin 141 -> 138 bytes DotNet/Config/Excel/Server/SceneConfig.xlsx | Bin 10369 -> 13845 bytes DotNet/Config/Excel/Version.txt | 2 +- .../Config/Json/Server/SceneConfigData.Json | 8 +- .../ConfigTable/Entity/SceneConfig.cs | 4 +- .../src/Generate/CustomExport/SceneType.cs | 21 ++++- .../src/Helper/AddressableSceneHelper.cs | 4 +- DotNet/Logic/src/Helper/ConfigTableSystem.cs | 12 ++- DotNet/Logic/src/OnCreateScene.cs | 38 ++------ 21 files changed, 263 insertions(+), 160 deletions(-) create mode 100644 Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs create mode 100644 Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs.meta create mode 100644 Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs create mode 100644 Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs.meta diff --git a/Assets/GameScripts/DotNet/Core/CoreErrorCode.cs b/Assets/GameScripts/DotNet/Core/CoreErrorCode.cs index 6df44d9c..0febebbb 100644 --- a/Assets/GameScripts/DotNet/Core/CoreErrorCode.cs +++ b/Assets/GameScripts/DotNet/Core/CoreErrorCode.cs @@ -6,5 +6,6 @@ namespace TEngine.Core public const uint ErrNotFoundRoute = 100000003; // 没有找到Route消息 public const uint ErrRouteTimeout = 100000004; // 发送Route消息超时 public const uint Error_NotFindEntity = 100000008; // 没有找到Entity + public const uint Error_CopyTimeout = 100000009; // CopyTimeout不能小于或等于0 } } \ No newline at end of file diff --git a/Assets/GameScripts/DotNet/Core/Entitas/Scene/Scene.cs b/Assets/GameScripts/DotNet/Core/Entitas/Scene/Scene.cs index 72d6fdb9..3db147d1 100644 --- a/Assets/GameScripts/DotNet/Core/Entitas/Scene/Scene.cs +++ b/Assets/GameScripts/DotNet/Core/Entitas/Scene/Scene.cs @@ -9,7 +9,7 @@ using TEngine.Core.DataBase; #pragma warning disable CS8618 namespace TEngine { - public sealed class Scene : Entity, INotSupportedPool + public class Scene : Entity, INotSupportedPool { public string Name { get; private set; } public uint LocationId { get; private set; } @@ -18,7 +18,8 @@ namespace TEngine public SceneConfigInfo SceneInfo { get; private set; } #endif #if TENGINE_NET - public string SceneType { get; private set; } + public int SceneType { get; private set; } + public int SceneSubType { get; private set; } public World World { get; private set; } public Server Server { get; private set; } #endif @@ -36,7 +37,8 @@ namespace TEngine #if TENGINE_NET World = null; Server = null; - SceneType = null; + SceneType = 0; + SceneSubType = 0; #endif #if TENGINE_UNITY SceneInfo = null; @@ -58,6 +60,16 @@ namespace TEngine } } #if TENGINE_UNITY + public static Scene Create() + { + var sceneId = IdFactory.NextRunTimeId(); + var scene = Create(sceneId, sceneId); + scene.Scene = scene; + scene.Parent = scene; + Scenes.Add(scene); + return scene; + } + public static Scene Create(string name) { var sceneId = IdFactory.NextRunTimeId(); @@ -68,6 +80,7 @@ namespace TEngine Scenes.Add(scene); return scene; } + public void CreateSession(string remoteAddress, NetworkProtocolType networkProtocolType, Action onConnectComplete, Action onConnectFail,Action onConnectDisconnect, int connectTimeout = 5000) { var address = NetworkHelper.ToIPEndPoint(remoteAddress); @@ -78,19 +91,20 @@ namespace TEngine } #else /// - /// 创建一个Scene、但这个Scene是在某个Scene下面的Scene + /// 创建一个Scene、但这个Scene是在某个Scene下面的Scene。 /// /// - /// /// + /// + /// /// - public static async FTask Create(Scene scene, string sceneType, string sceneName) + public static async FTask Create(Scene scene, int sceneType, int sceneSubType) where T : Scene, new() { - var newScene = Create(scene); + var newScene = Create(scene); newScene.Scene = scene; newScene.Parent = scene; - newScene.Name = sceneName; newScene.SceneType = sceneType; + newScene.SceneSubType = sceneSubType; newScene.Server = scene.Server; newScene.LocationId = scene.Server.Id; @@ -99,13 +113,13 @@ namespace TEngine newScene.World = scene.World; } - if (!string.IsNullOrEmpty(sceneType)) + if (sceneType > 0) { await EventSystem.Instance.PublishAsync(new OnCreateScene(scene)); } Scenes.Add(scene); - return scene; + return newScene; } /// @@ -113,14 +127,14 @@ namespace TEngine /// /// /// - /// + /// /// /// /// /// /// /// - public static async FTask Create(Server server, string sceneType, string sceneName, long sceneId =0, uint worldId =0, string networkProtocol = null, string outerBindIp = null, int outerPort = 0) + public static async FTask Create(Server server, int sceneType = 0, int sceneSubType = 0, long sceneId = 0, uint worldId = 0, string networkProtocol = null, string outerBindIp = null, int outerPort = 0) { if (sceneId == 0) { @@ -130,8 +144,8 @@ namespace TEngine var scene = Create(sceneId, sceneId); scene.Scene = scene; scene.Parent = scene; - scene.Name = sceneName; scene.SceneType = sceneType; + scene.SceneSubType = sceneSubType; scene.Server = server; scene.LocationId = server.Id; @@ -150,22 +164,9 @@ namespace TEngine serverNetworkComponent.Initialize(networkProtocolType, NetworkTarget.Outer, address); } - if (!string.IsNullOrEmpty(sceneType)) + if (sceneType > 0) { - switch (sceneType) - { - case "Addressable": - { - scene.AddComponent(); - break; - } - default: - { - // 没有SceneType目前只有代码创建的Scene才会这样、目前只有Server的Scene是这样 - await EventSystem.Instance.PublishAsync(new OnCreateScene(scene)); - break; - } - } + await EventSystem.Instance.PublishAsync(new OnCreateScene(scene)); } Scenes.Add(scene); diff --git a/Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs b/Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs new file mode 100644 index 00000000..4a41616f --- /dev/null +++ b/Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs @@ -0,0 +1,89 @@ +#if TENGINE_NET +using System.Text; +using TEngine.Core; +using TEngine.Helper; + +namespace TEngine.CustomExport; + +public sealed class SceneTypeConfigToEnum : ACustomExport +{ + public override void Run() + { + var fullPath = FileHelper.GetFullPath("../../../Config/Excel/Server/SceneConfig.xlsx"); + using var excelPackage = ExcelHelper.LoadExcel(fullPath); + var sceneType = new Dictionary(); + var sceneSubType = new Dictionary(); + var sceneTypeConfig = excelPackage.Workbook.Worksheets["SceneTypeConfig"]; + + for (var row = 3; row <= sceneTypeConfig.Dimension.Rows; row++) + { + var sceneTypeId = sceneTypeConfig.GetCellValue(row, 1); + var sceneTypeStr = sceneTypeConfig.GetCellValue(row, 2); + + if (string.IsNullOrEmpty(sceneTypeId) || string.IsNullOrEmpty(sceneTypeStr)) + { + continue; + } + + sceneType.Add(sceneTypeId, sceneTypeStr); + } + + var sceneSubTypeConfig = excelPackage.Workbook.Worksheets["SceneSubTypeConfig"]; + + for (var row = 3; row <= sceneSubTypeConfig.Dimension.Rows; row++) + { + var sceneSubTypeId = sceneSubTypeConfig.GetCellValue(row, 1); + var sceneSubTypeStr = sceneSubTypeConfig.GetCellValue(row, 2); + + if (string.IsNullOrEmpty(sceneSubTypeId) || string.IsNullOrEmpty(sceneSubTypeStr)) + { + continue; + } + + sceneSubType.Add(sceneSubTypeId, sceneSubTypeStr); + } + + if (sceneType.Count > 0 || sceneSubType.Count > 0) + { + Write(CustomExportType.Server, sceneType, sceneSubType); + } + } + + private void Write(CustomExportType customExportType, Dictionary sceneTypes, Dictionary sceneSubType) + { + var strBuilder = new StringBuilder(); + var dicBuilder = new StringBuilder(); + + strBuilder.AppendLine("namespace TEngine\n{"); + strBuilder.AppendLine("\t// 生成器自动生成,请不要手动编辑。"); + strBuilder.AppendLine("\tpublic static class SceneType\n\t{"); + dicBuilder.AppendLine("\n\t\tpublic static readonly Dictionary SceneTypeDic = new Dictionary()\n\t\t{"); + + foreach (var (sceneTypeId, sceneTypeStr) in sceneTypes) + { + dicBuilder.AppendLine($"\t\t\t{{ \"{sceneTypeStr}\", {sceneTypeId} }},"); + strBuilder.AppendLine($"\t\tpublic const int {sceneTypeStr} = {sceneTypeId};"); + } + + dicBuilder.AppendLine("\t\t};"); + strBuilder.Append(dicBuilder); + strBuilder.AppendLine("\t}\n"); + + strBuilder.AppendLine("\t// 生成器自动生成,请不要手动编辑。"); + strBuilder.AppendLine("\tpublic static class SceneSubType\n\t{"); + + dicBuilder.Clear(); + dicBuilder.AppendLine("\n\t\tpublic static readonly Dictionary SceneSubTypeDic = new Dictionary()\n\t\t{"); + foreach (var (sceneSubTypeId, sceneSubTypeStr) in sceneSubType) + { + dicBuilder.AppendLine($"\t\t\t{{ \"{sceneSubTypeStr}\", {sceneSubTypeId} }},"); + strBuilder.AppendLine($"\t\tpublic const int {sceneSubTypeStr} = {sceneSubTypeId};"); + } + dicBuilder.AppendLine("\t\t};"); + strBuilder.Append(dicBuilder); + strBuilder.AppendLine("\t}\n}"); + + Write("SceneType.cs", strBuilder.ToString(), customExportType); + } +} +#endif \ No newline at end of file diff --git a/Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs.meta b/Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs.meta new file mode 100644 index 00000000..1b33f896 --- /dev/null +++ b/Assets/GameScripts/DotNet/Core/Entitas/Scene/SceneTypeConfigToEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d254c1aefb624046ab545bd8cebbe57c +timeCreated: 1690561569 \ No newline at end of file diff --git a/Assets/GameScripts/DotNet/Core/Exporter/Excel/ExcelExporter.cs b/Assets/GameScripts/DotNet/Core/Exporter/Excel/ExcelExporter.cs index 895e561d..d25fc203 100644 --- a/Assets/GameScripts/DotNet/Core/Exporter/Excel/ExcelExporter.cs +++ b/Assets/GameScripts/DotNet/Core/Exporter/Excel/ExcelExporter.cs @@ -4,17 +4,12 @@ using System.Reflection; using System.Runtime.Loader; using System.Text; using System.Text.RegularExpressions; +using TEngine.CustomExport; using TEngine.DataStructure; -using TEngine.Core; using Newtonsoft.Json; using OfficeOpenXml; +using TEngine.Helper; using static System.String; -#pragma warning disable CS8625 -#pragma warning disable CS8604 -#pragma warning disable CS8602 -#pragma warning disable CS8601 -#pragma warning disable CS8600 -#pragma warning disable CS8618 namespace TEngine.Core; @@ -28,10 +23,14 @@ public sealed class ExcelExporter private readonly OneToManyList _tables = new OneToManyList(); private readonly ConcurrentDictionary _excelTables = new ConcurrentDictionary(); private readonly ConcurrentDictionary _worksheets = new ConcurrentDictionary(); + + static ExcelExporter() + { + ExcelPackage.LicenseContext = LicenseContext.NonCommercial; + } public ExcelExporter(ExportType exportType) { - ExcelPackage.LicenseContext = LicenseContext.NonCommercial; var versionFilePath = Define.ExcelVersionFile; switch (exportType) @@ -86,6 +85,9 @@ public sealed class ExcelExporter task.Add(Task.Run(customExport.Run)); } } + + // 添加生成SceneType的自定义导出 + task.Add(Task.Run(new SceneTypeConfigToEnum().Run)); Task.WaitAll(task.ToArray()); } @@ -226,7 +228,7 @@ public sealed class ExcelExporter { // 列名字第一个字符是#不参与导出 - var colName = GetCellValue(worksheet, 5, col); + var colName = worksheet.GetCellValue(5, col); if (colName.StartsWith("#", StringComparison.Ordinal)) { continue; @@ -234,14 +236,14 @@ public sealed class ExcelExporter // 数值列不参与导出 - var numericalCol = GetCellValue(worksheet, 3, col); + var numericalCol = worksheet.GetCellValue(3, col); if (numericalCol != "" && numericalCol != "0") { continue; } - var serverType = GetCellValue(worksheet, 1, col); - var clientType = GetCellValue(worksheet, 2, col); + var serverType = worksheet.GetCellValue(1, col); + var clientType = worksheet.GetCellValue(2, col); var isExportServer = !IsNullOrEmpty(serverType) && serverType != "0"; var isExportClient = !IsNullOrEmpty(clientType) && clientType != "0"; @@ -350,7 +352,7 @@ public sealed class ExcelExporter foreach (var colIndex in cols) { - var colName = GetCellValue(excelWorksheet, 5, colIndex); + var colName = excelWorksheet.GetCellValue(5, colIndex); if (colNameSet.Contains(colName)) { @@ -363,19 +365,19 @@ public sealed class ExcelExporter if (isServer) { - colType = GetCellValue(excelWorksheet, 1, colIndex); + colType = excelWorksheet.GetCellValue(1, colIndex); if (IsNullOrEmpty(colType) || colType == "0") { - colType = GetCellValue(excelWorksheet, 2, colIndex); + colType = excelWorksheet.GetCellValue(2, colIndex); } } else { - colType = GetCellValue(excelWorksheet, 2, colIndex); + colType = excelWorksheet.GetCellValue(2, colIndex); } - var remarks = GetCellValue(excelWorksheet, 4, colIndex); + var remarks = excelWorksheet.GetCellValue(4, colIndex); fileBuilder.Append($"\n\t\t[ProtoMember({++index}, IsRequired = true)]\n"); fileBuilder.Append( @@ -436,12 +438,12 @@ public sealed class ExcelExporter for (var row = 7; row <= rows; row++) { - if (GetCellValue(excelWorksheet, row, 1).StartsWith("#", StringComparison.Ordinal)) + if (excelWorksheet.GetCellValue(row, 1).StartsWith("#", StringComparison.Ordinal)) { continue; } - var id = GetCellValue(excelWorksheet, row, 3); + var id = excelWorksheet.GetCellValue(row, 3); if (idCheck.Contains(id)) { @@ -525,21 +527,21 @@ public sealed class ExcelExporter { string colType; var colIndex = cols[i]; - var colName = GetCellValue(excelWorksheet, 5, colIndex); - var value = GetCellValue(excelWorksheet, row, colIndex); + var colName = excelWorksheet.GetCellValue(5, colIndex); + var value = excelWorksheet.GetCellValue(row, colIndex); if (isServer) { - colType = GetCellValue(excelWorksheet, 1, colIndex); + colType = excelWorksheet.GetCellValue(1, colIndex); if (IsNullOrEmpty(colType) || colType == "0") { - colType = GetCellValue(excelWorksheet, 2, colIndex); + colType = excelWorksheet.GetCellValue(2, colIndex); } } else { - colType = GetCellValue(excelWorksheet, 2, colIndex); + colType = excelWorksheet.GetCellValue(2, colIndex); } try @@ -566,7 +568,7 @@ public sealed class ExcelExporter dynamicInfo.Json.AppendLine($"{json},"); } } - + public ExcelWorksheet LoadExcel(string name, bool isAddToDic) { if (_worksheets.TryGetValue(name, out var worksheet)) @@ -574,7 +576,7 @@ public sealed class ExcelExporter return worksheet; } - worksheet = new ExcelPackage(name).Workbook.Worksheets[0]; + worksheet = ExcelHelper.LoadExcel(name).Workbook.Worksheets[0]; if (isAddToDic) { @@ -585,26 +587,6 @@ public sealed class ExcelExporter return worksheet; } - private string GetCellValue(ExcelWorksheet sheet, int row, int column) - { - var cell = sheet.Cells[row, column]; - - try - { - if (cell.Value == null) - { - return ""; - } - - var s = cell.GetValue(); - return s.Trim(); - } - catch (Exception e) - { - throw new Exception($"Rows {row} Columns {column} Content {cell.Text} {e}"); - } - } - private void SetNewValue(PropertyInfo propertyInfo, AProto config, string type, string value) { if (IsNullOrWhiteSpace(value)) @@ -753,20 +735,6 @@ public sealed class ExcelExporter return; } - // case "AttrConfig": - // { - // if (value.Trim() == "" || value.Trim() == "{}") - // { - // propertyInfo.SetValue(config, null); - // return; - // } - // - // var attr = new AttrConfig {KV = JsonConvert.DeserializeObject>(value)}; - // - // propertyInfo.SetValue(config, attr); - // - // return; - // } default: throw new NotSupportedException($"不支持此类型: {type}"); } diff --git a/Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs b/Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs new file mode 100644 index 00000000..88e103db --- /dev/null +++ b/Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs @@ -0,0 +1,34 @@ +#if TENGINE_NET +using OfficeOpenXml; + +namespace TEngine.Helper; + +public static class ExcelHelper +{ + public static ExcelPackage LoadExcel(string name) + { + return new ExcelPackage(name); + } + + public static string GetCellValue(this ExcelWorksheet sheet, int row, int column) + { + ExcelRange cell = sheet.Cells[row, column]; + + try + { + if (cell.Value == null) + { + return ""; + } + + string s = cell.GetValue(); + + return s.Trim(); + } + catch (Exception e) + { + throw new Exception($"Rows {row} Columns {column} Content {cell.Text} {e}"); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs.meta b/Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs.meta new file mode 100644 index 00000000..f5b66430 --- /dev/null +++ b/Assets/GameScripts/DotNet/Core/Helper/ExcelHelper.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2ea3356f30cb40949949691a0e258a05 +timeCreated: 1690561972 \ No newline at end of file diff --git a/Assets/GameScripts/DotNet/Core/Helper/FileHelper.cs b/Assets/GameScripts/DotNet/Core/Helper/FileHelper.cs index 5cf647a3..88c91469 100644 --- a/Assets/GameScripts/DotNet/Core/Helper/FileHelper.cs +++ b/Assets/GameScripts/DotNet/Core/Helper/FileHelper.cs @@ -5,6 +5,16 @@ namespace TEngine.Core { public static class FileHelper { + /// + /// 获取文件全路径。 + /// + /// + /// + public static string GetFullPath(string relativePath) + { + return Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), relativePath)); + } + /// /// 拷贝文件到目标路径、如果目标目录不存在会自动创建目录 /// diff --git a/Assets/GameScripts/DotNet/Core/Network/Base/Server/SceneConfigInfo.cs b/Assets/GameScripts/DotNet/Core/Network/Base/Server/SceneConfigInfo.cs index 3da40038..ea3370e2 100644 --- a/Assets/GameScripts/DotNet/Core/Network/Base/Server/SceneConfigInfo.cs +++ b/Assets/GameScripts/DotNet/Core/Network/Base/Server/SceneConfigInfo.cs @@ -3,9 +3,11 @@ namespace TEngine public class SceneConfigInfo { public uint Id; - public string Name; public long EntityId; - public string SceneType; + public int SceneType; + public int SceneSubType; + public string SceneTypeStr; + public string SceneSubTypeStr; public uint ServerConfigId; public uint WorldId; public int OuterPort; diff --git a/Assets/GameScripts/DotNet/Core/Network/Base/Server/Server.cs b/Assets/GameScripts/DotNet/Core/Network/Base/Server/Server.cs index 19f1d951..92635894 100644 --- a/Assets/GameScripts/DotNet/Core/Network/Base/Server/Server.cs +++ b/Assets/GameScripts/DotNet/Core/Network/Base/Server/Server.cs @@ -140,7 +140,7 @@ namespace TEngine Id = serverConfigId }; - server.Scene = await Scene.Create(server,null,$"ServerScene{serverConfigId}"); + server.Scene = await Scene.Create(server); // 创建网络、Server下的网络只能是内部网络、外部网络是在Scene中定义 @@ -155,7 +155,7 @@ namespace TEngine foreach (var sceneConfig in sceneInfos) { - await Scene.Create(server, sceneConfig.SceneType, sceneConfig.Name, sceneConfig.EntityId, + await Scene.Create(server, sceneConfig.SceneType, sceneConfig.SceneSubType, sceneConfig.EntityId, sceneConfig.WorldId, sceneConfig.NetworkProtocol, outerBindIp, sceneConfig.OuterPort); } diff --git a/Assets/GameScripts/DotNet/Core/Network/Message/Addressable/AddressableHelper.cs b/Assets/GameScripts/DotNet/Core/Network/Message/Addressable/AddressableHelper.cs index 0a68a031..31d8a46f 100644 --- a/Assets/GameScripts/DotNet/Core/Network/Message/Addressable/AddressableHelper.cs +++ b/Assets/GameScripts/DotNet/Core/Network/Message/Addressable/AddressableHelper.cs @@ -12,7 +12,7 @@ namespace TEngine.Core.Network foreach (var sceneConfigInfo in sceneConfigInfos) { - if (sceneConfigInfo.SceneType == "Addressable") + if (sceneConfigInfo.SceneTypeStr == "Addressable") { AddressableScenes.Add(sceneConfigInfo); } diff --git a/Assets/GameScripts/DotNet/Core/TEngineSettingsHelper.cs b/Assets/GameScripts/DotNet/Core/TEngineSettingsHelper.cs index 13714034..e53ab5ea 100644 --- a/Assets/GameScripts/DotNet/Core/TEngineSettingsHelper.cs +++ b/Assets/GameScripts/DotNet/Core/TEngineSettingsHelper.cs @@ -36,46 +36,41 @@ public static class TEngineSettingsHelper private static void LoadProtoConfig(IConfigurationRoot root) { // ProtoBuf文件所在的位置文件夹位置 - Define.ProtoBufDirectory = root["Export:ProtoBufDirectory:Value"].GetFullPath(); + Define.ProtoBufDirectory = FileHelper.GetFullPath(root["Export:ProtoBufDirectory:Value"]); // ProtoBuf生成到服务端的文件夹位置 - Define.ProtoBufServerDirectory = root["Export:ProtoBufServerDirectory:Value"].GetFullPath(); + Define.ProtoBufServerDirectory = FileHelper.GetFullPath(root["Export:ProtoBufServerDirectory:Value"]); // ProtoBuf生成到客户端的文件夹位置 - Define.ProtoBufClientDirectory = root["Export:ProtoBufClientDirectory:Value"].GetFullPath(); + Define.ProtoBufClientDirectory = FileHelper.GetFullPath(root["Export:ProtoBufClientDirectory:Value"]); // ProtoBuf生成代码模板的位置 - Define.ProtoBufTemplatePath = root["Export:ProtoBufTemplatePath:Value"].GetFullPath(); + Define.ProtoBufTemplatePath = FileHelper.GetFullPath(root["Export:ProtoBufTemplatePath:Value"]); } private static void LoadExcelConfig(IConfigurationRoot root) { // Excel配置文件根目录 - Define.ExcelProgramPath = root["Export:ExcelProgramPath:Value"].GetFullPath(); + Define.ExcelProgramPath = FileHelper.GetFullPath(root["Export:ExcelProgramPath:Value"]); // Excel版本文件的位置 - Define.ExcelVersionFile = root["Export:ExcelVersionFile:Value"].GetFullPath(); + Define.ExcelVersionFile = FileHelper.GetFullPath(root["Export:ExcelVersionFile:Value"]); // Excel生成服务器代码的文件夹位置 - Define.ExcelServerFileDirectory = root["Export:ExcelServerFileDirectory:Value"].GetFullPath(); + Define.ExcelServerFileDirectory = FileHelper.GetFullPath(root["Export:ExcelServerFileDirectory:Value"]); // Excel生成客户端代码文件夹位置 - Define.ExcelClientFileDirectory = root["Export:ExcelClientFileDirectory:Value"].GetFullPath(); + Define.ExcelClientFileDirectory = FileHelper.GetFullPath(root["Export:ExcelClientFileDirectory:Value"]); // Excel生成服务器二进制数据文件夹位置 - Define.ExcelServerBinaryDirectory = root["Export:ExcelServerBinaryDirectory:Value"].GetFullPath(); + Define.ExcelServerBinaryDirectory = FileHelper.GetFullPath(root["Export:ExcelServerBinaryDirectory:Value"]); // Excel生成客户端二进制数据文件夹位置 - Define.ExcelClientBinaryDirectory = root["Export:ExcelClientBinaryDirectory:Value"].GetFullPath(); + Define.ExcelClientBinaryDirectory = FileHelper.GetFullPath(root["Export:ExcelClientBinaryDirectory:Value"]); // Excel生成服务器Json数据文件夹位置 - Define.ExcelServerJsonDirectory = root["Export:ExcelServerJsonDirectory:Value"].GetFullPath(); + Define.ExcelServerJsonDirectory = FileHelper.GetFullPath(root["Export:ExcelServerJsonDirectory:Value"]); // Excel生成客户端Json数据文件夹位置 - Define.ExcelClientJsonDirectory = root["Export:ExcelClientJsonDirectory:Value"].GetFullPath(); + Define.ExcelClientJsonDirectory = FileHelper.GetFullPath(root["Export:ExcelClientJsonDirectory:Value"]); // Excel生成代码模板的位置 - Define.ExcelTemplatePath = root["Export:ExcelTemplatePath:Value"].GetFullPath(); + Define.ExcelTemplatePath = FileHelper.GetFullPath(root["Export:ExcelTemplatePath:Value"]); // 服务器自定义导出代码文件夹位置 - Define.ServerCustomExportDirectory = root["Export:ServerCustomExportDirectory:Value"].GetFullPath(); + Define.ServerCustomExportDirectory = FileHelper.GetFullPath(root["Export:ServerCustomExportDirectory:Value"]); // 客户端自定义导出代码 - Define.ClientCustomExportDirectory = root["Export:ClientCustomExportDirectory:Value"].GetFullPath(); + Define.ClientCustomExportDirectory = FileHelper.GetFullPath(root["Export:ClientCustomExportDirectory:Value"]); // 自定义导出代码存放的程序集 - Define.CustomExportAssembly = root["Export:CustomExportAssembly:Value"].GetFullPath(); - } - - private static string GetFullPath(this string relativePath) - { - return Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), relativePath)); + Define.CustomExportAssembly = FileHelper.GetFullPath(root["Export:CustomExportAssembly:Value"]); } } #endif \ No newline at end of file diff --git a/DotNet/Config/Binary/SceneConfigData.bytes b/DotNet/Config/Binary/SceneConfigData.bytes index 9db43dcaf810f7fd15eef22b94acae4754cb7b75..95f9233edd6b671c99323657d72b37bf68cb1ad4 100644 GIT binary patch delta 91 zcmeBW>|>>Z!%SB+$^%aG-%vqCr4`L5tflC8a2}xHvH>C)Eg<}8ywnxW0XB+$^%aG-%vqCr4`L5tflC8a2}xHvH>C)J1tiDT%%z$MMW0#f{- rfk~o40;rhTH?hEo1xSD-WjR#rVF diff --git a/DotNet/Config/Excel/Server/SceneConfig.xlsx b/DotNet/Config/Excel/Server/SceneConfig.xlsx index 7aed6363b53b6f80af1b6e470cdf5e47b9bd31a8..c88e40adb22dc00316564ac621dbbff73ea84f96 100644 GIT binary patch literal 13845 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 O9}!@#IJ5os?*9QmbK7qK literal 10369 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 JMDnKh{{VL272N;; diff --git a/DotNet/Config/Excel/Version.txt b/DotNet/Config/Excel/Version.txt index a61a561f..a09cb158 100644 --- a/DotNet/Config/Excel/Version.txt +++ b/DotNet/Config/Excel/Version.txt @@ -1 +1 @@ -{"MachineConfig":1690328264682,"SceneConfig":1690415187917,"ServerConfig":1690328264682,"WorldConfig":1690328264683} \ No newline at end of file +{"MachineConfig":1690328264682,"SceneConfig":1690589593259,"ServerConfig":1690328264682,"WorldConfig":1690328264683} \ No newline at end of file diff --git a/DotNet/Config/Json/Server/SceneConfigData.Json b/DotNet/Config/Json/Server/SceneConfigData.Json index 7aa3e0b3..9264e9e8 100644 --- a/DotNet/Config/Json/Server/SceneConfigData.Json +++ b/DotNet/Config/Json/Server/SceneConfigData.Json @@ -1,6 +1,6 @@ {"List":[ -{"Id":1,"EntityId":17246978048,"ServerConfigId":1024,"WorldId":0,"SceneType":"Gate","Name":"Gate","NetworkProtocol":"KCP","OuterPort":20000}, -{"Id":2,"EntityId":34493956096,"ServerConfigId":2048,"WorldId":0,"SceneType":"Addressable","Name":"Addressable1","NetworkProtocol":null,"OuterPort":0}, -{"Id":4,"EntityId":68920803328,"ServerConfigId":3072,"WorldId":0,"SceneType":"Map","Name":"Map1","NetworkProtocol":null,"OuterPort":0}, -{"Id":5,"EntityId":86167781376,"ServerConfigId":4096,"WorldId":0,"SceneType":"Chat","Name":"Chat1","NetworkProtocol":null,"OuterPort":0} +{"Id":1,"EntityId":17246978048,"ServerConfigId":1024,"WorldId":0,"SceneType":"Gate","SceneSubType":"Gate","NetworkProtocol":"KCP","OuterPort":20000}, +{"Id":2,"EntityId":34493956096,"ServerConfigId":2048,"WorldId":0,"SceneType":"Addressable","SceneSubType":"Addressable","NetworkProtocol":null,"OuterPort":0}, +{"Id":4,"EntityId":68920803328,"ServerConfigId":3072,"WorldId":0,"SceneType":"Map","SceneSubType":"Map","NetworkProtocol":null,"OuterPort":0}, +{"Id":5,"EntityId":86167781376,"ServerConfigId":4096,"WorldId":0,"SceneType":"Chat","SceneSubType":"Chat","NetworkProtocol":null,"OuterPort":0} ]} diff --git a/DotNet/Logic/src/Generate/ConfigTable/Entity/SceneConfig.cs b/DotNet/Logic/src/Generate/ConfigTable/Entity/SceneConfig.cs index 9499190d..8d519d35 100644 --- a/DotNet/Logic/src/Generate/ConfigTable/Entity/SceneConfig.cs +++ b/DotNet/Logic/src/Generate/ConfigTable/Entity/SceneConfig.cs @@ -79,13 +79,13 @@ namespace TEngine [ProtoMember(2, IsRequired = true)] public long EntityId { get; set; } // 实体Id [ProtoMember(3, IsRequired = true)] - public uint ServerConfigId { get; set; } // 服务配置Id + public uint ServerConfigId { get; set; } // 路由Id [ProtoMember(4, IsRequired = true)] public uint WorldId { get; set; } // 世界Id [ProtoMember(5, IsRequired = true)] public string SceneType { get; set; } // Scene类型 [ProtoMember(6, IsRequired = true)] - public string Name { get; set; } // 名称 + public string SceneSubType { get; set; } // Scene子类型 [ProtoMember(7, IsRequired = true)] public string NetworkProtocol { get; set; } // 协议类型 [ProtoMember(8, IsRequired = true)] diff --git a/DotNet/Logic/src/Generate/CustomExport/SceneType.cs b/DotNet/Logic/src/Generate/CustomExport/SceneType.cs index e4ccaa18..a40f4ceb 100644 --- a/DotNet/Logic/src/Generate/CustomExport/SceneType.cs +++ b/DotNet/Logic/src/Generate/CustomExport/SceneType.cs @@ -1,14 +1,31 @@ namespace TEngine { // 生成器自动生成,请不要手动编辑。 - public class SceneType + public static class SceneType { public const int Gate = 1; public const int Addressable = 2; public const int Map = 3; public const int Chat = 4; - public static readonly Dictionary SceneDic = new Dictionary() + public static readonly Dictionary SceneTypeDic = new Dictionary() + { + { "Gate", 1 }, + { "Addressable", 2 }, + { "Map", 3 }, + { "Chat", 4 }, + }; + } + + // 生成器自动生成,请不要手动编辑。 + public static class SceneSubType + { + public const int Gate = 1; + public const int Addressable = 2; + public const int Map = 3; + public const int Chat = 4; + + public static readonly Dictionary SceneSubTypeDic = new Dictionary() { { "Gate", 1 }, { "Addressable", 2 }, diff --git a/DotNet/Logic/src/Helper/AddressableSceneHelper.cs b/DotNet/Logic/src/Helper/AddressableSceneHelper.cs index 9cb7b3a6..80371194 100644 --- a/DotNet/Logic/src/Helper/AddressableSceneHelper.cs +++ b/DotNet/Logic/src/Helper/AddressableSceneHelper.cs @@ -19,12 +19,12 @@ public static class AddressableSceneHelper return sceneEntityId; } - public static long GetSceneEntityIdByType(Logic.SceneType sceneType) + public static long GetSceneEntityIdByType(string sceneType) { var sceneEntityId = 0L; foreach (var sceneConfig in SceneConfigData.Instance.List) { - if (sceneConfig.SceneType.Parse() == sceneType) + if (sceneConfig.SceneType == sceneType) { sceneEntityId = sceneConfig.EntityId; break; diff --git a/DotNet/Logic/src/Helper/ConfigTableSystem.cs b/DotNet/Logic/src/Helper/ConfigTableSystem.cs index 9ccb9d11..931933f6 100644 --- a/DotNet/Logic/src/Helper/ConfigTableSystem.cs +++ b/DotNet/Logic/src/Helper/ConfigTableSystem.cs @@ -71,8 +71,10 @@ public static class ConfigTableSystem return new SceneConfigInfo() { Id = sceneConfig.Id, - SceneType = sceneConfig.SceneType, - Name = sceneConfig.Name, + SceneType = SceneType.SceneTypeDic[sceneConfig.SceneType], + SceneSubType = SceneSubType.SceneSubTypeDic[sceneConfig.SceneSubType], + SceneTypeStr = sceneConfig.SceneType, + SceneSubTypeStr = sceneConfig.SceneSubType, NetworkProtocol = sceneConfig.NetworkProtocol, ServerConfigId = sceneConfig.ServerConfigId, WorldId = sceneConfig.WorldId, @@ -123,8 +125,10 @@ public static class ConfigTableSystem { Id = sceneConfig.Id, EntityId = sceneConfig.EntityId, - SceneType = sceneConfig.SceneType, - Name = sceneConfig.Name, + SceneType = SceneType.SceneTypeDic[sceneConfig.SceneType], + SceneSubType = SceneSubType.SceneSubTypeDic[sceneConfig.SceneSubType], + SceneTypeStr = sceneConfig.SceneType, + SceneSubTypeStr = sceneConfig.SceneSubType, NetworkProtocol = sceneConfig.NetworkProtocol, ServerConfigId = sceneConfig.ServerConfigId, WorldId = sceneConfig.WorldId, diff --git a/DotNet/Logic/src/OnCreateScene.cs b/DotNet/Logic/src/OnCreateScene.cs index 25458261..e3408cc0 100644 --- a/DotNet/Logic/src/OnCreateScene.cs +++ b/DotNet/Logic/src/OnCreateScene.cs @@ -3,36 +3,6 @@ using TEngine.Core.Network; namespace TEngine.Logic; -[Flags] -public enum SceneType: long -{ - /// - /// 场景无。 - /// - None = 0, - - /// - /// 场景Gate。 - /// - Gate = 1, - - /// - /// 场景Addressable。 - /// 负责进程间消息通信。 - /// - Addressable = 1 << 2, - - /// - /// 游戏场景服。 - /// - Map = 1 << 3, - - /// - /// 游戏聊天服。 - /// - Chat = 1 << 4, -} - /// /// 场景创建回调。 /// 常用于定义场景需要添加的组件。 @@ -46,13 +16,19 @@ public class OnCreateScene : AsyncEventSystem // 比如Address协议这里、我就是做了一个管理Address地址的一个组件挂在到Address这个Scene下面了 // 比如Map下你需要一些自定义组件、你也可以在这里操作 var scene = self.Scene; - switch (scene.SceneType.Parse()) + switch (scene.SceneType) { case SceneType.Gate: { self.Scene.AddComponent(); break; } + case SceneType.Addressable: + { + // 挂载管理Address地址组件 + scene.AddComponent(); + break; + } } Log.Info($"scene create: {self.Scene.SceneType} {self.Scene.Name} SceneId:{self.Scene.Id} LocationId:{self.Scene.LocationId} WorldId:{self.Scene.World?.Id}");