using System; using System.IO; using System.Text; using ColdMint.scripts.camp; using ColdMint.scripts.deathInfo; using ColdMint.scripts.debug; using ColdMint.scripts.inventory; using ColdMint.scripts.item; using ColdMint.scripts.map; using ColdMint.scripts.map.roomInjectionProcessor; using Godot; namespace ColdMint.scripts.loader.uiLoader; /// /// UI loader for the main menu /// 主菜单的UI加载器 /// public partial class MainMenuLoader : UiLoaderTemplate { private Button? _startGameButton; private Label? _copyrightLabel; private StringBuilder? _copyrightBuilder; private PackedScene? _gameScene; private Label? _sloganLabel; private Label? _versionLabel; private Button? _levelGraphEditorButton; public override void InitializeData() { if (Config.IsDebug()) { //Set the minimum log level to Info in debug mode.(Print all logs) //在调试模式下将最小日志等级设置为Info。(打印全部日志) LogCat.MinLogLevel = LogCat.InfoLogLevel; } else { //Disable all logs in the release version. //在发行版禁用所有日志。 LogCat.MinLogLevel = LogCat.DisableAllLogLevel; } //注册测试使用的战利品表 if (Config.IsDebug()) { var testLootList = new LootList { Id = Config.LootListId.Test }; var staffOfTheUndead = new LootEntry { Chance = 0.05f, MaxQuantity = 5, MinQuantity = 1, ResPath = "res://prefab/weapons/staffOfTheUndead.tscn" }; testLootList.AddLootEntry(staffOfTheUndead); var packsack = new LootEntry { Chance = 1f, MaxQuantity = 1, MinQuantity = 1, ResPath = "res://prefab/packsacks/packsack.tscn" }; testLootList.AddLootEntry(packsack); LootListManager.RegisterLootList(testLootList); } DeathInfoGenerator.RegisterDeathInfoHandler(new SelfDeathInfoHandler()); MapGenerator.RegisterRoomInjectionProcessor(new ChanceRoomInjectionProcessor()); MapGenerator.RegisterRoomInjectionProcessor(new TimeIntervalRoomInjectorProcessor()); //Register the corresponding encoding provider to solve the problem of garbled Chinese path of the compressed package //注册对应的编码提供程序,解决压缩包中文路径乱码问题 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); //创建游戏数据文件夹 var dataPath = Config.GetGameDataDirectory(); if (!Directory.Exists(dataPath)) { Directory.CreateDirectory(dataPath); } //Registered camp //注册阵营 var defaultCamp = new Camp(Config.CampId.Default) { FriendInjury = true }; CampManager.SetDefaultCamp(defaultCamp); var mazoku = new Camp(Config.CampId.Mazoku); CampManager.AddCamp(mazoku); var aborigines = new Camp(Config.CampId.Aborigines); CampManager.AddCamp(aborigines); _gameScene = (PackedScene)GD.Load("res://scenes/game.tscn"); //Temp: Register ItemType //临时:注册物品类型 ItemTypeManager.StaticRegister(); } public override void InitializeUi() { _startGameButton = GetNode