- using System;
- using System.IO;
- using System.Text.Json;
- using Godot;
- using Array = Godot.Collections.Array;
-
- namespace Generator;
-
- public static class ExcelGenerator
- {
- public static void ExportExcel()
- {
- var arr = new Array();
- OS.Execute("excel/DungeonShooting_ExcelTool.exe", new string[0], arr);
- foreach (var message in arr)
- {
- GD.Print(message);
- }
-
- try
- {
- GeneratorActivityObjectInit();
- GD.Print("生成'src/framework/activity/ActivityObject_Init.cs'成功!");
- }
- catch (Exception e)
- {
- GD.PrintErr(e.ToString());
- }
- }
-
- //生成初始化 ActivityObject 代码
- private static void GeneratorActivityObjectInit()
- {
- var text = File.ReadAllText("resource/config/ActivityObject.json");
- var array = JsonSerializer.Deserialize<System.Collections.Generic.Dictionary<string, System.Object>[]>(text);
-
- var code1 = "";
- var code2 = "";
-
- foreach (var item in array)
- {
- var id = item["Id"];
- var remark = item["Remark"] + "";
- if (!string.IsNullOrEmpty(remark))
- {
- code1 += $" /// <summary>\n";
- code1 += $" /// {remark}\n";
- code1 += $" /// </summary>\n";
- }
- code1 += $" public const string Id_{id} = \"{id}\";\n";
- code2 += $" _activityRegisterMap.Add(\"{id}\", \"{item["Prefab"]}\");\n";
- }
-
- var str = $"/// <summary>\n";
- str += $"/// 根据配置表注册物体, 该类是自动生成的, 请不要手动编辑!\n";
- str += $"/// </summary>\n";
- str += $"public partial class ActivityObject\n";
- str += $"{{\n";
-
- str += $" /// <summary>\n";
- str += $" /// 存放所有在表中注册的物体的id\n";
- str += $" /// </summary>\n";
- str += $" public static class Ids\n";
- str += $" {{\n";
- str += code1;
- str += $" }}\n";
-
- str += $" private static void _InitRegister()\n";
- str += $" {{\n";
- str += code2;
- str += $" }}\n";
- str += $"}}\n";
-
- File.WriteAllText("src/framework/activity/ActivityObject_Init.cs", str);
- }
- }