Additional collision/avoidance changes for monstos

This commit is contained in:
2026-06-13 21:42:42 -07:00
parent 7b2483ee74
commit 6620c86f57
14 changed files with 170 additions and 138 deletions
+7 -5
View File
@@ -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()