From 8e7aff213b53e74147c5f426bcaceb7afd29cf6f Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 1 Apr 2026 13:45:29 +0200 Subject: [PATCH] feat: added naturalisation and walls --- project/objects/tiles/wall.tscn | 9 ++ project/scenes/levels/dungeon.tscn | 226 +++++++++++++++++------------ 2 files changed, 141 insertions(+), 94 deletions(-) create mode 100644 project/objects/tiles/wall.tscn diff --git a/project/objects/tiles/wall.tscn b/project/objects/tiles/wall.tscn new file mode 100644 index 0000000000..ae4f99afe6 --- /dev/null +++ b/project/objects/tiles/wall.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://dgfja2ji86rp7"] + +[node name="Wall" type="Node3D" unique_id=1022045952] + +[node name="CSGBox3D" type="CSGBox3D" parent="." unique_id=1599165395] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.97627914, 0) +autosmooth = true +use_collision = true +size = Vector3(1, 2.0471954, 1) diff --git a/project/scenes/levels/dungeon.tscn b/project/scenes/levels/dungeon.tscn index 821d4a9f55..0b454c5d29 100644 --- a/project/scenes/levels/dungeon.tscn +++ b/project/scenes/levels/dungeon.tscn @@ -3,6 +3,7 @@ [ext_resource type="PackedScene" uid="uid://bn7d8n5mbabu3" path="res://objects/tiles/path.tscn" id="1_wail4"] [ext_resource type="PackedScene" uid="uid://cts1ix6iw1jpc" path="res://objects/tiles/start.tscn" id="2_srduu"] [ext_resource type="PackedScene" uid="uid://cgg86120wb367" path="res://objects/tiles/room.tscn" id="3_s5a2w"] +[ext_resource type="PackedScene" uid="uid://dgfja2ji86rp7" path="res://objects/tiles/wall.tscn" id="4_yc5ro"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_wail4"] sky_horizon_color = Color(0.66224277, 0.6717428, 0.6867428, 1) @@ -17,111 +18,132 @@ sky = SubResource("Sky_srduu") glow_enabled = true [sub_resource type="Sentence" id="Sentence_bb2w7"] -size = Vector2i(20, 20) -symbols_string = "uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu -uuuuuuuuuuuuuuuuuuuu" +size = Vector2i(15, 15) +symbols_string = "uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu +uuuuuuuuuuuuuuu" [sub_resource type="Sentence" id="Sentence_s5a2w"] size = Vector2i(5, 3) symbols_string = "uuuuu uuuuu -*###*" +*#*#*" [sub_resource type="Sentence" id="Sentence_yc5ro"] size = Vector2i(5, 3) symbols_string = "uuuuu -uxpxu +uxppu *pup*" -[sub_resource type="Sentence" id="Sentence_wyxho"] -size = Vector2i(5, 5) +[sub_resource type="Sentence" id="Sentence_qw2yk"] +size = Vector2i(5, 3) symbols_string = "uuuuu -uuuuu -#p#p# -uuuuu -uuuuu" +upppu +*pux*" -[sub_resource type="Sentence" id="Sentence_q0ye3"] -size = Vector2i(5, 5) -symbols_string = "uuuuu -uppxu -#pup# -uxppu -uuuuu" +[sub_resource type="Sentence" id="Sentence_pbld3"] +size = Vector2i(5, 4) +symbols_string = "####* +u#u#* +u#### +uuu*u" + +[sub_resource type="Sentence" id="Sentence_06kf8"] +size = Vector2i(5, 4) +symbols_string = "####* +uuu#* +uuu## +uuu*u" [sub_resource type="Sentence" id="Sentence_7f72c"] size = Vector2i(5, 3) -symbols_string = "u#u#u -u#u#u -u#u#u" +symbols_string = "**#** +uuuuu +**#**" [sub_resource type="Sentence" id="Sentence_w0mg0"] size = Vector2i(5, 3) -symbols_string = "u#p#u -uuu#u -u#p#u" +symbols_string = "**p** +uupuu +**p**" -[sub_resource type="Sentence" id="Sentence_pbld3"] -size = Vector2i(5, 5) -symbols_string = "u#u#u -*###* -uu#uu -*###* -u#u#u" +[sub_resource type="Sentence" id="Sentence_wyxho"] +size = Vector2i(3, 3) +symbols_string = "*u* +u#u +###" -[sub_resource type="Sentence" id="Sentence_06kf8"] -size = Vector2i(5, 5) -symbols_string = "u#u#u -*#u#* -upupu -*#u#* -u#u#u" +[sub_resource type="Sentence" id="Sentence_q0ye3"] +size = Vector2i(3, 3) +symbols_string = "*u* +uuu +###" [sub_resource type="Sentence" id="Sentence_c7dwr"] -size = Vector2i(5, 5) -symbols_string = "u#u#u -*###* -upuuu -*###* -u#u#u" +size = Vector2i(3, 3) +symbols_string = "### +#s# +###" [sub_resource type="Sentence" id="Sentence_ohg4i"] -size = Vector2i(6, 4) -symbols_string = "uuuuuu -u###uu -u#u#uu -*#u#u*" +size = Vector2i(3, 3) +symbols_string = "ppp +psp +ppp" [sub_resource type="Sentence" id="Sentence_b4io3"] -size = Vector2i(6, 4) -symbols_string = "uuuuuu -u###pu -u#uupu -*#upp*" +size = Vector2i(4, 4) +symbols_string = "#uuu +#uuu +#uuu +####" + +[sub_resource type="Sentence" id="Sentence_cygrb"] +size = Vector2i(4, 4) +symbols_string = "#puu +#ppu +#ppp +####" + +[sub_resource type="Sentence" id="Sentence_cxvmb"] +size = Vector2i(4, 4) +symbols_string = "#uuu +#puu +#ppu +####" + +[sub_resource type="Sentence" id="Sentence_45kae"] +size = Vector2i(4, 4) +symbols_string = "pppu +pppu +pppu +uuuu" [sub_resource type="Sentence" id="Sentence_eijdf"] -size = Vector2i(4, 3) -symbols_string = "#### -uu#u -###*" +size = Vector2i(4, 4) +symbols_string = "pppu +ppuu +puuu +uuuu" + +[sub_resource type="Sentence" id="Sentence_5lcvo"] +size = Vector2i(4, 4) +symbols_string = "pppu +pppu +ppuu +uuuu" [node name="Dungeon" type="Node3D" unique_id=719313039] @@ -137,44 +159,60 @@ state = SubResource("Sentence_bb2w7") tiles_dict = { "p": ExtResource("1_wail4"), "s": ExtResource("2_srduu"), +"u": ExtResource("4_yc5ro"), "x": ExtResource("3_s5a2w") } -[node name="RepeatRuleUntilFailure" type="RepeatRuleUntilFailure" parent="Generator" unique_id=407316032] +[node name="Generate" type="CompositeRule" parent="Generator" unique_id=474042789] -[node name="InitialLayout" type="CompositeRule" parent="Generator/RepeatRuleUntilFailure" unique_id=117678547] -random_order = true +[node name="InitialLayout" type="RepeatRuleUntilFailure" parent="Generator/Generate" unique_id=612040827] -[node name="ZigUp" type="ReplaceRule" parent="Generator/RepeatRuleUntilFailure/InitialLayout" unique_id=1073931523] +[node name="ZigUp" type="ReplaceRule" parent="Generator/Generate/InitialLayout" unique_id=1073931523] pattern = SubResource("Sentence_s5a2w") results_dict = { -SubResource("Sentence_yc5ro"): 1.0 +SubResource("Sentence_yc5ro"): 1.0, +SubResource("Sentence_qw2yk"): 1.0 } -[node name="Split" type="ReplaceRule" parent="Generator/RepeatRuleUntilFailure/InitialLayout" unique_id=222066055] -pattern = SubResource("Sentence_wyxho") +[node name="L" type="ReplaceRule" parent="Generator/Generate/InitialLayout" unique_id=129040074] +pattern = SubResource("Sentence_pbld3") results_dict = { -SubResource("Sentence_q0ye3"): 1.0 +SubResource("Sentence_06kf8"): 1.0 } -[node name="Bridge" type="ReplaceRule" parent="Generator/RepeatRuleUntilFailure/InitialLayout" unique_id=233403765] +[node name="CloseLines" type="ReplaceRule" parent="Generator/Generate/InitialLayout" unique_id=1610319319] pattern = SubResource("Sentence_7f72c") results_dict = { SubResource("Sentence_w0mg0"): 1.0 } -[node name="ConnectLoops" type="ReplaceRule" parent="Generator/RepeatRuleUntilFailure/InitialLayout" unique_id=874341993] -pattern = SubResource("Sentence_pbld3") +[node name="EraseNubs" type="ReplaceRule" parent="Generator/Generate/InitialLayout" unique_id=354387695] +pattern = SubResource("Sentence_wyxho") results_dict = { -SubResource("Sentence_06kf8"): 1.0, -SubResource("Sentence_c7dwr"): 1.0 +SubResource("Sentence_q0ye3"): 1.0 } -[node name="WidenLoops" type="ReplaceRule" parent="Generator/RepeatRuleUntilFailure/InitialLayout" unique_id=2024540398] -pattern = SubResource("Sentence_ohg4i") +[node name="ResizeRule" type="ResizeRule" parent="Generator/Generate" unique_id=630306379] +factor = 3 + +[node name="SingleStart" type="ReplaceRule" parent="Generator/Generate" unique_id=80625713] +pattern = SubResource("Sentence_c7dwr") results_dict = { -SubResource("Sentence_b4io3"): 0.0 +SubResource("Sentence_ohg4i"): 1.0 } -[node name="CloseGaps" type="ReplaceRule" parent="Generator/RepeatRuleUntilFailure/InitialLayout" unique_id=370907114] -pattern = SubResource("Sentence_eijdf") +[node name="Naturalise" type="RepeatRuleUntilFailure" parent="Generator/Generate" unique_id=945333249] + +[node name="InnerCorner" type="ReplaceRule" parent="Generator/Generate/Naturalise" unique_id=1294874606] +pattern = SubResource("Sentence_b4io3") +results_dict = { +SubResource("Sentence_cygrb"): 1.0, +SubResource("Sentence_cxvmb"): 1.0 +} + +[node name="OuterCorner" type="ReplaceRule" parent="Generator/Generate/Naturalise" unique_id=1858990914] +pattern = SubResource("Sentence_45kae") +results_dict = { +SubResource("Sentence_eijdf"): 1.0, +SubResource("Sentence_5lcvo"): 1.0 +}