Additional collision/avoidance changes for monstos
This commit is contained in:
@@ -4,6 +4,7 @@ using Chickensoft.Introspection;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Zennysoft.Game.Abstractions;
|
||||
@@ -41,6 +42,8 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
private string _floorToLoad;
|
||||
|
||||
private Stopwatch _elapsedTime;
|
||||
|
||||
public override void _EnterTree()
|
||||
{
|
||||
FloorRoute = [.. BaseRoute];
|
||||
@@ -73,7 +76,8 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public async Task LoadFloor(FloorScene floorToLoad)
|
||||
{
|
||||
GD.Print($"Pause for load at {DateTime.Now.Minute}:{DateTime.Now.Second}:{DateTime.Now.Millisecond}");
|
||||
_elapsedTime = new Stopwatch();
|
||||
_elapsedTime.Start();
|
||||
Game.Pause();
|
||||
// Clean up current floor
|
||||
CleanupCurrentFloor();
|
||||
@@ -85,7 +89,6 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public async Task LoadFloorByPath(string filePath)
|
||||
{
|
||||
GD.Print($"Pause for load at {DateTime.Now.Minute}:{DateTime.Now.Second}:{DateTime.Now.Millisecond}");
|
||||
Game.Pause();
|
||||
// Clean up current floor
|
||||
CleanupCurrentFloor();
|
||||
@@ -119,14 +122,12 @@ public partial class Map : Node3D, IMap
|
||||
{
|
||||
SpawnPointCreated?.Invoke((Vector3.Forward, new Vector3(-999, -999, -999)));
|
||||
var newFloor = await LoadSceneFile(filePath);
|
||||
GD.Print($"Floor finished load at {DateTime.Now.Minute}:{DateTime.Now.Second}:{DateTime.Now.Millisecond}");
|
||||
|
||||
// New floor created, remove old floor
|
||||
ClearFloor();
|
||||
|
||||
// Setup new floor
|
||||
AddChild(newFloor);
|
||||
GD.Print($"Floor added at {DateTime.Now.Minute:D2}:{DateTime.Now.Second:D2}:{DateTime.Now.Millisecond}");
|
||||
CurrentFloor = newFloor as IDungeonFloor;
|
||||
CurrentFloor.InitializeDungeon();
|
||||
SpawnPointCreated?.Invoke(CurrentFloor.GetPlayerSpawnPoint());
|
||||
@@ -138,7 +139,8 @@ public partial class Map : Node3D, IMap
|
||||
SpawnItems();
|
||||
CurrentFloor.FloorIsLoaded = true;
|
||||
FloorLoaded?.Invoke();
|
||||
GD.Print($"Floor loaded invoked {DateTime.Now.Minute}:{DateTime.Now.Second}:{DateTime.Now.Millisecond}");
|
||||
_elapsedTime.Stop();
|
||||
GD.Print($"Floor loaded in {_elapsedTime.ElapsedMilliseconds}ms.");
|
||||
}
|
||||
|
||||
private void CleanupCurrentFloor()
|
||||
|
||||
Reference in New Issue
Block a user