Arrange debug floor situation
This commit is contained in:
@@ -24,9 +24,9 @@ public partial class Map : Node3D, IMap
|
||||
public IPlayer Player => this.DependOn<IPlayer>();
|
||||
|
||||
#region Save
|
||||
public ISaveChunk<MapData> MapChunk { get; set; } = default!;
|
||||
public ISaveChunk<MapInfo> MapChunk { get; set; } = default!;
|
||||
|
||||
ISaveChunk<MapData> IProvide<ISaveChunk<MapData>>.Value() => MapChunk;
|
||||
ISaveChunk<MapInfo> IProvide<ISaveChunk<MapInfo>>.Value() => MapChunk;
|
||||
|
||||
[Node]
|
||||
public AnimationPlayer AnimationPlayer { get; set; } = default!;
|
||||
@@ -58,11 +58,11 @@ public partial class Map : Node3D, IMap
|
||||
FloorScenes = ImmutableDictionary<Floor, string>.Empty
|
||||
.Add(Floor.Overworld, $"res://src/map/overworld/Overworld.tscn")
|
||||
.Add(Floor.Altar, $"res://src/map/dungeon/floors/Floor00.tscn")
|
||||
.Add(Floor.BossFloorA, $"res://src/map/dungeon/rooms/Special Floors/15. Boss Floor A.tscn")
|
||||
.Add(Floor.BossFloorB, $"res://src/map/dungeon/rooms/Special Floors/34. Boss Floor B.tscn")
|
||||
.Add(Floor.GoddessOfGuidanceFloor, $"res://src/map/dungeon/rooms/Special Floors/35. Goddess of Guidance's Room.tscn")
|
||||
.Add(Floor.VoidRoom, $"res://src/map/dungeon/rooms/Set B/30. Void Room.tscn")
|
||||
.Add(Floor.FinalFloor, $"res://src/map/dungeon/rooms/Special Floors/36. Final Floor.tscn")
|
||||
.Add(Floor.BossFloorA, $"res://src/map/dungeon/floors/Special Floors/15. Boss Floor A.tscn")
|
||||
.Add(Floor.BossFloorB, $"res://src/map/dungeon/floors/Special Floors/34. Boss Floor B.tscn")
|
||||
.Add(Floor.GoddessOfGuidanceFloor, $"res://src/map/dungeon/floors/Special Floors/35. Goddess of Guidance's Room.tscn")
|
||||
.Add(Floor.VoidRoom, $"res://src/map/dungeon/floors/Set B/30. Void Room.tscn")
|
||||
.Add(Floor.FinalFloor, $"res://src/map/dungeon/floors/Special Floors/36. Final Floor.tscn")
|
||||
.Add(Floor.Floor01, $"res://src/map/dungeon/floors/Floor01.tscn")
|
||||
.Add(Floor.Floor02, $"res://src/map/dungeon/floors/Floor02.tscn")
|
||||
.Add(Floor.Floor03, $"res://src/map/dungeon/floors/Floor03.tscn")
|
||||
@@ -82,12 +82,18 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public async Task LoadFloor()
|
||||
{
|
||||
AnimationPlayer.CallDeferred(AnimationPlayer.MethodName.Play, "fade_out");
|
||||
GetMapFiles();
|
||||
FloorScenes.TryGetValue(Floors.First(), out var sceneToLoad);
|
||||
await LoadFloor(sceneToLoad);
|
||||
}
|
||||
|
||||
public async Task LoadFloor(string sceneName)
|
||||
{
|
||||
AnimationPlayer.CallDeferred(AnimationPlayer.MethodName.Play, "fade_out");
|
||||
ClearCurrentMap();
|
||||
var sceneLoader = new SceneLoader();
|
||||
AddChild(sceneLoader);
|
||||
sceneLoader.LoadSceneRequest(sceneToLoad);
|
||||
sceneLoader.LoadSceneRequest(sceneName);
|
||||
await ToSignal(sceneLoader, SceneLoader.SignalName.SceneLoaded);
|
||||
AddChild(sceneLoader.LoadedScene);
|
||||
CurrentFloor = (IDungeonFloor)sceneLoader.LoadedScene;
|
||||
@@ -110,4 +116,10 @@ public partial class Map : Node3D, IMap
|
||||
var transform = GetPlayerSpawnPosition();
|
||||
Player.TeleportPlayer(transform);
|
||||
}
|
||||
|
||||
private string[] GetMapFiles()
|
||||
{
|
||||
var folderLocation = "res://src/map/dungeon/floors/" + "Floor" + CurrentFloorNumber.Value.ToString("D2");
|
||||
return DirAccess.GetFilesAt(folderLocation);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user