using System.Threading.Tasks; using ColdMint.scripts.inventory; using ColdMint.scripts.map; using ColdMint.scripts.map.LayoutParsingStrategy; using ColdMint.scripts.map.layoutStrategy; using ColdMint.scripts.map.RoomPlacer; using Godot; namespace ColdMint.scripts.loader.sceneLoader; public partial class GameSceneLoader : SceneLoaderTemplate { public override Task InitializeData() { //加载血条场景 var healthBarUi = GetNode("CanvasLayer/Control/VBoxContainer/HealthBarUi"); GameSceneNodeHolder.HealthBarUi = healthBarUi; //加载HotBar var hotBar = GetNode("CanvasLayer/Control/VBoxContainer/HotBar"); GameSceneNodeHolder.HotBar = hotBar; //加载操作提示 var operationTip = GetNode("CanvasLayer/Control/VBoxContainer/OperationTip"); GameSceneNodeHolder.OperationTipLabel = operationTip; //加载武器容器 var weaponContainer = GetNode("WeaponContainer"); GameSceneNodeHolder.WeaponContainer = weaponContainer; return Task.CompletedTask; } public override async Task LoadScene() { MapGenerator.MapRoot = GetNode("MapRoot"); MapGenerator.LayoutStrategy = new TestLayoutStrategy(); MapGenerator.LayoutParsingStrategy = new SequenceLayoutParsingStrategy(); MapGenerator.RoomPlacementStrategy = new PatchworkRoomPlacementStrategy(); await MapGenerator.GenerateMap(); } }