From 3fc39f63c4085ce0e659a5b4b8d931eb629ad7ea Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 23 Apr 2025 13:38:54 +0200 Subject: [PATCH] Automatic doors --- Resources/RogueliteMaps/1x1_1.tres | 18 +++ Resources/RogueliteMaps/1x2_1.tres | 18 +++ Resources/RogueliteMaps/Beginner1.tres | 4 +- Scenes/Maps/Roguelike.tscn | 11 +- Scenes/Maps/RogueliteMaps/1x1_1.tscn | 78 +++++++++++ Scenes/Maps/RogueliteMaps/1x2_1.tscn | 79 +++++++++++ Scenes/Maps/RogueliteMaps/Beginner1.tscn | 28 +--- Scenes/Maps/RogueliteMaps/Boss1.tscn | 24 +--- Scenes/Maps/RogueliteMaps/KeyRoom1.tscn | 24 +--- Scenes/Maps/RogueliteMaps/RGTestRoom1.tscn | 14 +- Scenes/Maps/RogueliteMaps/Rg1.tscn | 26 +--- Scenes/Maps/RogueliteMaps/Rg2.tscn | 24 +--- Scenes/Maps/RogueliteMaps/Rg2x1Lab.tscn | 35 +---- Scenes/Maps/RogueliteMaps/RgBig.tscn | 47 +------ Scenes/Maps/RogueliteMaps/RgBig2.tscn | 47 +------ Scenes/Maps/RogueliteMaps/RgBigLarge.tscn | 46 +------ .../Maps/RogueliteMaps/RgHorizontal1x1.tscn | 15 +-- Scenes/Maps/RogueliteMaps/RgLarge.tscn | 50 +------ Scenes/Maps/RogueliteMaps/RgLong.tscn | 38 +----- Scenes/Maps/RogueliteMaps/RgLongAcidWalk.tscn | 14 +- Scenes/Maps/RogueliteMaps/RgLongx3.tscn | 36 +---- Scenes/Maps/RogueliteMaps/SecretRoom1.tscn | 24 +--- Scenes/Maps/RogueliteMaps/ShopRoom1.tscn | 24 +--- Scenes/Maps/RogueliteMaps/TreasureRoom1.tscn | 24 +--- Scripts/Controllers/DoorMarker.cs | 23 ++-- Scripts/Controllers/RogueliteDoorContainer.cs | 28 ++++ .../Controllers/RogueliteDoorContainer.cs.uid | 1 + Scripts/Controllers/RogueliteRoom.cs | 127 ++++++++++++++++-- .../Roguelite/RogueliteRoomResource.cs | 1 + 29 files changed, 402 insertions(+), 526 deletions(-) create mode 100644 Resources/RogueliteMaps/1x1_1.tres create mode 100644 Resources/RogueliteMaps/1x2_1.tres create mode 100644 Scenes/Maps/RogueliteMaps/1x1_1.tscn create mode 100644 Scenes/Maps/RogueliteMaps/1x2_1.tscn create mode 100644 Scripts/Controllers/RogueliteDoorContainer.cs create mode 100644 Scripts/Controllers/RogueliteDoorContainer.cs.uid diff --git a/Resources/RogueliteMaps/1x1_1.tres b/Resources/RogueliteMaps/1x1_1.tres new file mode 100644 index 00000000..03cc6e67 --- /dev/null +++ b/Resources/RogueliteMaps/1x1_1.tres @@ -0,0 +1,18 @@ +[gd_resource type="Resource" script_class="RogueliteRoomResource" load_steps=6 format=3 uid="uid://bxvv82vno8ub1"] + +[ext_resource type="Resource" uid="uid://cocl3qontm3be" path="res://Resources/Enemies/Base_Fairy.tres" id="1_kawex"] +[ext_resource type="Resource" uid="uid://cqfyuurvqb8m6" path="res://Resources/Enemies/Base_Fairy_Special.tres" id="2_ricl3"] +[ext_resource type="Resource" uid="uid://qbo6avc7x64b" path="res://Resources/Enemies/Fairy_Guard.tres" id="3_uwwq2"] +[ext_resource type="Resource" uid="uid://cfdvg162u65sr" path="res://Resources/Enemies/Thermathron.tres" id="4_nf0j0"] +[ext_resource type="Script" uid="uid://bl2ne8w12e3a" path="res://Scripts/Resources/Roguelite/RogueliteRoomResource.cs" id="5_24r3d"] + +[resource] +script = ExtResource("5_24r3d") +RoomName = &"TestMapSmall" +Type = 1 +ScenePath = &"uid://b1d8s1dyvlpea" +Size = Vector2i(1, 1) +DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)]) +SpawnableEnemies = Array[Object]([ExtResource("1_kawex"), ExtResource("2_ricl3"), ExtResource("3_uwwq2"), ExtResource("4_nf0j0")]) +DoorDirections = 30 +metadata/_custom_type_script = "uid://bl2ne8w12e3a" diff --git a/Resources/RogueliteMaps/1x2_1.tres b/Resources/RogueliteMaps/1x2_1.tres new file mode 100644 index 00000000..d6c619b6 --- /dev/null +++ b/Resources/RogueliteMaps/1x2_1.tres @@ -0,0 +1,18 @@ +[gd_resource type="Resource" script_class="RogueliteRoomResource" load_steps=6 format=3 uid="uid://d01146n5uo0gd"] + +[ext_resource type="Resource" uid="uid://cocl3qontm3be" path="res://Resources/Enemies/Base_Fairy.tres" id="1_3l1ud"] +[ext_resource type="Resource" uid="uid://cqfyuurvqb8m6" path="res://Resources/Enemies/Base_Fairy_Special.tres" id="2_k8mgx"] +[ext_resource type="Resource" uid="uid://qbo6avc7x64b" path="res://Resources/Enemies/Fairy_Guard.tres" id="3_pwwwb"] +[ext_resource type="Resource" uid="uid://cfdvg162u65sr" path="res://Resources/Enemies/Thermathron.tres" id="4_6ybgs"] +[ext_resource type="Script" uid="uid://bl2ne8w12e3a" path="res://Scripts/Resources/Roguelite/RogueliteRoomResource.cs" id="5_v4ch6"] + +[resource] +script = ExtResource("5_v4ch6") +RoomName = &"LongMap" +Type = 1 +ScenePath = &"uid://c4hcrag27aavo" +Size = Vector2i(1, 2) +DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)]) +SpawnableEnemies = Array[Object]([ExtResource("1_3l1ud"), ExtResource("2_k8mgx"), ExtResource("3_pwwwb"), ExtResource("4_6ybgs")]) +DoorDirections = 30 +metadata/_custom_type_script = "uid://bl2ne8w12e3a" diff --git a/Resources/RogueliteMaps/Beginner1.tres b/Resources/RogueliteMaps/Beginner1.tres index 4bad7933..f70f980b 100644 --- a/Resources/RogueliteMaps/Beginner1.tres +++ b/Resources/RogueliteMaps/Beginner1.tres @@ -9,6 +9,6 @@ Type = 0 ScenePath = &"uid://24wh7h2dbljf" Size = Vector2i(1, 1) DoorGridPositions = Array[Vector2i]([Vector2i(0, -1)]) -SpawnableEnemies = null -DoorDirections = 4 +SpawnableEnemies = [] +DoorDirections = 30 metadata/_custom_type_script = "uid://bl2ne8w12e3a" diff --git a/Scenes/Maps/Roguelike.tscn b/Scenes/Maps/Roguelike.tscn index 965caa49..32c008d9 100644 --- a/Scenes/Maps/Roguelike.tscn +++ b/Scenes/Maps/Roguelike.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=30 format=3 uid="uid://bf1kqr3o6r6d4"] +[gd_scene load_steps=32 format=3 uid="uid://bf1kqr3o6r6d4"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_wbqvu"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_3fyis"] @@ -29,6 +29,8 @@ [ext_resource type="Resource" uid="uid://bo4efv7rwowuh" path="res://Resources/RogueliteMaps/SecretRoom1.tres" id="20_xrp0h"] [ext_resource type="Resource" uid="uid://cb7gk278lmicd" path="res://Resources/RogueliteMaps/Lab2x1_1.tres" id="21_2lxq3"] [ext_resource type="Resource" uid="uid://char0yv78vtty" path="res://Resources/RogueliteMaps/BigTest2.tres" id="22_6ahuq"] +[ext_resource type="Resource" uid="uid://bxvv82vno8ub1" path="res://Resources/RogueliteMaps/1x1_1.tres" id="23_xrp0h"] +[ext_resource type="Resource" uid="uid://d01146n5uo0gd" path="res://Resources/RogueliteMaps/1x2_1.tres" id="24_e0fjr"] [node name="GameScene" type="Node2D"] process_mode = 3 @@ -43,9 +45,12 @@ SpawnMarkers = Dictionary[int, NodePath]({ process_mode = 1 y_sort_enabled = true 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"), ExtResource("14_vhvs2"), ExtResource("15_6gk3e"), ExtResource("16_4gy5m"), ExtResource("17_td7hx"), ExtResource("18_2lxq3"), ExtResource("19_6ahuq"), ExtResource("20_xrp0h"), ExtResource("21_2lxq3"), ExtResource("22_6ahuq")]) -DungeonLength = 4 +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"), ExtResource("14_vhvs2"), ExtResource("15_6gk3e"), ExtResource("16_4gy5m"), ExtResource("17_td7hx"), ExtResource("18_2lxq3"), ExtResource("19_6ahuq"), ExtResource("20_xrp0h"), ExtResource("21_2lxq3"), ExtResource("22_6ahuq"), ExtResource("23_xrp0h"), ExtResource("24_e0fjr")]) +DungeonLength = 3 MaxBranchLength = 2 +MaxKeys = 2 +MaxSecrets = 1 +MaxTreasures = 1 Seed = 1 [node name="CameraController" type="Camera2D" parent="."] diff --git a/Scenes/Maps/RogueliteMaps/1x1_1.tscn b/Scenes/Maps/RogueliteMaps/1x1_1.tscn new file mode 100644 index 00000000..d2867160 --- /dev/null +++ b/Scenes/Maps/RogueliteMaps/1x1_1.tscn @@ -0,0 +1,78 @@ +[gd_scene load_steps=10 format=4 uid="uid://b1d8s1dyvlpea"] + +[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_gia43"] +[ext_resource type="Resource" uid="uid://bxvv82vno8ub1" path="res://Resources/RogueliteMaps/1x1_1.tres" id="2_gia43"] +[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_tth3t"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_2fric"] +[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_bl5tn"] +[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_dhet3"] +[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_wp2g7"] + +[sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] +vertices = PackedVector2Array(166, 58, 294, 58, 294, 134, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(3, 4, 5, 6), PackedInt32Array(0, 3, 6, 7), PackedInt32Array(6, 8, 9, 7), PackedInt32Array(10, 0, 7, 11)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, 49, 34)]) +parsed_collision_mask = 353 +source_geometry_mode = 1 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_rlq0q"] +size = Vector2(272, 85) + +[node name="Map" type="Node2D"] +process_mode = 1 +script = ExtResource("1_gia43") +RoomResource = ExtResource("2_gia43") +DoorPrefab = ExtResource("3_tth3t") +VerticalDoorPrefab = ExtResource("4_2fric") +WallPrefab = ExtResource("4_bl5tn") + +[node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] + +[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers") groups=["Solid"]] +tile_map_data = PackedByteArray("AAAAAAIAAAALAAYAAAAAAAMAAAALAAYAAAAAAAQAAAALAAYAAAAAAAUAAAALAAYAAAAAAAYAAAALAAYAAAAAAAcAAAALAAYAAAAAAAgAAAALAAYAAAAAAAkAAAALAAYAAAABAAIAAAALAAYAAAABAAMAAAALAAYAAAABAAQAAAALAAYAAAABAAUAAAALAAYAAAABAAYAAAALAAYAAAABAAcAAAALAAYAAAABAAgAAAALAAYAAAABAAkAAAALAAYAAAACAAIAAAALAAYAAAACAAMAAAALAAYAAAACAAQAAAALAAYAAAACAAUAAAALAAYAAAACAAYAAAALAAYAAAACAAcAAAALAAYAAAACAAgAAAALAAYAAAACAAkAAAALAAYAAAADAAIAAAALAAYAAAADAAMAAAALAAYAAAADAAQAAAALAAYAAAADAAUAAAALAAYAAAADAAYAAAALAAYAAAADAAcAAAALAAYAAAADAAgAAAALAAYAAAADAAkAAAALAAYAAAAEAAIAAAALAAYAAAAEAAMAAAALAAYAAAAEAAQAAAALAAYAAAAEAAUAAAALAAYAAAAEAAYAAAALAAYAAAAEAAcAAAALAAYAAAAEAAgAAAALAAYAAAAEAAkAAAALAAYAAAAFAAIAAAALAAYAAAAFAAMAAAALAAYAAAAFAAQAAAALAAYAAAAFAAUAAAALAAYAAAAFAAYAAAALAAYAAAAFAAcAAAALAAYAAAAFAAgAAAALAAYAAAAFAAkAAAALAAYAAAAGAAIAAAALAAYAAAAGAAMAAAALAAYAAAAGAAQAAAALAAYAAAAGAAUAAAALAAYAAAAGAAYAAAALAAYAAAAGAAcAAAALAAYAAAAGAAgAAAALAAYAAAAGAAkAAAALAAYAAAAHAAIAAAALAAYAAAAHAAMAAAALAAYAAAAHAAQAAAALAAYAAAAHAAUAAAALAAYAAAAHAAYAAAALAAYAAAAHAAcAAAALAAYAAAAHAAgAAAALAAYAAAAHAAkAAAALAAYAAAAIAAIAAAALAAYAAAAIAAMAAAALAAYAAAAIAAQAAAALAAYAAAAIAAUAAAALAAYAAAAIAAYAAAALAAYAAAAIAAcAAAALAAYAAAAIAAgAAAALAAYAAAAIAAkAAAALAAYAAAAJAAIAAAALAAYAAAAJAAMAAAALAAYAAAAJAAQAAAALAAYAAAAJAAUAAAALAAYAAAAJAAYAAAALAAYAAAAJAAcAAAALAAYAAAAJAAgAAAALAAYAAAAJAAkAAAALAAYAAAAKAAIAAAALAAYAAAAKAAMAAAALAAYAAAAKAAQAAAALAAYAAAAKAAUAAAALAAYAAAAKAAYAAAALAAYAAAAKAAcAAAALAAYAAAAKAAgAAAALAAYAAAAKAAkAAAALAAYAAAALAAIAAAALAAYAAAALAAUAAAALAAYAAAALAAYAAAALAAYAAAALAAcAAAALAAYAAAALAAgAAAALAAYAAAALAAkAAAALAAYAAAAMAAIAAAALAAYAAAAMAAUAAAALAAYAAAAMAAYAAAALAAYAAAAMAAcAAAALAAYAAAAMAAgAAAALAAYAAAAMAAkAAAALAAYAAAANAAIAAAALAAYAAAANAAMAAAALAAYAAAANAAQAAAALAAYAAAANAAUAAAALAAYAAAANAAYAAAALAAYAAAANAAcAAAALAAYAAAANAAgAAAALAAYAAAANAAkAAAALAAYAAAAOAAIAAAALAAYAAAAOAAMAAAALAAYAAAAOAAQAAAALAAYAAAAOAAUAAAALAAYAAAAOAAYAAAALAAYAAAAOAAcAAAALAAYAAAAOAAgAAAALAAYAAAAOAAkAAAALAAYAAAAPAAIAAAALAAYAAAAPAAMAAAALAAYAAAAPAAQAAAALAAYAAAAPAAUAAAALAAYAAAAPAAYAAAALAAYAAAAPAAcAAAALAAYAAAAPAAgAAAALAAYAAAAPAAkAAAALAAYAAAAQAAIAAAALAAYAAAAQAAMAAAALAAYAAAAQAAQAAAALAAYAAAAQAAUAAAALAAYAAAAQAAYAAAALAAYAAAAQAAcAAAALAAYAAAAQAAgAAAALAAYAAAAQAAkAAAALAAYAAAARAAIAAAALAAYAAAARAAMAAAALAAYAAAARAAQAAAALAAYAAAARAAUAAAALAAYAAAARAAYAAAALAAYAAAARAAcAAAALAAYAAAARAAgAAAALAAYAAAARAAkAAAALAAYAAAASAAIAAAALAAYAAAASAAMAAAALAAYAAAASAAQAAAALAAYAAAASAAUAAAALAAYAAAASAAYAAAALAAYAAAASAAcAAAALAAYAAAASAAgAAAALAAYAAAASAAkAAAALAAYAAAATAAIAAAALAAYAAAATAAMAAAALAAYAAAATAAQAAAALAAYAAAATAAUAAAALAAYAAAATAAYAAAALAAYAAAATAAcAAAALAAYAAAATAAgAAAALAAYAAAATAAkAAAALAAYAAAAAAAAAAAALAAYAAAAAAAEAAAALAAYAAAABAAAAAAALAAYAAAABAAEAAAALAAYAAAACAAAAAAALAAYAAAACAAEAAAALAAYAAAADAAAAAAALAAYAAAADAAEAAAALAAYAAAAEAAAAAAALAAYAAAAEAAEAAAALAAYAAAAFAAAAAAALAAYAAAAFAAEAAAALAAYAAAAGAAAAAAALAAYAAAAGAAEAAAALAAYAAAAHAAAAAAALAAYAAAAHAAEAAAALAAYAAAAIAAAAAAALAAYAAAAIAAEAAAALAAYAAAAJAAAAAAALAAYAAAAJAAEAAAALAAYAAAAKAAAAAAALAAYAAAAKAAEAAAALAAYAAAALAAAAAAALAAYAAAALAAEAAAALAAYAAAALAAMAAAALAAYAAAALAAQAAAALAAYAAAAMAAAAAAALAAYAAAAMAAEAAAALAAYAAAAMAAMAAAALAAYAAAAMAAQAAAALAAYAAAANAAAAAAALAAYAAAANAAEAAAALAAYAAAAOAAAAAAALAAYAAAAOAAEAAAALAAYAAAAPAAAAAAALAAYAAAAPAAEAAAALAAYAAAAQAAAAAAALAAYAAAAQAAEAAAALAAYAAAARAAAAAAALAAYAAAARAAEAAAALAAYAAAASAAAAAAALAAYAAAASAAEAAAALAAYAAAATAAAAAAALAAYAAAATAAEAAAALAAYAAAA=") +tile_set = ExtResource("5_dhet3") +navigation_enabled = false +script = ExtResource("6_wp2g7") +_solidLayers = [NodePath("../Solid"), NodePath("../Props")] +metadata/_edit_lock_ = true + +[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_map_data = PackedByteArray("AAATAAAAAAABAAsAAAASAAAAAAABAAQAAAARAAAAAAABAAQAAAAQAAAAAAABAAQAAAAPAAAAAAABAAQAAAAOAAAAAAABAAQAAAANAAAAAAABAAQAAAAMAAAAAAABAAQAAAALAAAAAAACAAQAAAAIAAAAAAADAAQAAAAHAAAAAAABAAQAAAAGAAAAAAABAAQAAAAFAAAAAAABAAQAAAAEAAAAAAABAAQAAAADAAAAAAABAAQAAAACAAAAAAABAAQAAAABAAAAAAABAAQAAAAAAAAAAAAAAAsAAAATAAIAAAAEAAQAAAATAAEAAAAAAAQAAAAAAAIAAAAEAAQAAAAAAAEAAAAAAAQAAAAAAAkAAAAAAAwAAAAAAAgAAAAAAAQAAAAAAAcAAAAAAAQAAAAAAAYAAAAFAAQAAAATAAkAAAABAAwAAAASAAkAAAABAAQAAAARAAkAAAABAAQAAAAQAAkAAAABAAQAAAAPAAkAAAABAAQAAAAOAAkAAAABAAQAAAANAAkAAAABAAQAAAAMAAkAAAABAAQAAAALAAkAAAACAAQAAAAIAAkAAAADAAQAAAAHAAkAAAABAAQAAAAGAAkAAAABAAQAAAAFAAkAAAABAAQAAAAEAAkAAAABAAQAAAADAAkAAAABAAQAAAACAAkAAAABAAQAAAABAAkAAAABAAQAAAATAAgAAAAAAAQAAAATAAcAAAAAAAQAAAATAAYAAAAFAAQAAAATAAMAAAAKAAgAAAATAAQAAAAKAAkAAAALAAEAAAAKAAgAAAALAAIAAAAKAAkAAAAMAAEAAAAKAAgAAAAMAAIAAAAKAAkAAAANAAEAAAAKAAgAAAANAAIAAAAKAAkAAAAOAAEAAAAKAAgAAAAOAAIAAAAKAAkAAAAPAAEAAAAKAAgAAAAPAAIAAAAKAAkAAAAQAAEAAAAKAAgAAAAQAAIAAAAKAAkAAAARAAEAAAAKAAgAAAARAAIAAAAKAAkAAAASAAEAAAAKAAgAAAASAAIAAAAKAAkAAAABAAEAAAAKAAgAAAABAAIAAAAKAAkAAAACAAEAAAAKAAgAAAACAAIAAAAKAAkAAAADAAEAAAAKAAgAAAADAAIAAAAKAAkAAAAEAAEAAAAKAAgAAAAEAAIAAAAKAAkAAAAFAAEAAAAKAAgAAAAFAAIAAAAKAAkAAAAGAAEAAAAKAAgAAAAGAAIAAAAKAAkAAAAHAAEAAAAKAAgAAAAHAAIAAAAKAAkAAAAIAAEAAAAKAAgAAAAIAAIAAAAKAAkAAAAAAAMAAAAKAAgAAAAAAAQAAAAKAAkAAAA=") +tile_set = ExtResource("5_dhet3") +navigation_enabled = false +metadata/_edit_lock_ = true + +[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_map_data = PackedByteArray("AAALAAEAAAAJAAwAAAALAAIAAAAJAA0AAAAIAAEAAAAKAAwAAAAIAAIAAAAKAA0AAAATAAMAAAAKAA4AAAATAAQAAAAKAA8AAAAAAAMAAAAKAA4AAAAAAAQAAAAKAA8AAAABAAcAAQAAAAAAAgABAAgAAQAAAAAAAgACAAgAAQAAAAAAAgAHAAUAAQAAAAAAAQANAAQAAQAAAAAAAQAOAAQAAQAAAAAAAQAQAAgAAQAAAAAADAARAAgAAQAAAAAADAARAAMAAQAAAAAADAASAAMAAQAAAAAADAASAAgAAQAAAAAAEAAQAAMAAQAAAAAAEAABAAMAAQAAAAAAEAACAAMAAQAAAAAAEAABAAQAAQAAAAAAEAADAAMAAQAAAAAAEAA=") +tile_set = ExtResource("5_dhet3") +navigation_enabled = false +metadata/_edit_lock_ = true + +[node name="Actors" type="Node2D" parent="Tilemaps"] +metadata/_edit_lock_ = true + +[node name="EnemySpawners" type="Node2D" parent="."] + +[node name="RogueliteEnemySpawner" type="Marker2D" parent="EnemySpawners"] +position = Vector2(64, 129) + +[node name="RogueliteEnemySpawner2" type="Marker2D" parent="EnemySpawners"] +position = Vector2(193, 81) + +[node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] +position = Vector2(242, 131) + +[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] +visible = false +navigation_polygon = SubResource("NavigationPolygon_rlq0q") + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +visible = false +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(162, 94.5) +shape = SubResource("RectangleShape2D_rlq0q") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scenes/Maps/RogueliteMaps/1x2_1.tscn b/Scenes/Maps/RogueliteMaps/1x2_1.tscn new file mode 100644 index 00000000..48182ea4 --- /dev/null +++ b/Scenes/Maps/RogueliteMaps/1x2_1.tscn @@ -0,0 +1,79 @@ +[gd_scene load_steps=10 format=4 uid="uid://c4hcrag27aavo"] + +[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_ay5qo"] +[ext_resource type="Resource" uid="uid://d01146n5uo0gd" path="res://Resources/RogueliteMaps/1x2_1.tres" id="2_ay5qo"] +[ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_8hj7l"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_ay5qo"] +[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_wqh27"] +[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_eqg76"] +[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_upxxh"] + +[sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] +vertices = PackedVector2Array(166, 58, 294, 58, 294, 294, 166, 294, 166, 310, 154, 310, 154, 294, 154, 58, 26, 294, 26, 58, 166, 10, 154, 10) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(3, 4, 5, 6), PackedInt32Array(0, 3, 6, 7), PackedInt32Array(6, 8, 9, 7), PackedInt32Array(10, 0, 7, 11)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(17, 36, 14, 12, 47, 15, 49, 34)]) +parsed_collision_mask = 353 +source_geometry_mode = 1 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_4lag8"] +size = Vector2(272, 247) + +[node name="Map" type="Node2D"] +process_mode = 1 +script = ExtResource("1_ay5qo") +RoomResource = ExtResource("2_ay5qo") +DoorPrefab = ExtResource("3_8hj7l") +VerticalDoorPrefab = ExtResource("4_ay5qo") +WallPrefab = ExtResource("4_wqh27") + +[node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] + +[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers") groups=["Solid"]] +tile_map_data = PackedByteArray("AAAAAAIAAAAMAAcAAAAAAAMAAAAMAAcAAAAAAAQAAAAMAAcAAAAAAAUAAAAMAAcAAAAAAAYAAAAMAAcAAAAAAAcAAAAMAAcAAAAAAAgAAAAMAAcAAAAAAAkAAAAMAAcAAAABAAIAAAAMAAcAAAABAAMAAAAMAAcAAAABAAQAAAAMAAcAAAABAAUAAAAMAAcAAAABAAYAAAAMAAcAAAABAAcAAAAMAAcAAAABAAgAAAAMAAcAAAABAAkAAAAMAAcAAAACAAIAAAAMAAcAAAACAAMAAAAMAAcAAAACAAQAAAAMAAcAAAACAAUAAAAMAAcAAAACAAYAAAAMAAcAAAACAAcAAAAMAAcAAAACAAgAAAAMAAcAAAACAAkAAAAMAAcAAAADAAIAAAAMAAcAAAADAAMAAAAMAAcAAAADAAQAAAAMAAcAAAADAAUAAAAMAAcAAAADAAYAAAAMAAcAAAADAAcAAAAMAAcAAAADAAgAAAAMAAcAAAADAAkAAAAMAAcAAAAEAAIAAAAMAAcAAAAEAAMAAAAMAAcAAAAEAAQAAAAMAAcAAAAEAAUAAAAMAAcAAAAEAAYAAAAMAAcAAAAEAAcAAAAMAAcAAAAEAAgAAAAMAAcAAAAEAAkAAAAMAAcAAAAFAAIAAAAMAAcAAAAFAAMAAAAMAAcAAAAFAAQAAAAMAAcAAAAFAAUAAAAMAAcAAAAFAAYAAAAMAAcAAAAFAAcAAAAMAAcAAAAFAAgAAAAMAAcAAAAFAAkAAAAMAAcAAAAGAAIAAAAMAAcAAAAGAAMAAAAMAAcAAAAGAAQAAAAMAAcAAAAGAAUAAAAMAAcAAAAGAAYAAAAMAAcAAAAGAAcAAAAMAAcAAAAGAAgAAAAMAAcAAAAGAAkAAAAMAAcAAAAHAAIAAAAMAAcAAAAHAAMAAAAMAAcAAAAHAAQAAAAMAAcAAAAHAAUAAAAMAAcAAAAHAAYAAAAMAAcAAAAHAAcAAAAMAAcAAAAHAAgAAAAMAAcAAAAHAAkAAAAMAAcAAAAIAAIAAAAMAAcAAAAIAAMAAAAMAAcAAAAIAAQAAAAMAAcAAAAIAAUAAAAMAAcAAAAIAAYAAAAMAAcAAAAIAAcAAAAMAAcAAAAIAAgAAAAMAAcAAAAIAAkAAAAMAAcAAAAJAAIAAAAMAAcAAAAJAAMAAAAMAAcAAAAJAAQAAAAMAAcAAAAJAAUAAAAMAAcAAAAJAAYAAAAMAAcAAAAJAAcAAAAMAAcAAAAJAAgAAAAMAAcAAAAJAAkAAAAMAAcAAAAKAAIAAAAMAAcAAAAKAAMAAAAMAAcAAAAKAAQAAAAMAAcAAAAKAAUAAAAMAAcAAAAKAAYAAAAMAAcAAAAKAAcAAAAMAAcAAAAKAAgAAAAMAAcAAAAKAAkAAAAMAAcAAAALAAIAAAAMAAcAAAALAAUAAAAMAAcAAAALAAYAAAAMAAcAAAALAAcAAAAMAAcAAAALAAgAAAAMAAcAAAALAAkAAAAMAAcAAAAMAAIAAAAMAAcAAAAMAAUAAAAMAAcAAAAMAAYAAAAMAAcAAAAMAAcAAAAMAAcAAAAMAAgAAAAMAAcAAAAMAAkAAAAMAAcAAAANAAIAAAAMAAcAAAANAAMAAAAMAAcAAAANAAQAAAAMAAcAAAANAAUAAAAMAAcAAAANAAYAAAAMAAcAAAANAAcAAAAMAAcAAAANAAgAAAAMAAcAAAANAAkAAAAMAAcAAAAOAAIAAAAMAAcAAAAOAAMAAAAMAAcAAAAOAAQAAAAMAAcAAAAOAAUAAAAMAAcAAAAOAAYAAAAMAAcAAAAOAAcAAAAMAAcAAAAOAAgAAAAMAAcAAAAOAAkAAAAMAAcAAAAPAAIAAAAMAAcAAAAPAAMAAAAMAAcAAAAPAAQAAAAMAAcAAAAPAAUAAAAMAAcAAAAPAAYAAAAMAAcAAAAPAAcAAAAMAAcAAAAPAAgAAAAMAAcAAAAPAAkAAAAMAAcAAAAQAAIAAAAMAAcAAAAQAAMAAAAMAAcAAAAQAAQAAAAMAAcAAAAQAAUAAAAMAAcAAAAQAAYAAAAMAAcAAAAQAAcAAAAMAAcAAAAQAAgAAAAMAAcAAAAQAAkAAAAMAAcAAAARAAIAAAAMAAcAAAARAAMAAAAMAAcAAAARAAQAAAAMAAcAAAARAAUAAAAMAAcAAAARAAYAAAAMAAcAAAARAAcAAAAMAAcAAAARAAgAAAAMAAcAAAARAAkAAAAMAAcAAAASAAIAAAAMAAcAAAASAAMAAAAMAAcAAAASAAQAAAAMAAcAAAASAAUAAAAMAAcAAAASAAYAAAAMAAcAAAASAAcAAAAMAAcAAAASAAgAAAAMAAcAAAASAAkAAAAMAAcAAAATAAIAAAAMAAcAAAATAAMAAAAMAAcAAAATAAQAAAAMAAcAAAATAAUAAAAMAAcAAAATAAYAAAAMAAcAAAATAAcAAAAMAAcAAAATAAgAAAAMAAcAAAATAAkAAAAMAAcAAAAAAAAAAAAMAAcAAAAAAAEAAAAMAAcAAAABAAAAAAAMAAcAAAABAAEAAAAMAAcAAAACAAAAAAAMAAcAAAACAAEAAAAMAAcAAAADAAAAAAAMAAcAAAADAAEAAAAMAAcAAAAEAAAAAAAMAAcAAAAEAAEAAAAMAAcAAAAFAAAAAAAMAAcAAAAFAAEAAAAMAAcAAAAGAAAAAAAMAAcAAAAGAAEAAAAMAAcAAAAHAAAAAAAMAAcAAAAHAAEAAAAMAAcAAAAIAAAAAAAMAAcAAAAIAAEAAAAMAAcAAAAJAAAAAAAMAAcAAAAJAAEAAAAMAAcAAAAKAAAAAAAMAAcAAAAKAAEAAAAMAAcAAAALAAAAAAAMAAcAAAALAAEAAAAMAAcAAAALAAMAAAAMAAcAAAALAAQAAAAMAAcAAAAMAAAAAAAMAAcAAAAMAAEAAAAMAAcAAAAMAAMAAAAMAAcAAAAMAAQAAAAMAAcAAAANAAAAAAAMAAcAAAANAAEAAAAMAAcAAAAOAAAAAAAMAAcAAAAOAAEAAAAMAAcAAAAPAAAAAAAMAAcAAAAPAAEAAAAMAAcAAAAQAAAAAAAMAAcAAAAQAAEAAAAMAAcAAAARAAAAAAAMAAcAAAARAAEAAAAMAAcAAAASAAAAAAAMAAcAAAASAAEAAAAMAAcAAAATAAAAAAAMAAcAAAATAAEAAAAMAAcAAAAAAAoAAAAMAAcAAAAAAAsAAAAMAAcAAAABAAoAAAAMAAcAAAABAAsAAAAMAAcAAAACAAoAAAAMAAcAAAACAAsAAAAMAAcAAAADAAoAAAAMAAcAAAADAAsAAAAMAAcAAAAEAAoAAAAMAAcAAAAEAAsAAAAMAAcAAAAAAAwAAAAMAAcAAAAAAA0AAAAMAAcAAAAAAA4AAAAMAAcAAAAAAA8AAAAMAAcAAAABAAwAAAAMAAcAAAABAA0AAAAMAAcAAAABAA4AAAAMAAcAAAABAA8AAAAMAAcAAAACAAwAAAAMAAcAAAACAA0AAAAMAAcAAAACAA4AAAAMAAcAAAACAA8AAAAMAAcAAAADAAwAAAAMAAcAAAADAA0AAAAMAAcAAAADAA4AAAAMAAcAAAADAA8AAAAMAAcAAAAEAAwAAAAMAAcAAAAEAA0AAAAMAAcAAAAEAA4AAAAMAAcAAAAEAA8AAAAMAAcAAAAAABAAAAAMAAcAAAAAABEAAAAMAAcAAAAAABIAAAAMAAcAAAAAABMAAAAMAAcAAAABABAAAAAMAAcAAAABABEAAAAMAAcAAAABABIAAAAMAAcAAAABABMAAAAMAAcAAAACABAAAAAMAAcAAAACABEAAAAMAAcAAAACABIAAAAMAAcAAAACABMAAAAMAAcAAAADABAAAAAMAAcAAAADABEAAAAMAAcAAAADABIAAAAMAAcAAAADABMAAAAMAAcAAAAEABAAAAAMAAcAAAAEABEAAAAMAAcAAAAEABIAAAAMAAcAAAAEABMAAAAMAAcAAAAFAAoAAAAMAAcAAAAFAAsAAAAMAAcAAAAGAAoAAAAMAAcAAAAGAAsAAAAMAAcAAAAHAAoAAAAMAAcAAAAHAAsAAAAMAAcAAAAIAAoAAAAMAAcAAAAIAAsAAAAMAAcAAAAJAAoAAAAMAAcAAAAJAAsAAAAMAAcAAAAKAAoAAAAMAAcAAAAKAAsAAAAMAAcAAAALAAoAAAAMAAcAAAALAAsAAAAMAAcAAAAMAAoAAAAMAAcAAAAMAAsAAAAMAAcAAAANAAoAAAAMAAcAAAANAAsAAAAMAAcAAAAOAAoAAAAMAAcAAAAOAAsAAAAMAAcAAAAPAAoAAAAMAAcAAAAPAAsAAAAMAAcAAAAQAAoAAAAMAAcAAAAQAAsAAAAMAAcAAAARAAoAAAAMAAcAAAARAAsAAAAMAAcAAAASAAoAAAAMAAcAAAASAAsAAAAMAAcAAAATAAoAAAAMAAcAAAATAAsAAAAMAAcAAAAFAAwAAAAMAAcAAAAFAA0AAAAMAAcAAAAFAA4AAAAMAAcAAAAFAA8AAAAMAAcAAAAGAAwAAAAMAAcAAAAGAA0AAAAMAAcAAAAGAA4AAAAMAAcAAAAGAA8AAAAMAAcAAAAHAAwAAAAMAAcAAAAHAA0AAAAMAAcAAAAHAA4AAAAMAAcAAAAHAA8AAAAMAAcAAAAIAAwAAAAMAAcAAAAIAA0AAAAMAAcAAAAIAA4AAAAMAAcAAAAIAA8AAAAMAAcAAAAJAAwAAAAMAAcAAAAJAA0AAAAMAAcAAAAJAA4AAAAMAAcAAAAJAA8AAAAMAAcAAAAKAAwAAAAMAAcAAAAKAA0AAAAMAAcAAAAKAA4AAAAMAAcAAAAKAA8AAAAMAAcAAAALAAwAAAAMAAcAAAALAA0AAAAMAAcAAAALAA4AAAAMAAcAAAALAA8AAAAMAAcAAAAMAAwAAAAMAAcAAAAMAA0AAAAMAAcAAAAMAA4AAAAMAAcAAAAMAA8AAAAMAAcAAAANAAwAAAAMAAcAAAANAA0AAAAMAAcAAAANAA4AAAAMAAcAAAANAA8AAAAMAAcAAAAOAAwAAAAMAAcAAAAOAA0AAAAMAAcAAAAOAA4AAAAMAAcAAAAOAA8AAAAMAAcAAAAPAAwAAAAMAAcAAAAPAA0AAAAMAAcAAAAPAA4AAAAMAAcAAAAPAA8AAAAMAAcAAAAQAAwAAAAMAAcAAAAQAA0AAAAMAAcAAAAQAA4AAAAMAAcAAAAQAA8AAAAMAAcAAAARAAwAAAAMAAcAAAARAA0AAAAMAAcAAAARAA4AAAAMAAcAAAARAA8AAAAMAAcAAAASAAwAAAAMAAcAAAASAA0AAAAMAAcAAAASAA4AAAAMAAcAAAASAA8AAAAMAAcAAAATAAwAAAAMAAcAAAATAA0AAAAMAAcAAAATAA4AAAAMAAcAAAATAA8AAAAMAAcAAAAFABAAAAAMAAcAAAAFABEAAAAMAAcAAAAFABIAAAAMAAcAAAAFABMAAAAMAAcAAAAGABAAAAAMAAcAAAAGABEAAAAMAAcAAAAGABIAAAAMAAcAAAAGABMAAAAMAAcAAAAHABAAAAAMAAcAAAAHABEAAAAMAAcAAAAHABIAAAAMAAcAAAAHABMAAAAMAAcAAAAIABAAAAAMAAcAAAAIABEAAAAMAAcAAAAIABIAAAAMAAcAAAAIABMAAAAMAAcAAAAJABAAAAAMAAcAAAAJABEAAAAMAAcAAAAJABIAAAAMAAcAAAAJABMAAAAMAAcAAAAKABAAAAAMAAcAAAAKABEAAAAMAAcAAAAKABIAAAAMAAcAAAAKABMAAAAMAAcAAAALABAAAAAMAAcAAAALABEAAAAMAAcAAAALABIAAAAMAAcAAAALABMAAAAMAAcAAAAMABAAAAAMAAcAAAAMABEAAAAMAAcAAAAMABIAAAAMAAcAAAAMABMAAAAMAAcAAAANABAAAAAMAAcAAAANABEAAAAMAAcAAAANABIAAAAMAAcAAAANABMAAAAMAAcAAAAOABAAAAAMAAcAAAAOABEAAAAMAAcAAAAOABIAAAAMAAcAAAAOABMAAAAMAAcAAAAPABAAAAAMAAcAAAAPABEAAAAMAAcAAAAPABIAAAAMAAcAAAAPABMAAAAMAAcAAAAQABAAAAAMAAcAAAAQABEAAAAMAAcAAAAQABIAAAAMAAcAAAAQABMAAAAMAAcAAAARABAAAAAMAAcAAAARABEAAAAMAAcAAAARABIAAAAMAAcAAAARABMAAAAMAAcAAAASABAAAAAMAAcAAAASABEAAAAMAAcAAAASABIAAAAMAAcAAAASABMAAAAMAAcAAAATABAAAAAMAAcAAAATABEAAAAMAAcAAAATABIAAAAMAAcAAAATABMAAAAMAAcAAAA=") +tile_set = ExtResource("5_eqg76") +navigation_enabled = false +script = ExtResource("6_upxxh") +_solidLayers = [NodePath("../Solid"), NodePath("../Props")] +metadata/_edit_lock_ = true + +[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_map_data = PackedByteArray("AAATAAAAAAABAAsAAAASAAAAAAABAAQAAAARAAAAAAABAAQAAAAQAAAAAAABAAQAAAAPAAAAAAAEAAsAAAAOAAAAAAAFAAsAAAANAAAAAAABAAQAAAAMAAAAAAABAAQAAAALAAAAAAACAAQAAAAIAAAAAAADAAQAAAAHAAAAAAABAAQAAAAGAAAAAAABAAQAAAAFAAAAAAABAAQAAAAEAAAAAAABAAQAAAADAAAAAAABAAQAAAACAAAAAAABAAQAAAABAAAAAAABAAQAAAAAAAAAAAAAAAsAAAATAAIAAAAEAAQAAAATAAEAAAAAAAQAAAAAAAIAAAAEAAQAAAAAAAEAAAAAAAQAAAAAAAkAAAAAAAQAAAAAAAgAAAACAAsAAAAAAAcAAAACAAwAAAAAAAYAAAAFAAQAAAATAAkAAAAEAAQAAAATAAgAAAAAAAQAAAATAAcAAAAAAAQAAAATAAYAAAAFAAQAAAATAAMAAAANAAAAAAATAAQAAAANAAEAAAALAAEAAAANAAAAAAALAAIAAAANAAEAAAAMAAEAAAANAAAAAAAMAAIAAAANAAEAAAANAAEAAAANAAAAAAANAAIAAAANAAEAAAAOAAEAAAAAAAYAAAAOAAIAAAAAAAYAAAAPAAEAAAACAAYAAAAPAAIAAAACAAYAAAAQAAEAAAANAAAAAAAQAAIAAAANAAEAAAARAAEAAAANAAAAAAARAAIAAAANAAEAAAASAAEAAAANAAAAAAASAAIAAAANAAEAAAABAAEAAAANAAAAAAABAAIAAAANAAEAAAACAAEAAAANAAAAAAACAAIAAAANAAEAAAADAAEAAAANAAAAAAADAAIAAAANAAEAAAAEAAEAAAANAAAAAAAEAAIAAAANAAEAAAAFAAEAAAANAAAAAAAFAAIAAAANAAEAAAAGAAEAAAANAAAAAAAGAAIAAAANAAEAAAAHAAEAAAANAAAAAAAHAAIAAAANAAEAAAAIAAEAAAANAAAAAAAIAAIAAAANAAEAAAAAAAMAAAANAAAAAAAAAAQAAAANAAEAAAAAAAoAAAAAAAQAAAAAAAsAAAAAAAQAAAAAAAwAAAAEAAQAAAAAAA0AAAANAAAAAAAAAA4AAAANAAEAAAAAABAAAAAFAAQAAAAAABEAAAAAAAQAAAAAABIAAAAAAAQAAAAAABMAAAAAAAwAAAABABMAAAABAAQAAAACABMAAAABAAQAAAADABMAAAAFAAwAAAAEABMAAAABAAcAAAAFABMAAAABAAcAAAAGABMAAAABAAcAAAAHABMAAAAEAAwAAAAIABMAAAADAAQAAAALABMAAAACAAQAAAAMABMAAAABAAQAAAANABMAAAAFAAwAAAAOABMAAAABAAcAAAAPABMAAAABAAcAAAAQABMAAAABAAcAAAARABMAAAAEAAwAAAASABMAAAABAAQAAAATAAoAAAAFAAQAAAATAAsAAAAAAAQAAAATAAwAAAAEAAQAAAATAA0AAAANAAAAAAATAA4AAAANAAEAAAATABAAAAAFAAQAAAATABEAAAAAAAQAAAATABIAAAAAAAQAAAATABMAAAABAAwAAAABAAcAAAABAAUAAAACAAcAAAABAAUAAAADAAcAAAABAAUAAAAEAAcAAAACAAUAAAAEAAgAAAACAA0AAAADAAgAAAABAAcAAAACAAgAAAABAAcAAAABAAgAAAABAAcAAAAEAAkAAAAAAAcAAAAFAAkAAAABAAcAAAAFAAgAAAABAAUAAAAGAAgAAAACAAUAAAAGAAkAAAABAAgAAAAHAAkAAAACAAUAAAAGAAoAAAAAAAcAAAAHAAoAAAADAAsAAAAOAAMAAAAAAAYAAAAOAAQAAAABAAkAAAANAAQAAAAAAAUAAAANAAUAAAAAAAYAAAAPAAMAAAACAAYAAAAPAAQAAAACAAYAAAAOAAYAAAACAAgAAAAPAAUAAAACAAYAAAAOAAcAAAABAAgAAAANAAcAAAAAAAcAAAAOAAgAAAAAAAcAAAAPAAgAAAAEAAwAAAAQAAkAAAAEAAQAAAAQAAgAAAABAAsAAAAPAAcAAAACAAYAAAAPAAYAAAACAAYAAAAOAAUAAAACAAgAAAANAAYAAAAAAAYAAAARABIAAAACAAUAAAAQABIAAAAAAAkAAAAQABEAAAACAAUAAAAPABAAAAACAAUAAAAOAA8AAAACAAYAAAAOAA4AAAACAAUAAAANAA4AAAACAAwAAAANAA0AAAAFAAQAAAAOABAAAAAAAAkAAAAOABEAAAACAAgAAAAPABEAAAACAAgAAAAPABIAAAACAAgAAAAOABIAAAACAAgAAAANABEAAAAAAAYAAAANABAAAAAAAAYAAAANAA8AAAAAAAYAAAANABIAAAAAAAYAAAAGAA8AAAACAAUAAAAFAA8AAAAAAAUAAAAFABAAAAABAAkAAAAEABAAAAAAAAUAAAAEABEAAAABAAkAAAADABEAAAAAAAUAAAADABIAAAAAAAYAAAAEABIAAAACAAgAAAAFABIAAAACAAgAAAAGABIAAAACAAgAAAAHABIAAAACAAYAAAAHABEAAAACAAUAAAAGABEAAAAAAAkAAAAFABEAAAACAAgAAAAGABAAAAACAAYAAAABAAkAAAANAAAAAAABAAoAAAANAAEAAAACAAkAAAANAAAAAAACAAoAAAANAAEAAAADAAkAAAANAAAAAAADAAoAAAANAAEAAAAEAAoAAAANAAAAAAAEAAsAAAANAAEAAAAFAAoAAAANAAAAAAAFAAsAAAANAAEAAAAGAAwAAAANAAEAAAAGAAsAAAANAAAAAAAHAAsAAAANAAAAAAAHAAwAAAANAAEAAAAQAAoAAAANAAAAAAAQAAsAAAANAAEAAAAPAAkAAAANAAAAAAAPAAoAAAANAAEAAAAOAAkAAAANAAAAAAAOAAoAAAANAAEAAAANAAgAAAANAAAAAAANAAkAAAANAAEAAAA=") +tile_set = ExtResource("5_eqg76") +navigation_enabled = false +metadata/_edit_lock_ = true + +[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_map_data = PackedByteArray("AAAHAAsAAAAKAAwAAAAHAAwAAAAKAA0AAAAIAAEAAAAKAAwAAAAIAAIAAAAKAA0AAAALAAEAAAAJAAwAAAALAAIAAAAJAA0AAAANAAkAAAAJAA0AAAANAAgAAAAJAAwAAAAOAAkAAAAJAAwAAAAOAAoAAAAJAA0AAAAEAAoAAAAJAAwAAAAEAAsAAAAJAA0AAAAGAAsAAAAJAAwAAAAGAAwAAAAJAA0AAAAQAAoAAAAKAA4AAAAQAAsAAAAKAA8AAAATAAMAAAAKAA4AAAATAAQAAAAKAA8AAAATAA0AAAAKAA4AAAATAA4AAAAKAA8AAAAAAA0AAAAKAA4AAAAAAA4AAAAKAA8AAAAAAAMAAAAKAA4AAAAAAAQAAAAKAA8AAAABABEAAQAAAAAAEAABABIAAQAAAAAAEAACABEAAQAAAAAAEAACABIAAQAAAAAAEAABAAMAAQAAAAAAEAACAAMAAQAAAAAAEAAQAAMAAQAAAAAADwAQAAQAAQAAAAAADwASABEAAQAAAAAAAgASABIAAQAAAAAAAgARABEAAQAAAAAAAgASAAMAAQAAAAAAAgARAAMAAQAAAAAAAgAMAAMAAQAAAAAAAgANAAMAAQAAAAAAAgAMABEAAQAAAAAAAgAMABIAAQAAAAAAAgACAAsAAQAAAAAAAgADAAsAAQAAAAAAAgABAAsAAQAAAAAADAAHAAQAAQAAAAAADQAMAAoAAQAAAAAADQAMAAkAAQAAAAAADQANAAoAAQAAAAAADQAIAAoAAQAAAAAAAQAIAAsAAQAAAAAAAQAMAAgAAQAAAAAAAQARAAQAAQAAAAAAAQAQABAAAQAAAAAAAQAFAAwAAQAAAAAAAQAMABAAAQAAAAAAAQADAAMAAQAAAAAAAQA=") +tile_set = ExtResource("5_eqg76") +navigation_enabled = false +metadata/_edit_lock_ = true + +[node name="Actors" type="Node2D" parent="Tilemaps"] +metadata/_edit_lock_ = true + +[node name="EnemySpawners" type="Node2D" parent="."] + +[node name="RogueliteEnemySpawner" type="Marker2D" parent="EnemySpawners"] +position = Vector2(57, 82) + +[node name="RogueliteEnemySpawner2" type="Marker2D" parent="EnemySpawners"] +position = Vector2(126, 248) + +[node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] +position = Vector2(263, 227) + +[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] +visible = false +navigation_polygon = SubResource("NavigationPolygon_rlq0q") +use_edge_connections = false + +[node name="PlayerEnterDetector" type="Area2D" parent="."] +visible = false +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerEnterDetector"] +position = Vector2(162, 175.5) +shape = SubResource("RectangleShape2D_4lag8") + +[connection signal="area_entered" from="PlayerEnterDetector" to="." method="OnRoomEntered"] diff --git a/Scenes/Maps/RogueliteMaps/Beginner1.tscn b/Scenes/Maps/RogueliteMaps/Beginner1.tscn index f6c66422..71679826 100644 --- a/Scenes/Maps/RogueliteMaps/Beginner1.tscn +++ b/Scenes/Maps/RogueliteMaps/Beginner1.tscn @@ -1,11 +1,12 @@ -[gd_scene load_steps=9 format=4 uid="uid://24wh7h2dbljf"] +[gd_scene load_steps=10 format=4 uid="uid://24wh7h2dbljf"] [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_vhsym"] [ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="2_vhsym"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_pys6w"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_u3c1h"] +[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_70a8f"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="4_pys6w"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="5_mqiea"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_s67gl"] [ext_resource type="PackedScene" uid="uid://4q82gggqax87" path="res://Scenes/Items/Cheat_Gun_Pickup.tscn" id="6_pys6w"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_u3c1h"] @@ -16,6 +17,8 @@ process_mode = 1 script = ExtResource("1_vhsym") RoomResource = ExtResource("2_vhsym") DoorPrefab = ExtResource("3_pys6w") +VerticalDoorPrefab = ExtResource("4_s67gl") +WallPrefab = ExtResource("4_70a8f") metadata/test_scene = "res://Scenes/Maps/Roguelike.tscn" [node name="Floor" type="TileMapLayer" parent="." node_paths=PackedStringArray("_solidLayers") groups=["Solid"]] @@ -45,27 +48,6 @@ position = Vector2(119, 127) [node name="EnemySpawners" type="Node2D" parent="."] -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("5_mqiea") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(160, 162) -script = ExtResource("5_mqiea") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("5_mqiea") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("5_mqiea") -Direction = 3 - [node name="PlayerEnterDetector" type="Area2D" parent="."] visible = false collision_layer = 0 diff --git a/Scenes/Maps/RogueliteMaps/Boss1.tscn b/Scenes/Maps/RogueliteMaps/Boss1.tscn index 836b7abb..3f9953a9 100644 --- a/Scenes/Maps/RogueliteMaps/Boss1.tscn +++ b/Scenes/Maps/RogueliteMaps/Boss1.tscn @@ -5,14 +5,15 @@ [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_vo7cb"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_wmvx8"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_5nx6x"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_6d01x"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="4_vo7cb"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="5_xjj1f"] [node name="Tilemaps" type="Node2D"] process_mode = 1 script = ExtResource("1_vm1u7") RoomResource = ExtResource("2_vm1u7") DoorPrefab = ExtResource("3_vo7cb") +VerticalDoorPrefab = ExtResource("4_6d01x") WallPrefab = ExtResource("4_5nx6x") [node name="Floor" type="TileMapLayer" parent="." node_paths=PackedStringArray("_solidLayers") groups=["Solid"]] @@ -47,24 +48,3 @@ position = Vector2(88, 126) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(266, 122) - -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("5_xjj1f") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159.196, 149.348) -script = ExtResource("5_xjj1f") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("5_xjj1f") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("5_xjj1f") -Direction = 3 diff --git a/Scenes/Maps/RogueliteMaps/KeyRoom1.tscn b/Scenes/Maps/RogueliteMaps/KeyRoom1.tscn index b40e9ccf..a69e69f4 100644 --- a/Scenes/Maps/RogueliteMaps/KeyRoom1.tscn +++ b/Scenes/Maps/RogueliteMaps/KeyRoom1.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_3j8r8"] [ext_resource type="Resource" uid="uid://bew4cuec4pbms" path="res://Resources/RogueliteMaps/KeyRoom1.tres" id="2_3j8r8"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_t6hxp"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_3j8r8"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_hfso4"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_3o7os"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_sn1r1"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_ec7cq"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 294, 58, 294, 134, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_3j8r8") RoomResource = ExtResource("2_3j8r8") DoorPrefab = ExtResource("3_t6hxp") +VerticalDoorPrefab = ExtResource("4_3j8r8") WallPrefab = ExtResource("4_hfso4") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -51,27 +52,6 @@ metadata/_edit_lock_ = true [node name="EnemySpawners" type="Node2D" parent="."] -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_ec7cq") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159.196, 149.348) -script = ExtResource("7_ec7cq") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("7_ec7cq") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_ec7cq") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/RGTestRoom1.tscn b/Scenes/Maps/RogueliteMaps/RGTestRoom1.tscn index 9a9dc01a..234d89b2 100644 --- a/Scenes/Maps/RogueliteMaps/RGTestRoom1.tscn +++ b/Scenes/Maps/RogueliteMaps/RGTestRoom1.tscn @@ -3,11 +3,11 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_ntv3p"] [ext_resource type="Resource" uid="uid://do11fodskgasi" path="res://Resources/RogueliteMaps/RGTestRoom1.tres" id="2_ntv3p"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_7u0ti"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_76t1d"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_wb0b4"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_76t1d"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_tcpmo"] [ext_resource type="PackedScene" uid="uid://crph24e6e0v0q" path="res://Scenes/Interactable/Control_Pad.tscn" id="7_fyclk"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_sgpia"] [ext_resource type="PackedScene" uid="uid://cjsnhyl0nqbau" path="res://Scenes/Props/ICCTv.tscn" id="8_7u0ti"] [ext_resource type="PackedScene" uid="uid://cqrkisw6jg24w" path="res://Scenes/Props/MainFrame1.tscn" id="10_wb0b4"] @@ -26,6 +26,7 @@ process_mode = 1 script = ExtResource("1_ntv3p") RoomResource = ExtResource("2_ntv3p") DoorPrefab = ExtResource("3_7u0ti") +VerticalDoorPrefab = ExtResource("4_76t1d") WallPrefab = ExtResource("4_wb0b4") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -84,17 +85,6 @@ position = Vector2(108.853, 272.771) [node name="RogueliteEnemySpawner4" type="Marker2D" parent="EnemySpawners"] position = Vector2(270.664, 114.692) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(160, 31) -script = ExtResource("7_sgpia") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(160, 316) -script = ExtResource("7_sgpia") -Direction = 1 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/Rg1.tscn b/Scenes/Maps/RogueliteMaps/Rg1.tscn index 5b645fe7..c9dd3595 100644 --- a/Scenes/Maps/RogueliteMaps/Rg1.tscn +++ b/Scenes/Maps/RogueliteMaps/Rg1.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_dm6kf"] [ext_resource type="Resource" uid="uid://b5x83li01qrav" path="res://Resources/RogueliteMaps/TestRGMap.tres" id="2_5s4nm"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_sid7o"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_kfj8c"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_rlq0q"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_q5p8k"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_81nvh"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="6_b5lqw"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 294, 58, 294, 134, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_dm6kf") RoomResource = ExtResource("2_5s4nm") DoorPrefab = ExtResource("3_sid7o") +VerticalDoorPrefab = ExtResource("4_kfj8c") WallPrefab = ExtResource("4_rlq0q") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -60,31 +61,12 @@ position = Vector2(88, 126) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(266, 122) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("6_b5lqw") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159.196, 149.348) -script = ExtResource("6_b5lqw") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("6_b5lqw") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("6_b5lqw") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] +visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") [node name="PlayerEnterDetector" type="Area2D" parent="."] +visible = false collision_layer = 0 collision_mask = 2 diff --git a/Scenes/Maps/RogueliteMaps/Rg2.tscn b/Scenes/Maps/RogueliteMaps/Rg2.tscn index 136c5b65..afdab911 100644 --- a/Scenes/Maps/RogueliteMaps/Rg2.tscn +++ b/Scenes/Maps/RogueliteMaps/Rg2.tscn @@ -5,8 +5,8 @@ [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_f7qjl"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_wtdf1"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_hgeju"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_qe4tn"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="4_wtdf1"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="5_2djm0"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_f7qjl"] vertices = PackedVector2Array(186, 122, 186, 58, 294, 58, 294, 134, 166, 134, 134, 122, 166, 150, 154, 150, 154, 134, 26, 134, 26, 58, 134, 58, 166, 54, 154, 54, 154, 10, 166, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_cak6m") RoomResource = ExtResource("2_cak6m") DoorPrefab = ExtResource("3_wtdf1") +VerticalDoorPrefab = ExtResource("4_qe4tn") WallPrefab = ExtResource("4_hgeju") metadata/test_scene = "res://Scenes/Maps/Roguelike.tscn" @@ -62,27 +63,6 @@ position = Vector2(233, 63) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(266, 122) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("5_2djm0") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159, 161) -script = ExtResource("5_2djm0") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("5_2djm0") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("5_2djm0") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] navigation_polygon = SubResource("NavigationPolygon_f7qjl") diff --git a/Scenes/Maps/RogueliteMaps/Rg2x1Lab.tscn b/Scenes/Maps/RogueliteMaps/Rg2x1Lab.tscn index 341acc4a..92a31cc6 100644 --- a/Scenes/Maps/RogueliteMaps/Rg2x1Lab.tscn +++ b/Scenes/Maps/RogueliteMaps/Rg2x1Lab.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_0pyb7"] [ext_resource type="Resource" uid="uid://cb7gk278lmicd" path="res://Resources/RogueliteMaps/Lab2x1_1.tres" id="2_0pyb7"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_8uhw6"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_0pyb7"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_gq82i"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_xmtgx"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_k6m50"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_a4eus"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_f7qjl"] vertices = PackedVector2Array(186, 122, 186, 58, 294, 58, 294, 74, 319.922, 74, 319.922, 58, 454, 58, 454, 122, 506, 122, 506, 58, 614, 58, 614, 134, 486, 134, 486, 150, 474, 150, 474, 134, 166, 134, 134, 122, 154, 134, 166, 150, 154, 150, 26, 134, 26, 58, 134, 58, 166, 54, 154, 54, 154, 10, 166, 10, 486, 54, 474, 54, 474, 10, 486, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_0pyb7") RoomResource = ExtResource("2_0pyb7") DoorPrefab = ExtResource("3_8uhw6") +VerticalDoorPrefab = ExtResource("4_0pyb7") WallPrefab = ExtResource("4_gq82i") metadata/test_scene = "res://Scenes/Maps/Roguelike.tscn" @@ -62,38 +63,6 @@ position = Vector2(306, 115) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(571, 91) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_a4eus") - -[node name="North2" type="Marker2D" parent="Doors"] -position = Vector2(479.755, 23.6396) -script = ExtResource("7_a4eus") -WallIndex = 1 - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159, 161) -script = ExtResource("7_a4eus") -Direction = 1 - -[node name="South2" type="Marker2D" parent="Doors"] -position = Vector2(479.365, 161.023) -script = ExtResource("7_a4eus") -Direction = 1 -WallIndex = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(632, 86) -script = ExtResource("7_a4eus") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_a4eus") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_f7qjl") diff --git a/Scenes/Maps/RogueliteMaps/RgBig.tscn b/Scenes/Maps/RogueliteMaps/RgBig.tscn index c6d502b1..460fa2f9 100644 --- a/Scenes/Maps/RogueliteMaps/RgBig.tscn +++ b/Scenes/Maps/RogueliteMaps/RgBig.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_xsqjb"] [ext_resource type="Resource" uid="uid://bv0mr43vcfrdh" path="res://Resources/RogueliteMaps/BigMap.tres" id="2_xsqjb"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_cgxuy"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_cgxuy"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="4_tyndx"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="5_lrgk6"] [ext_resource type="PackedScene" uid="uid://dcbcyp1qogcl0" path="res://Scenes/Props/BigTankHorizontal.tscn" id="6_cgxuy"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="6_x7fb3"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="8_tyndx"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_lrgk6"] @@ -24,6 +24,7 @@ process_mode = 1 script = ExtResource("1_xsqjb") RoomResource = ExtResource("2_xsqjb") DoorPrefab = ExtResource("3_cgxuy") +VerticalDoorPrefab = ExtResource("4_cgxuy") WallPrefab = ExtResource("8_tyndx") metadata/test_scene = "res://Scenes/Maps/Roguelike.tscn" @@ -90,50 +91,6 @@ position = Vector2(449, 268) [node name="RogueliteEnemySpawner5" type="Marker2D" parent="EnemySpawners"] position = Vector2(290, 254) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 34) -script = ExtResource("6_x7fb3") - -[node name="North2" type="Marker2D" parent="Doors"] -position = Vector2(480, 32) -script = ExtResource("6_x7fb3") -WallIndex = 1 - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(160, 323) -script = ExtResource("6_x7fb3") -Direction = 1 - -[node name="South2" type="Marker2D" parent="Doors"] -position = Vector2(480, 323) -script = ExtResource("6_x7fb3") -Direction = 1 -WallIndex = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(630, 88) -script = ExtResource("6_x7fb3") -Direction = 2 - -[node name="East2" type="Marker2D" parent="Doors"] -position = Vector2(629, 248) -script = ExtResource("6_x7fb3") -Direction = 2 -WallIndex = 1 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("6_x7fb3") -Direction = 3 - -[node name="West2" type="Marker2D" parent="Doors"] -position = Vector2(6, 247) -script = ExtResource("6_x7fb3") -Direction = 3 -WallIndex = 1 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_lrgk6") diff --git a/Scenes/Maps/RogueliteMaps/RgBig2.tscn b/Scenes/Maps/RogueliteMaps/RgBig2.tscn index 299c1bf6..8683dc16 100644 --- a/Scenes/Maps/RogueliteMaps/RgBig2.tscn +++ b/Scenes/Maps/RogueliteMaps/RgBig2.tscn @@ -3,11 +3,11 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_7v35i"] [ext_resource type="Resource" uid="uid://char0yv78vtty" path="res://Resources/RogueliteMaps/BigTest2.tres" id="2_7v35i"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_iv5kp"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_7v35i"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_fj3qi"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_0x325"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_ed0jw"] [ext_resource type="PackedScene" uid="uid://dcbcyp1qogcl0" path="res://Scenes/Props/BigTankHorizontal.tscn" id="7_3eg8q"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="8_gx7sl"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_lrgk6"] vertices = PackedVector2Array(486, 58, 614, 58, 614, 294, 486, 294, 378, 211, 378, 155, 166, 58, 179, 58, 179, 77, 254, 77, 254, 58, 474, 58, 376, 107, 324, 107, 474, 10, 486, 10, 376, 155, 324, 163, 326, 163, 326, 211, 314, 211, 314, 107, 262, 107, 486, 310, 474, 310, 474, 294, 246, 294, 246, 265, 262, 211, 200, 265, 200, 294, 166, 294, 154, 58, 166, 310, 154, 310, 154, 294, 26, 294, 26, 58, 154, 10, 166, 10) @@ -24,6 +24,7 @@ process_mode = 1 script = ExtResource("1_7v35i") RoomResource = ExtResource("2_7v35i") DoorPrefab = ExtResource("3_iv5kp") +VerticalDoorPrefab = ExtResource("4_7v35i") WallPrefab = ExtResource("4_fj3qi") metadata/test_scene = "res://Scenes/Maps/Roguelike.tscn" @@ -90,50 +91,6 @@ position = Vector2(449, 268) [node name="RogueliteEnemySpawner5" type="Marker2D" parent="EnemySpawners"] position = Vector2(290, 254) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 34) -script = ExtResource("8_gx7sl") - -[node name="North2" type="Marker2D" parent="Doors"] -position = Vector2(480, 32) -script = ExtResource("8_gx7sl") -WallIndex = 1 - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(160, 323) -script = ExtResource("8_gx7sl") -Direction = 1 - -[node name="South2" type="Marker2D" parent="Doors"] -position = Vector2(480, 323) -script = ExtResource("8_gx7sl") -Direction = 1 -WallIndex = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(630, 88) -script = ExtResource("8_gx7sl") -Direction = 2 - -[node name="East2" type="Marker2D" parent="Doors"] -position = Vector2(629, 248) -script = ExtResource("8_gx7sl") -Direction = 2 -WallIndex = 1 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("8_gx7sl") -Direction = 3 - -[node name="West2" type="Marker2D" parent="Doors"] -position = Vector2(6, 247) -script = ExtResource("8_gx7sl") -Direction = 3 -WallIndex = 1 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_lrgk6") diff --git a/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn b/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn index cbd3541a..9edeca86 100644 --- a/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn +++ b/Scenes/Maps/RogueliteMaps/RgBigLarge.tscn @@ -4,9 +4,9 @@ [ext_resource type="Resource" uid="uid://n6nb5yco60gi" path="res://Resources/RogueliteMaps/BigLarge.tres" id="2_u4oyu"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_6wahx"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_3d7yv"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_u4oyu"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_kigg1"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_tgkll"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_67kci"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(474, 58, 474, 10, 486, 10, 486, 58, 794, 58, 794, 10, 806, 10, 806, 58, 934, 58, 934, 294, 806, 294, 794, 294, 806, 310, 794, 310, 486, 294, 474, 294, 486, 310, 474, 310, 166, 58, 166, 294, 166, 310, 154, 310, 154, 294, 154, 58, 26, 294, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_u4oyu") RoomResource = ExtResource("2_u4oyu") DoorPrefab = ExtResource("3_6wahx") +VerticalDoorPrefab = ExtResource("4_u4oyu") WallPrefab = ExtResource("4_3d7yv") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -60,49 +61,6 @@ position = Vector2(88, 126) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(266, 122) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_67kci") - -[node name="North2" type="Marker2D" parent="Doors"] -position = Vector2(479.257, 20.6745) -script = ExtResource("7_67kci") -WallIndex = 1 - -[node name="North3" type="Marker2D" parent="Doors"] -position = Vector2(794.686, 18.3888) -script = ExtResource("7_67kci") -WallIndex = 2 - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(158, 319) -script = ExtResource("7_67kci") -Direction = 1 - -[node name="South2" type="Marker2D" parent="Doors"] -position = Vector2(477, 319) -script = ExtResource("7_67kci") -Direction = 1 -WallIndex = 1 - -[node name="South3" type="Marker2D" parent="Doors"] -position = Vector2(800, 317) -script = ExtResource("7_67kci") -Direction = 1 -WallIndex = 2 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(951, 88) -script = ExtResource("7_67kci") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_67kci") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/RgHorizontal1x1.tscn b/Scenes/Maps/RogueliteMaps/RgHorizontal1x1.tscn index bb85c00d..12a86f47 100644 --- a/Scenes/Maps/RogueliteMaps/RgHorizontal1x1.tscn +++ b/Scenes/Maps/RogueliteMaps/RgHorizontal1x1.tscn @@ -4,9 +4,9 @@ [ext_resource type="Resource" uid="uid://cc53bb6th33hi" path="res://Resources/RogueliteMaps/RGHorizontal1x1.tres" id="2_y5eok"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_kf55v"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_rxusd"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_y5eok"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_0c8ec"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_e2cwd"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_skhsf"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 294, 58, 294, 134, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_y5eok") RoomResource = ExtResource("2_y5eok") DoorPrefab = ExtResource("3_kf55v") +VerticalDoorPrefab = ExtResource("4_y5eok") WallPrefab = ExtResource("4_rxusd") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -61,18 +62,6 @@ position = Vector2(88, 126) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(266, 122) -[node name="Doors" type="Node2D" parent="."] - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("7_skhsf") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_skhsf") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/RgLarge.tscn b/Scenes/Maps/RogueliteMaps/RgLarge.tscn index aae869d5..40b944ff 100644 --- a/Scenes/Maps/RogueliteMaps/RgLarge.tscn +++ b/Scenes/Maps/RogueliteMaps/RgLarge.tscn @@ -4,9 +4,9 @@ [ext_resource type="Resource" uid="uid://cjtcksew0qy6d" path="res://Resources/RogueliteMaps/TestRGMapLarge.tres" id="2_5bd7y"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_4pnhf"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_1w61p"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_5bd7y"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_2mndj"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_1dlui"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_d57gj"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(474, 58, 474, 10, 486, 10, 486, 58, 794, 58, 794, 10, 806, 10, 806, 58, 934, 58, 934, 134, 806, 134, 794, 134, 806, 150, 794, 150, 486, 134, 474, 134, 486, 150, 474, 150, 166, 58, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_5bd7y") RoomResource = ExtResource("2_5bd7y") DoorPrefab = ExtResource("3_4pnhf") +VerticalDoorPrefab = ExtResource("4_5bd7y") WallPrefab = ExtResource("4_1w61p") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -55,53 +56,10 @@ metadata/_edit_lock_ = true position = Vector2(57, 67) [node name="RogueliteEnemySpawner2" type="Marker2D" parent="EnemySpawners"] -position = Vector2(88, 126) +position = Vector2(373, 75) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] -position = Vector2(266, 122) - -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_d57gj") - -[node name="North2" type="Marker2D" parent="Doors"] -position = Vector2(479.257, 20.6745) -script = ExtResource("7_d57gj") -WallIndex = 1 - -[node name="North3" type="Marker2D" parent="Doors"] -position = Vector2(794.686, 18.3888) -script = ExtResource("7_d57gj") -WallIndex = 2 - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159.196, 149.348) -script = ExtResource("7_d57gj") -Direction = 1 - -[node name="South2" type="Marker2D" parent="Doors"] -position = Vector2(479.86, 149.81) -script = ExtResource("7_d57gj") -Direction = 1 -WallIndex = 1 - -[node name="South3" type="Marker2D" parent="Doors"] -position = Vector2(798.847, 148.522) -script = ExtResource("7_d57gj") -Direction = 1 -WallIndex = 2 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(953, 91) -script = ExtResource("7_d57gj") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_d57gj") -Direction = 3 +position = Vector2(739, 101) [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false diff --git a/Scenes/Maps/RogueliteMaps/RgLong.tscn b/Scenes/Maps/RogueliteMaps/RgLong.tscn index fd573f0c..ae19d106 100644 --- a/Scenes/Maps/RogueliteMaps/RgLong.tscn +++ b/Scenes/Maps/RogueliteMaps/RgLong.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_4lag8"] [ext_resource type="Resource" uid="uid://ryfk7g1wqypk" path="res://Resources/RogueliteMaps/TestRGMapLong.tres" id="2_4lag8"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_112g0"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_4lag8"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_wcv20"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_upf1e"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_kwstq"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_f6crt"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 294, 58, 294, 294, 166, 294, 166, 310, 154, 310, 154, 294, 154, 58, 26, 294, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_4lag8") RoomResource = ExtResource("2_4lag8") DoorPrefab = ExtResource("3_112g0") +VerticalDoorPrefab = ExtResource("4_4lag8") WallPrefab = ExtResource("4_wcv20") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -60,44 +61,13 @@ position = Vector2(82, 185) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(261, 248) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_f6crt") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(158.671, 315.53) -script = ExtResource("7_f6crt") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("7_f6crt") -Direction = 2 - -[node name="East2" type="Marker2D" parent="Doors"] -position = Vector2(312.752, 247.02) -script = ExtResource("7_f6crt") -Direction = 2 -WallIndex = 1 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_f6crt") -Direction = 3 - -[node name="West2" type="Marker2D" parent="Doors"] -position = Vector2(9.12251, 246.487) -script = ExtResource("7_f6crt") -Direction = 3 -WallIndex = 1 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] +visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") use_edge_connections = false [node name="PlayerEnterDetector" type="Area2D" parent="."] +visible = false collision_layer = 0 collision_mask = 2 diff --git a/Scenes/Maps/RogueliteMaps/RgLongAcidWalk.tscn b/Scenes/Maps/RogueliteMaps/RgLongAcidWalk.tscn index 9991d3a4..74bf2392 100644 --- a/Scenes/Maps/RogueliteMaps/RgLongAcidWalk.tscn +++ b/Scenes/Maps/RogueliteMaps/RgLongAcidWalk.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_5fsd2"] [ext_resource type="Resource" uid="uid://cur433g6oevmd" path="res://Resources/RogueliteMaps/RGLongAcidWalk.tres" id="2_5fsd2"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_2dbol"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_5fsd2"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_i3xe1"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_d4ptm"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_56c74"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_17auc"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 198, 58, 198, 70, 182, 70, 182, 218, 278, 218, 278, 262, 262, 262, 198, 406, 198, 454, 166, 454, 166, 470, 154, 470, 154, 454, 122, 454, 122, 406, 218, 378, 90, 406, 90, 378, 218, 262, 58, 262, 58, 218, 138, 218, 138, 70, 122, 70, 122, 58, 154, 58, 154, 10, 166, 10, 262, 406) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_5fsd2") RoomResource = ExtResource("2_5fsd2") DoorPrefab = ExtResource("3_2dbol") +VerticalDoorPrefab = ExtResource("4_5fsd2") WallPrefab = ExtResource("4_i3xe1") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -67,17 +68,6 @@ position = Vector2(99, 235) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(243, 306) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_17auc") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(160, 480) -script = ExtResource("7_17auc") -Direction = 1 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/RgLongx3.tscn b/Scenes/Maps/RogueliteMaps/RgLongx3.tscn index b80fa943..68679a92 100644 --- a/Scenes/Maps/RogueliteMaps/RgLongx3.tscn +++ b/Scenes/Maps/RogueliteMaps/RgLongx3.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_g0xrw"] [ext_resource type="Resource" uid="uid://cmgiqsmujujss" path="res://Resources/RogueliteMaps/TestMapLongX3.tres" id="2_g0xrw"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_5pc34"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_g0xrw"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_keuv2"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_bsrt7"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_mr604"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_vcw48"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 294, 58, 294, 454, 166, 454, 166, 470, 154, 470, 154, 454, 154, 58, 26, 454, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_g0xrw") RoomResource = ExtResource("2_g0xrw") DoorPrefab = ExtResource("3_5pc34") +VerticalDoorPrefab = ExtResource("4_g0xrw") WallPrefab = ExtResource("4_keuv2") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -60,39 +61,6 @@ position = Vector2(82, 185) [node name="RogueliteEnemySpawner3" type="Marker2D" parent="EnemySpawners"] position = Vector2(261, 248) -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_vcw48") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(160, 476) -script = ExtResource("7_vcw48") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("7_vcw48") -Direction = 2 - -[node name="East2" type="Marker2D" parent="Doors"] -position = Vector2(312.752, 247.02) -script = ExtResource("7_vcw48") -Direction = 2 -WallIndex = 1 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_vcw48") -Direction = 3 - -[node name="West2" type="Marker2D" parent="Doors"] -position = Vector2(9.12251, 246.487) -script = ExtResource("7_vcw48") -Direction = 3 -WallIndex = 1 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/SecretRoom1.tscn b/Scenes/Maps/RogueliteMaps/SecretRoom1.tscn index eed75b35..93346da2 100644 --- a/Scenes/Maps/RogueliteMaps/SecretRoom1.tscn +++ b/Scenes/Maps/RogueliteMaps/SecretRoom1.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_h0a4q"] [ext_resource type="Resource" uid="uid://bo4efv7rwowuh" path="res://Resources/RogueliteMaps/SecretRoom1.tres" id="2_h0a4q"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_7u6pf"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_h0a4q"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_ivf8o"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_4wkxe"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_smkbu"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_hbkqe"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 294, 58, 294, 134, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_h0a4q") RoomResource = ExtResource("2_h0a4q") DoorPrefab = ExtResource("3_7u6pf") +VerticalDoorPrefab = ExtResource("4_h0a4q") WallPrefab = ExtResource("4_ivf8o") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -51,27 +52,6 @@ metadata/_edit_lock_ = true [node name="EnemySpawners" type="Node2D" parent="."] -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_hbkqe") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159.196, 149.348) -script = ExtResource("7_hbkqe") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("7_hbkqe") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_hbkqe") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/ShopRoom1.tscn b/Scenes/Maps/RogueliteMaps/ShopRoom1.tscn index 27d49e60..ae45927f 100644 --- a/Scenes/Maps/RogueliteMaps/ShopRoom1.tscn +++ b/Scenes/Maps/RogueliteMaps/ShopRoom1.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_36sk4"] [ext_resource type="Resource" uid="uid://cwtma7mxged8a" path="res://Resources/RogueliteMaps/ShopRoom1.tres" id="2_36sk4"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_as6dh"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_ii5ao"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_r367v"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_o7s04"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_l5c4m"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_dwts1"] [ext_resource type="PackedScene" uid="uid://cnhgvn2salyxl" path="res://Scenes/Items/Icicle_Repeater.tscn" id="7_ii5ao"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] @@ -24,6 +24,7 @@ process_mode = 1 script = ExtResource("1_36sk4") RoomResource = ExtResource("2_36sk4") DoorPrefab = ExtResource("3_as6dh") +VerticalDoorPrefab = ExtResource("4_ii5ao") WallPrefab = ExtResource("4_r367v") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -55,27 +56,6 @@ position = Vector2(159, 91) [node name="EnemySpawners" type="Node2D" parent="."] -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_dwts1") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159.196, 149.348) -script = ExtResource("7_dwts1") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("7_dwts1") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_dwts1") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scenes/Maps/RogueliteMaps/TreasureRoom1.tscn b/Scenes/Maps/RogueliteMaps/TreasureRoom1.tscn index 11e3b265..498d8e2f 100644 --- a/Scenes/Maps/RogueliteMaps/TreasureRoom1.tscn +++ b/Scenes/Maps/RogueliteMaps/TreasureRoom1.tscn @@ -3,10 +3,10 @@ [ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_08gfs"] [ext_resource type="Resource" uid="uid://crqgvauqarfaq" path="res://Resources/RogueliteMaps/TreasureRoom1.tres" id="2_08gfs"] [ext_resource type="PackedScene" uid="uid://l84on3kv2s52" path="res://Scenes/Door_Horizontal.tscn" id="3_aaiyo"] +[ext_resource type="PackedScene" uid="uid://bc64lr3vlwchq" path="res://Scenes/Door_Vertical.tscn" id="4_08gfs"] [ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="4_ofpvy"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_ojht1"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_jf212"] -[ext_resource type="Script" uid="uid://ddry5kjj3fr6c" path="res://Scripts/Controllers/DoorMarker.cs" id="7_3ba63"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_rlq0q"] vertices = PackedVector2Array(166, 58, 294, 58, 294, 134, 166, 134, 166, 150, 154, 150, 154, 134, 154, 58, 26, 134, 26, 58, 166, 10, 154, 10) @@ -23,6 +23,7 @@ process_mode = 1 script = ExtResource("1_08gfs") RoomResource = ExtResource("2_08gfs") DoorPrefab = ExtResource("3_aaiyo") +VerticalDoorPrefab = ExtResource("4_08gfs") WallPrefab = ExtResource("4_ofpvy") [node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]] @@ -51,27 +52,6 @@ metadata/_edit_lock_ = true [node name="EnemySpawners" type="Node2D" parent="."] -[node name="Doors" type="Node2D" parent="."] - -[node name="North" type="Marker2D" parent="Doors"] -position = Vector2(159, 23) -script = ExtResource("7_3ba63") - -[node name="South" type="Marker2D" parent="Doors"] -position = Vector2(159.196, 149.348) -script = ExtResource("7_3ba63") -Direction = 1 - -[node name="East" type="Marker2D" parent="Doors"] -position = Vector2(312, 87) -script = ExtResource("7_3ba63") -Direction = 2 - -[node name="West" type="Marker2D" parent="Doors"] -position = Vector2(8.1806, 87.7693) -script = ExtResource("7_3ba63") -Direction = 3 - [node name="NavigationRegion2D" type="NavigationRegion2D" parent="."] visible = false navigation_polygon = SubResource("NavigationPolygon_rlq0q") diff --git a/Scripts/Controllers/DoorMarker.cs b/Scripts/Controllers/DoorMarker.cs index 47721b0e..497d1e31 100644 --- a/Scripts/Controllers/DoorMarker.cs +++ b/Scripts/Controllers/DoorMarker.cs @@ -1,21 +1,22 @@ -using Godot; +using Cirno.Scripts.Enums; +using Godot; namespace Cirno.Scripts.Controllers; -// [Tool] +[Tool] public partial class DoorMarker : Marker2D { - [Export] public RoomDirection Direction { get; set; } = RoomDirection.North; + [Export] public DoorDirections Direction { get; set; } = DoorDirections.North; [Export] public int WallIndex { get; set; } = 0; // Useful if there are multiple along a wall public Vector2I GetWorldDirection() { return Direction switch { - RoomDirection.North => new Vector2I(0, -1), - RoomDirection.South => new Vector2I(0, 1), - RoomDirection.East => new Vector2I(1, 0), - RoomDirection.West => new Vector2I(-1, 0), + DoorDirections.North => new Vector2I(0, -1), + DoorDirections.South => new Vector2I(0, 1), + DoorDirections.East => new Vector2I(1, 0), + DoorDirections.West => new Vector2I(-1, 0), _ => Vector2I.Zero }; } @@ -28,11 +29,3 @@ public partial class DoorMarker : Marker2D // DrawString(GetFont("font", "Label"), new Vector2(10, -10), Direction.ToString(), HAlign.Left); // } } - -public enum RoomDirection -{ - North, - South, - East, - West -} \ No newline at end of file diff --git a/Scripts/Controllers/RogueliteDoorContainer.cs b/Scripts/Controllers/RogueliteDoorContainer.cs new file mode 100644 index 00000000..e0ffb141 --- /dev/null +++ b/Scripts/Controllers/RogueliteDoorContainer.cs @@ -0,0 +1,28 @@ +using System.Linq; +using Godot; + +namespace Cirno.Scripts.Controllers; + +[Tool] +public partial class RogueliteDoorContainer : Node2D +{ + [ExportToolButton("Arrange Doors")] public Callable ArrangeDoorsButton => Callable.From(ArrangeDoors); + + public void ArrangeDoors() + { + var doors = this.GetChildren(); + + foreach (var node in doors) + { + if (node is DoorMarker doorMarker) + { + GD.Print($"{doorMarker.Name} {doorMarker.Direction} {doorMarker.WallIndex}"); + } + else + { + GD.Print($"Node was something else: {node}"); + } + } + + } +} \ No newline at end of file diff --git a/Scripts/Controllers/RogueliteDoorContainer.cs.uid b/Scripts/Controllers/RogueliteDoorContainer.cs.uid new file mode 100644 index 00000000..92d4baf2 --- /dev/null +++ b/Scripts/Controllers/RogueliteDoorContainer.cs.uid @@ -0,0 +1 @@ +uid://duokvl71amsqf diff --git a/Scripts/Controllers/RogueliteRoom.cs b/Scripts/Controllers/RogueliteRoom.cs index 27d228b4..f1a0bbbf 100644 --- a/Scripts/Controllers/RogueliteRoom.cs +++ b/Scripts/Controllers/RogueliteRoom.cs @@ -10,6 +10,7 @@ using Godot.Collections; namespace Cirno.Scripts.Controllers; +[Tool] public partial class RogueliteRoom : Node2D { [Export] public RogueliteRoomResource RoomResource { get; set; } @@ -18,6 +19,8 @@ public partial class RogueliteRoom : Node2D public Vector2I BottomLeft => GridPosition + new Vector2I(0, RoomResource.Size.Y - 1); + private Vector2 BaseRoomSize => new Vector2(320, 160); + public Vector2I RandomBottomExit() { return BottomLeft + new Vector2I(GD.RandRange(0, RoomResource.Size.X - 1), 0); @@ -37,6 +40,8 @@ public partial class RogueliteRoom : Node2D } [Export] public PackedScene DoorPrefab { get; private set; } + + [Export] public PackedScene VerticalDoorPrefab { get; private set; } [Export] public PackedScene WallPrefab { get; private set; } private static readonly Godot.Collections.Dictionary DirectionMap = new() @@ -76,24 +81,68 @@ public partial class RogueliteRoom : Node2D } } + private List GenerateDoors() + { + List doors = []; + + var doorsContainer = new Node2D(); + this.AddChild(doorsContainer); + doorsContainer.Name = "Doors"; + + // North + for (int i = 0; i < RoomResource.Size.X; i++) + { + if (RoomResource.HasDoors(DoorDirections.North)) + { + doors.Add(MakeDoorMarker(DoorDirections.North, i)); + } + + if (RoomResource.HasDoors(DoorDirections.South)) + { + doors.Add(MakeDoorMarker(DoorDirections.South, i)); + } + } + + for (int j = 0; j < RoomResource.Size.Y; j++) + { + doors.Add(MakeDoorMarker(DoorDirections.East, j)); + doors.Add(MakeDoorMarker(DoorDirections.West, j)); + } + + foreach (var door in doors) + { + doorsContainer.AddChild(door); + } + + return doors; + } + + private DoorMarker MakeDoorMarker(DoorDirections direction, int wallIndex) + { + var doorMarker = new DoorMarker(); + doorMarker.Direction = direction; + doorMarker.WallIndex = wallIndex; + + doorMarker.Position = GetDoorPosition(direction, wallIndex); + + return doorMarker; + } + public void HandleDoors(Func connectionChecker) { - if (!HasNode("Doors")) return; - var doorsNode = GetNode("Doors"); - - foreach (Node child in doorsNode.GetChildren()) + var doors = GenerateDoors(); + + foreach (DoorMarker marker in doors) { - if (child is not DoorMarker marker) continue; - var baseDir = marker.GetWorldDirection(); // WallIndex determines the offset *along* the edge of the room Vector2I offset = marker.Direction switch { - RoomDirection.North => new Vector2I(marker.WallIndex, 0), - RoomDirection.South => new Vector2I(marker.WallIndex, RoomResource.Size.Y - 1), - RoomDirection.East => new Vector2I(RoomResource.Size.X - 1, marker.WallIndex), - RoomDirection.West => new Vector2I(0, marker.WallIndex), + DoorDirections.North => new Vector2I(marker.WallIndex, 0), + DoorDirections.South => new Vector2I(marker.WallIndex, RoomResource.Size.Y - 1), + DoorDirections.East => new Vector2I(RoomResource.Size.X - 1, marker.WallIndex), + DoorDirections.West => new Vector2I(0, marker.WallIndex), _ => Vector2I.Zero }; @@ -107,7 +156,14 @@ public partial class RogueliteRoom : Node2D if (connected) { - var door = this.CreateChildOf(marker, DoorPrefab, marker.GlobalPosition); + var door = this.CreateChildOf(marker, marker.Direction switch + { + DoorDirections.North => DoorPrefab, + DoorDirections.South => DoorPrefab, + DoorDirections.East => VerticalDoorPrefab, + DoorDirections.West => VerticalDoorPrefab, + _ => throw new ArgumentOutOfRangeException() + }, marker.GlobalPosition); door.State = DoorState.Closed; @@ -234,4 +290,53 @@ public partial class RogueliteRoom : Node2D { return $"{GridPosition} {RoomResource}"; } + + public Vector2 GetDoorPosition(DoorDirections direction, int wallIndex) + { + return direction switch + { + DoorDirections.North => new Vector2((BaseRoomSize.X / 2) + (BaseRoomSize.X * wallIndex), 32), + DoorDirections.South => new Vector2((BaseRoomSize.X / 2) + (BaseRoomSize.X * wallIndex), + ((BaseRoomSize.Y) * RoomResource.Size.Y) +2 ), + DoorDirections.East => new Vector2((BaseRoomSize.X * RoomResource.Size.X) - 12, (BaseRoomSize.Y / 2) + (BaseRoomSize.Y * wallIndex) - 8), + DoorDirections.West => new Vector2(12, (BaseRoomSize.Y / 2) + (BaseRoomSize.Y * wallIndex) - 8), + _ => Vector2.Zero + }; + } + + // [ExportToolButton("Arrange Doors")] public Callable ArrangeDoorsButton => Callable.From(ArrangeDoors); + + public void ArrangeDoors() + { + var doorNode = this.GetNode("Doors"); + + var doors = doorNode.GetChildren(); + + foreach (var node in doors) + { + if (node is DoorMarker doorMarker) + { + GD.Print($"{doorMarker.Name} {doorMarker.Direction} {doorMarker.WallIndex}"); + + var baseGridSize = new Vector2(320, 160); + + Vector2 doorPosition = doorMarker.Direction switch + { + DoorDirections.North => new Vector2((baseGridSize.X / 2) + (baseGridSize.X * doorMarker.WallIndex), 32), + DoorDirections.South => new Vector2((baseGridSize.X / 2) + (baseGridSize.X * doorMarker.WallIndex), + ((baseGridSize.Y) * RoomResource.Size.Y) +2 ), + DoorDirections.East => doorMarker.Position, + DoorDirections.West => doorMarker.Position, + _ => doorMarker.Position + }; + + doorMarker.Position = doorPosition; + } + else + { + GD.Print($"Node was something else: {node}"); + } + } + + } } \ No newline at end of file diff --git a/Scripts/Resources/Roguelite/RogueliteRoomResource.cs b/Scripts/Resources/Roguelite/RogueliteRoomResource.cs index 5bced7b3..8c3f8f06 100644 --- a/Scripts/Resources/Roguelite/RogueliteRoomResource.cs +++ b/Scripts/Resources/Roguelite/RogueliteRoomResource.cs @@ -6,6 +6,7 @@ using Godot.Collections; namespace Cirno.Scripts.Resources.Roguelite; [GlobalClass] +[Tool] public partial class RogueliteRoomResource : Resource { [Export] public StringName RoomName { get; set; }