using System; using System.IO; using System.Text; using ColdMint.scripts.camp; using ColdMint.scripts.contribute; using ColdMint.scripts.deathInfo; using ColdMint.scripts.debug; using ColdMint.scripts.inventory; using ColdMint.scripts.item; using ColdMint.scripts.loot; using ColdMint.scripts.map; using ColdMint.scripts.map.roomInjectionProcessor; using ColdMint.scripts.utils; 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 PackedScene? _contributor; private PackedScene? _levelGraphEditor; private Label? _sloganLabel; private Label? _versionLabel; private Button? _levelGraphEditorButton; private LinkButton? _contributorButton; 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; } ContributorDataManager.RegisterAllContributorData(); 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 = GD.Load("res://scenes/game.tscn"); _contributor = GD.Load("res://scenes/contributor.tscn"); _levelGraphEditor = GD.Load("res://scenes/levelGraphEditor.tscn"); //Register ItemTypes from file //从文件注册物品类型 ItemTypeRegister.RegisterFromFile(); //Hardcoded ItemTypes Register //硬编码注册物品类型 ItemTypeRegister.StaticRegister(); //静态注册掉落表 LootRegister.StaticRegister(); } public override void InitializeUi() { _contributorButton = GetNode("VBoxContainer2/ContributorButton"); _startGameButton = GetNode