Browse Source

fix:增加生成客户端加载代码

chenbin 6 tháng trước cách đây
mục cha
commit
fcda8d97f7

+ 113 - 0
Configs/CSTemplates/TableComponent.cs

@@ -0,0 +1,113 @@
+// Generate By EToy
+// Don't Edit It!!
+using XGame.Database;
+using XGame.Framework.Asyncs;
+using XGame.Framework.Loadable;
+using XGame.Framework.Nodes;
+
+namespace FL.Nodes.Login
+{
+    public class TableComponent : NodeComponent, ILoadAsyncHandle
+    {
+        public override void OnEnable(object intent)
+        {
+        }
+        public override void OnDisable()
+        {
+        }
+        void ILoadAsyncHandle.OnLoadAsync(IAsyncGroup group)
+        {
+            achieveRewardTableRepo.LoadAsync().Join(group);
+            arenaTableRepo.LoadAsync().Join(group);
+            arena_jqrTableRepo.LoadAsync().Join(group);
+            arena_phbTableRepo.LoadAsync().Join(group);
+            artifactBaseTableRepo.LoadAsync().Join(group);
+            artifactElementTableRepo.LoadAsync().Join(group);
+            artifactIntensifyTableRepo.LoadAsync().Join(group);
+            artifactLevelTableRepo.LoadAsync().Join(group);
+            artifactStarTableRepo.LoadAsync().Join(group);
+            AttrDescTableRepo.LoadAsync().Join(group);
+            blackMerchantTableRepo.LoadAsync().Join(group);
+            BuffTableRepo.LoadAsync().Join(group);
+            careerTableRepo.LoadAsync().Join(group);
+            ChapterTableRepo.LoadAsync().Join(group);
+            chapterTaskTableRepo.LoadAsync().Join(group);
+            collectTableRepo.LoadAsync().Join(group);
+            collect_rewardTableRepo.LoadAsync().Join(group);
+            dailyActiveTableRepo.LoadAsync().Join(group);
+            dragonEggOpenTableRepo.LoadAsync().Join(group);
+            DropTableRepo.LoadAsync().Join(group);
+            EpigraphTableRepo.LoadAsync().Join(group);
+            epigraphUpTableRepo.LoadAsync().Join(group);
+            EquipmentTableRepo.LoadAsync().Join(group);
+            EquipmentBaseAttrTableRepo.LoadAsync().Join(group);
+            EquipmentDisassemblyTableRepo.LoadAsync().Join(group);
+            EquipmentDropTableRepo.LoadAsync().Join(group);
+            EquipmentPeculiarAttrTableRepo.LoadAsync().Join(group);
+            fishingPierTableRepo.LoadAsync().Join(group);
+            fishingPierReleaseTableRepo.LoadAsync().Join(group);
+            fishingPierRewardTableRepo.LoadAsync().Join(group);
+            fishingScienceTableRepo.LoadAsync().Join(group);
+            fishingScienceLvUpTableRepo.LoadAsync().Join(group);
+            FunctionUnlockTableRepo.LoadAsync().Join(group);
+            guildTableRepo.LoadAsync().Join(group);
+            guildLevelTableRepo.LoadAsync().Join(group);
+            guildMonsterTableRepo.LoadAsync().Join(group);
+            guildPostTableRepo.LoadAsync().Join(group);
+            guildPowerTableRepo.LoadAsync().Join(group);
+            guildRewardTableRepo.LoadAsync().Join(group);
+            guildShopTableRepo.LoadAsync().Join(group);
+            guildTaskTableRepo.LoadAsync().Join(group);
+            hdActivityTableRepo.LoadAsync().Join(group);
+            helpTableRepo.LoadAsync().Join(group);
+            I18nClientTableRepo.LoadAsync().Join(group);
+            I18nDatabaseTableRepo.LoadAsync().Join(group);
+            I18nServiceTableRepo.LoadAsync().Join(group);
+            ItemTableRepo.LoadAsync().Join(group);
+            JumpTableRepo.LoadAsync().Join(group);
+            LevelTableRepo.LoadAsync().Join(group);
+            MapTableRepo.LoadAsync().Join(group);
+            missionTableRepo.LoadAsync().Join(group);
+            mission_ldfbTableRepo.LoadAsync().Join(group);
+            mission_lwcxTableRepo.LoadAsync().Join(group);
+            mission_lwtTableRepo.LoadAsync().Join(group);
+            mission_sktlTableRepo.LoadAsync().Join(group);
+            mission_sktl_themeTableRepo.LoadAsync().Join(group);
+            mission_ygyjTableRepo.LoadAsync().Join(group);
+            mission_ygzcTableRepo.LoadAsync().Join(group);
+            MonsterTableRepo.LoadAsync().Join(group);
+            mountBaseTableRepo.LoadAsync().Join(group);
+            mountLevelTableRepo.LoadAsync().Join(group);
+            mountStarTableRepo.LoadAsync().Join(group);
+            mountTrainTableRepo.LoadAsync().Join(group);
+            mountTrainProbTableRepo.LoadAsync().Join(group);
+            PartnerTableRepo.LoadAsync().Join(group);
+            partnerLvUpTableRepo.LoadAsync().Join(group);
+            partnerLvUpAttrTableRepo.LoadAsync().Join(group);
+            partnerStarUpTableRepo.LoadAsync().Join(group);
+            raffleTableRepo.LoadAsync().Join(group);
+            raffleEpigraphTableRepo.LoadAsync().Join(group);
+            rafflePartnerTableRepo.LoadAsync().Join(group);
+            runeTableRepo.LoadAsync().Join(group);
+            rune_expTableRepo.LoadAsync().Join(group);
+            rune_levelTableRepo.LoadAsync().Join(group);
+            shopTableRepo.LoadAsync().Join(group);
+            shop_shangpinTableRepo.LoadAsync().Join(group);
+            SkillTableRepo.LoadAsync().Join(group);
+            SkillVfxsTableRepo.LoadAsync().Join(group);
+            taskAchieveTableRepo.LoadAsync().Join(group);
+            taskDailyTableRepo.LoadAsync().Join(group);
+            taskMainTableRepo.LoadAsync().Join(group);
+            taskTypeTableRepo.LoadAsync().Join(group);
+            tiaozhanTableRepo.LoadAsync().Join(group);
+            treasureTableRepo.LoadAsync().Join(group);
+            treasureBonusTableRepo.LoadAsync().Join(group);
+
+        }
+
+        void ILoadAsyncHandle.OnUnloadAsync(IAsyncGroup group)
+        {
+
+        }
+    }
+}

+ 3 - 2
Configs/Option.json

@@ -2,9 +2,10 @@
     "ExcelInput" : "F:/TJWork/etoy-xgame/res/Excels",
     "CsvOutput" : "F:/TJWork/etoy-xgame/res/Csv",
     "PipelineType" : 0,
-    "ClientDatabaseOutput" : "F:/TJWork/feilong-client/Assets/Res/Addressable/Tables",
-    "ClientCodeOutput" : "F:/TJWork/feilong-client/Assets/Scripts/Business/Domain/Database",
+    "ClientDatabaseOutput" : "../../feilong-client/Assets/Res/Addressable/Tables",
+    "ClientCodeOutput" : "../../feilong-client/Assets/Scripts/Business/Domain/Database",
     "ServerDatabaseOutput" : "F:/TJWork/etoy-xgame/res/TS/excel",
     "ServerCodeOutput" : "F:/TJWork/etoy-xgame/res/Ts",
     "ConfigVersionOutput" : "F:/TJWork/etoy-xgame/res/Version.txt"
+    "ClientDatabaseLoadCodePath" : "../../feilong-client/Assets/Scripts/Business/Runtime/Nodes/Login/TableComponent.cs"
 }

+ 44 - 0
etoy/Components/CodeGenerater/CSharp/CSharpTableLoaderGenerater.cs

@@ -0,0 +1,44 @@
+using System.Text;
+
+namespace etoy
+{
+    /// <summary>
+    /// 客户端配置表加载代码
+    /// </summary>
+    class CSharpTableLoaderGenerater : IGenerater
+    {
+        const string TableRepoLoadArea = "<#TableRepoLoadArea>";
+
+        public void Generate(Context context)
+        {
+            var path = context.Option.ClientDatabaseLoadCodePath;
+            if (string.IsNullOrEmpty(path))
+            {
+                return;
+            }
+            var fileName = Path.GetFileName(path);
+            var templatePath = Path.Combine(Environment.CurrentDirectory, "Configs/CSTemplates", fileName);
+            if (!File.Exists(templatePath))
+            {
+                return;
+            }
+            // 删除旧文件
+            if (File.Exists(path))
+            {
+                File.Delete(path);
+            }
+            var sbTableRepoLoadArea = new StringBuilder();
+            var tables = context.Blackboard.Tables;
+            foreach (var table in tables)
+            {
+                if (table.TableTag.HasFlag(TableTag.Client))
+                {
+                    sbTableRepoLoadArea.AppendLine($"            {table.Name}TableRepo.LoadAsync().Join(group);");
+                }
+            }
+            var templateText = File.ReadAllText(templatePath);
+            templateText = templateText.Replace(TableRepoLoadArea, sbTableRepoLoadArea.ToString());
+            File.WriteAllText(path, templateText, Encoding.UTF8);
+        }
+    }
+}

+ 4 - 1
etoy/DataStructure/Environment/Option.cs

@@ -29,6 +29,9 @@ namespace etoy
 
         [Option('x', "config_version", Required = true, HelpText = "配置版本文件的导出路径...")]
         public string ConfigVersionOutput { get; set; }
-
+        #region 客户端配置表加载
+        [Option('c', "csharp", Required = true, HelpText = "请输入客户端配置表加载代码...")]
+        public string ClientDatabaseLoadCodePath { get; set; }
+        #endregion
     }
 }

+ 1 - 0
etoy/Pileline/Cmd/CmdExportClientCode.cs

@@ -21,6 +21,7 @@ namespace etoy
                 new CSharpKeyValueTableGenerater(),
                 new CSharpMetadataTableGenerater(),
                 new CSharpVersionConfigGenerater(),
+                new CSharpTableLoaderGenerater(),
                 new TxtVersionConfigGenerater(),
             };