Door link

This commit is contained in:
Marco 2025-04-17 13:04:56 +02:00
commit d4b9a928db
6 changed files with 21 additions and 34 deletions

View file

@ -92,10 +92,18 @@ public partial class RogueliteRoom : Node2D
_doors.Add(door);
if (connection.FromDoor is null) connection.FromDoor = door;
else if (connection.ToDoor is null) connection.ToDoor = door;
else
GD.Print("Door connection was full");
if (connection.FromDoor is null && connection.ToDoor != door)
{
connection.FromDoor = door;
}
else if (connection.ToDoor is null && connection.FromDoor != door)
{
connection.ToDoor = door;
}
else
{
GD.Print($"Door {door} connection was full: {connection.From} {connection.FromDoor} to {connection.To} {connection.ToDoor}");
}
_connections.Add(connection);
@ -155,8 +163,8 @@ public partial class RogueliteRoom : Node2D
{
foreach (var connection in _connections)
{
connection.FromDoor?.Activate(ActivationType.Open);
connection.ToDoor?.Activate(ActivationType.Open);
connection.FromDoor?.Open();
connection.ToDoor?.Open();
}
}
@ -164,8 +172,8 @@ public partial class RogueliteRoom : Node2D
{
foreach (var connection in _connections)
{
connection.FromDoor?.Activate(ActivationType.Close);
connection.ToDoor?.Activate(ActivationType.Close);
connection.FromDoor?.Close();
connection.ToDoor?.Close();
}
}

View file

@ -186,28 +186,6 @@ public partial class RogueliteRoomManager : Node2D
//CallDeferred(MethodName.OpenStartDoorsDeferred, spawnedBeginRoom);
}
private Vector2I? FindValidBossRoomLocation(Vector2I from, int maxSteps = 10)
{
var directions = new List<Vector2I> { Vector2I.Right, Vector2I.Left, Vector2I.Up, Vector2I.Down };
for (int step = 0; step < maxSteps; step++)
{
directions = directions.OrderBy(_ => GD.Randi()).ToList();
foreach (var dir in directions)
{
var pos = from + dir;
var bossRoom = Rooms.FirstOrDefault(r => r.Type == RoomType.Boss);
if (bossRoom != null && CanPlaceRoom(pos, bossRoom.Size))
return pos;
from += dir;
}
}
return null;
}
private Vector2I GetNextPosition(Vector2I current, Vector2I target)
{
var possibleDirs = new List<Vector2I>();

View file

@ -0,0 +1 @@
uid://cll1kon3rc5j6