Fixed door spawning

This commit is contained in:
Marco 2025-04-17 16:51:20 +02:00
commit 718c20c643
14 changed files with 33 additions and 17 deletions

View file

@ -86,17 +86,17 @@ public partial class RogueliteRoom : Node2D
if (connected)
{
var door = this.CreateChild<Door>(DoorPrefab, marker.GlobalPosition);
var door = this.CreateChildOf<Door>(marker, DoorPrefab, marker.GlobalPosition);
door.State = DoorState.Closed;
_doors.Add(door);
if (connection.FromDoor is null && connection.ToDoor != door)
if (doorEdge == connection.From)
{
connection.FromDoor = door;
}
else if (connection.ToDoor is null && connection.FromDoor != door)
else if (doorEdge == connection.To)
{
connection.ToDoor = door;
}
@ -105,6 +105,19 @@ public partial class RogueliteRoom : Node2D
GD.Print($"Door {door} connection was full: {connection.From} {connection.FromDoor} to {connection.To} {connection.ToDoor}");
}
// 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);
// var label = new Label();

View file

@ -169,9 +169,8 @@ public partial class RogueliteRoomManager : Node2D
GD.PrintErr("Could not spawn boss room");
}
foreach (var roomEntry in _roomGrid)
foreach (var room in SpawnedRooms)
{
var room = roomEntry.Value;
room.HandleDoors((doorEdge, pos) =>
{
//var neighborPos = room.GridPosition + pos;
@ -235,6 +234,8 @@ public partial class RogueliteRoomManager : Node2D
spawnedScene.GridPosition = gridPos;
spawnedScene.Name = room.RoomName;
SpawnedRooms.Add(spawnedScene);
// for reference