Cleanup
This commit is contained in:
@@ -44,6 +44,8 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public AutoProp<int> CurrentFloorNumber { get; private set; } = new AutoProp<int>(0);
|
||||
|
||||
private readonly string _floorFilePath = @"res://src/map/dungeon/floors/";
|
||||
|
||||
public void OnResolved()
|
||||
{
|
||||
GameChunk.AddChunk(MapChunk);
|
||||
@@ -56,18 +58,13 @@ public partial class Map : Node3D, IMap
|
||||
public void InitializeMapData()
|
||||
{
|
||||
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/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")
|
||||
.Add(Floor.Floor04, $"res://src/map/dungeon/floors/Floor04.tscn")
|
||||
.Add(Floor.Floor05, $"res://src/map/dungeon/floors/Floor05.tscn");
|
||||
.Add(Floor.Overworld, _floorFilePath + "Special Floors/Overworld.tscn")
|
||||
.Add(Floor.Altar, _floorFilePath + "Special Floors/Altar.tscn")
|
||||
.Add(Floor.BossFloorA, _floorFilePath + "Special Floors/15. Boss Floor A.tscn")
|
||||
.Add(Floor.BossFloorB, _floorFilePath + "Special Floors/34. Boss Floor B.tscn")
|
||||
.Add(Floor.GoddessOfGuidanceFloor, _floorFilePath + "Special Floors/35. Goddess of Guidance's Room.tscn")
|
||||
.Add(Floor.VoidRoom, _floorFilePath + "Set B/30. Void Room.tscn")
|
||||
.Add(Floor.FinalFloor, _floorFilePath + "Special Floors/36. Final Floor.tscn");
|
||||
CurrentFloorNumber.OnNext(0);
|
||||
}
|
||||
|
||||
@@ -91,17 +88,29 @@ public partial class Map : Node3D, IMap
|
||||
{
|
||||
AnimationPlayer.CallDeferred(AnimationPlayer.MethodName.Play, "fade_out");
|
||||
ClearCurrentMap();
|
||||
var newFloor = await LoadNewFloor(sceneName);
|
||||
AddChild(newFloor);
|
||||
InitializeFloor(newFloor);
|
||||
AnimationPlayer.CallDeferred(AnimationPlayer.MethodName.Play, ("fade_in"));
|
||||
}
|
||||
|
||||
private void InitializeFloor(Node newFloor)
|
||||
{
|
||||
CurrentFloor = (IDungeonFloor)newFloor;
|
||||
SetupDungeonFloor();
|
||||
CurrentFloor.FloorIsLoaded = true;
|
||||
CurrentFloorNumber.OnNext(CurrentFloorNumber.Value + 1);
|
||||
}
|
||||
|
||||
private async Task<Node> LoadNewFloor(string sceneName)
|
||||
{
|
||||
var sceneLoader = new SceneLoader();
|
||||
AddChild(sceneLoader);
|
||||
sceneLoader.LoadSceneRequest(sceneName);
|
||||
await ToSignal(sceneLoader, SceneLoader.SignalName.SceneLoaded);
|
||||
AddChild(sceneLoader.LoadedScene);
|
||||
CurrentFloor = (IDungeonFloor)sceneLoader.LoadedScene;
|
||||
SetupDungeonFloor();
|
||||
CurrentFloor.FloorIsLoaded = true;
|
||||
CurrentFloorNumber.OnNext(CurrentFloorNumber.Value + 1);
|
||||
var result = sceneLoader.LoadedScene;
|
||||
sceneLoader.QueueFree();
|
||||
AnimationPlayer.CallDeferred(AnimationPlayer.MethodName.Play, ("fade_in"));
|
||||
return result;
|
||||
}
|
||||
|
||||
private void ClearCurrentMap()
|
||||
@@ -119,7 +128,7 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
private string[] GetMapFiles()
|
||||
{
|
||||
var folderLocation = "res://src/map/dungeon/floors/" + "Floor" + CurrentFloorNumber.Value.ToString("D2");
|
||||
var folderLocation = _floorFilePath + "Floor" + CurrentFloorNumber.Value.ToString("D2");
|
||||
return DirAccess.GetFilesAt(folderLocation);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user