From 718c20c643d77f7937f118c2eb74e6539cf74944 Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 17 Apr 2025 16:51:20 +0200 Subject: [PATCH] Fixed door spawning --- Resources/RogueliteMaps/Beginner1.tres | 2 +- Resources/RogueliteMaps/BigLarge.tres | 2 +- Resources/RogueliteMaps/BigMap.tres | 2 +- Resources/RogueliteMaps/Boss1.tres | 2 +- Resources/RogueliteMaps/TestMapLongX3.tres | 2 +- Resources/RogueliteMaps/TestRGMap.tres | 2 +- Resources/RogueliteMaps/TestRGMap2.tres | 2 +- Resources/RogueliteMaps/TestRGMapLarge.tres | 2 +- Resources/RogueliteMaps/TestRGMapLong.tres | 2 +- Scenes/Maps/Roguelike.tscn | 3 ++- Scenes/Maps/RogueliteMaps/Rg2.tscn | 1 + Scripts/Controllers/RogueliteRoom.cs | 21 +++++++++++++++++---- Scripts/Controllers/RogueliteRoomManager.cs | 5 +++-- project.godot | 2 +- 14 files changed, 33 insertions(+), 17 deletions(-) diff --git a/Resources/RogueliteMaps/Beginner1.tres b/Resources/RogueliteMaps/Beginner1.tres index 880f8953..f283dfbc 100644 --- a/Resources/RogueliteMaps/Beginner1.tres +++ b/Resources/RogueliteMaps/Beginner1.tres @@ -4,7 +4,7 @@ [resource] script = ExtResource("1_cyi2x") -RoomName = &"Beginning Test 1" +RoomName = &"Beginning" Type = 0 ScenePath = &"uid://24wh7h2dbljf" Size = Vector2i(1, 1) diff --git a/Resources/RogueliteMaps/BigLarge.tres b/Resources/RogueliteMaps/BigLarge.tres index 41a445dd..743444fb 100644 --- a/Resources/RogueliteMaps/BigLarge.tres +++ b/Resources/RogueliteMaps/BigLarge.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("5_yivs1") -RoomName = &"Test" +RoomName = &"BigLargeMap" Type = 1 ScenePath = &"uid://c3x64n451f3mk" Size = Vector2i(3, 2) diff --git a/Resources/RogueliteMaps/BigMap.tres b/Resources/RogueliteMaps/BigMap.tres index a2d1469e..2d57bde8 100644 --- a/Resources/RogueliteMaps/BigMap.tres +++ b/Resources/RogueliteMaps/BigMap.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("5_hvrt3") -RoomName = &"Big Test" +RoomName = &"BigTest" Type = 1 ScenePath = &"uid://dngwjgs5bhnx7" Size = Vector2i(2, 2) diff --git a/Resources/RogueliteMaps/Boss1.tres b/Resources/RogueliteMaps/Boss1.tres index efb3b9ee..c4ab2637 100644 --- a/Resources/RogueliteMaps/Boss1.tres +++ b/Resources/RogueliteMaps/Boss1.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("5_2u7yj") -RoomName = &"Boss" +RoomName = &"Boss1" Type = 4 ScenePath = &"uid://brytwc48xpj78" Size = Vector2i(1, 1) diff --git a/Resources/RogueliteMaps/TestMapLongX3.tres b/Resources/RogueliteMaps/TestMapLongX3.tres index d928a8fe..26e3cde1 100644 --- a/Resources/RogueliteMaps/TestMapLongX3.tres +++ b/Resources/RogueliteMaps/TestMapLongX3.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("5_ea8ub") -RoomName = &"Test" +RoomName = &"LongX3Map" Type = 1 ScenePath = &"uid://ss7hm1utnvn1" Size = Vector2i(1, 3) diff --git a/Resources/RogueliteMaps/TestRGMap.tres b/Resources/RogueliteMaps/TestRGMap.tres index 4d567767..7c6632e7 100644 --- a/Resources/RogueliteMaps/TestRGMap.tres +++ b/Resources/RogueliteMaps/TestRGMap.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("1_keg4c") -RoomName = &"Test" +RoomName = &"TestMapSmall" Type = 1 ScenePath = &"uid://da7hmajaaiohm" Size = Vector2i(1, 1) diff --git a/Resources/RogueliteMaps/TestRGMap2.tres b/Resources/RogueliteMaps/TestRGMap2.tres index c879c04f..0087e8dc 100644 --- a/Resources/RogueliteMaps/TestRGMap2.tres +++ b/Resources/RogueliteMaps/TestRGMap2.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("5_myanx") -RoomName = &"Test2" +RoomName = &"TestMapSmallLab" Type = 1 ScenePath = &"uid://dcxrdhq1yw5c7" Size = Vector2i(1, 1) diff --git a/Resources/RogueliteMaps/TestRGMapLarge.tres b/Resources/RogueliteMaps/TestRGMapLarge.tres index b7596ffa..49cac279 100644 --- a/Resources/RogueliteMaps/TestRGMapLarge.tres +++ b/Resources/RogueliteMaps/TestRGMapLarge.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("5_nda2n") -RoomName = &"Test" +RoomName = &"LargeMap" Type = 1 ScenePath = &"uid://c36nvk7cw3emg" Size = Vector2i(3, 1) diff --git a/Resources/RogueliteMaps/TestRGMapLong.tres b/Resources/RogueliteMaps/TestRGMapLong.tres index 8c54a05a..2dd5dbb8 100644 --- a/Resources/RogueliteMaps/TestRGMapLong.tres +++ b/Resources/RogueliteMaps/TestRGMapLong.tres @@ -8,7 +8,7 @@ [resource] script = ExtResource("5_ygk48") -RoomName = &"Test" +RoomName = &"LongMap" Type = 1 ScenePath = &"uid://hmu4dw62c10t" Size = Vector2i(1, 2) diff --git a/Scenes/Maps/Roguelike.tscn b/Scenes/Maps/Roguelike.tscn index 61398b68..53bc58c8 100644 --- a/Scenes/Maps/Roguelike.tscn +++ b/Scenes/Maps/Roguelike.tscn @@ -34,7 +34,8 @@ SpawnMarkers = Dictionary[int, NodePath]({ process_mode = 1 script = ExtResource("4_jtlua") Rooms = Array[Object]([ExtResource("5_gwtv6"), ExtResource("6_gwtv6"), ExtResource("7_wbqvu"), ExtResource("8_3fyis"), ExtResource("9_go1yg"), ExtResource("5_pfafs"), ExtResource("11_68lig"), ExtResource("12_83bvc"), ExtResource("13_y651a")]) -DungeonLength = 12 +DungeonLength = 4 +Seed = 1 [node name="CameraController" type="Camera2D" parent="."] process_mode = 1 diff --git a/Scenes/Maps/RogueliteMaps/Rg2.tscn b/Scenes/Maps/RogueliteMaps/Rg2.tscn index 82ec510e..136c5b65 100644 --- a/Scenes/Maps/RogueliteMaps/Rg2.tscn +++ b/Scenes/Maps/RogueliteMaps/Rg2.tscn @@ -24,6 +24,7 @@ script = ExtResource("1_cak6m") RoomResource = ExtResource("2_cak6m") DoorPrefab = ExtResource("3_wtdf1") WallPrefab = ExtResource("4_hgeju") +metadata/test_scene = "res://Scenes/Maps/Roguelike.tscn" [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] diff --git a/Scripts/Controllers/RogueliteRoom.cs b/Scripts/Controllers/RogueliteRoom.cs index 27e777ad..b1603098 100644 --- a/Scripts/Controllers/RogueliteRoom.cs +++ b/Scripts/Controllers/RogueliteRoom.cs @@ -86,17 +86,17 @@ public partial class RogueliteRoom : Node2D if (connected) { - var door = this.CreateChild(DoorPrefab, marker.GlobalPosition); + var door = this.CreateChildOf(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(); diff --git a/Scripts/Controllers/RogueliteRoomManager.cs b/Scripts/Controllers/RogueliteRoomManager.cs index 3679d694..6492db69 100644 --- a/Scripts/Controllers/RogueliteRoomManager.cs +++ b/Scripts/Controllers/RogueliteRoomManager.cs @@ -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 diff --git a/project.godot b/project.godot index e2d9085d..6cf1553c 100644 --- a/project.godot +++ b/project.godot @@ -150,7 +150,7 @@ movie_writer/movie_file="D:/Maddo/Recordings/Capture.avi" [editor_plugins] -enabled=PackedStringArray("res://addons/dialogic/plugin.cfg", "res://addons/resources_spreadsheet_view/plugin.cfg", "res://addons/scene_palette/plugin.cfg", "res://addons/smoothing/plugin.cfg") +enabled=PackedStringArray("res://addons/dialogic/plugin.cfg", "res://addons/godot_test_scene/plugin.cfg", "res://addons/resources_spreadsheet_view/plugin.cfg", "res://addons/scene_palette/plugin.cfg", "res://addons/smoothing/plugin.cfg") [global_group]