Compare commits

..

3 Commits

Author SHA1 Message Date
db93e8f68e base movement tutorial done
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 19s
Create tag and build when new code gets to main / Test (push) Successful in 6m48s
Create tag and build when new code gets to main / Export (push) Successful in 8m56s
2026-02-05 10:44:32 +01:00
4c302be16b more tutorial 2026-02-05 10:06:25 +01:00
013545af8a more tutorial 2026-02-05 10:06:12 +01:00
5 changed files with 747 additions and 50 deletions

View File

@@ -4,10 +4,14 @@
[ext_resource type="Material" uid="uid://31aulub2nqov" path="res://assets/materials/greybox/m_greybox.tres" id="2_lpm4c"]
[ext_resource type="Material" uid="uid://dw6lc8evmyc4d" path="res://assets/materials/greybox/m_greybox_valid.tres" id="3_u8sr4"]
[ext_resource type="Material" uid="uid://bm5f7jraqm8n0" path="res://assets/materials/greybox/m_greybox_secondary.tres" id="5_r26ni"]
[ext_resource type="PackedScene" uid="uid://87l65i0f2fqi" path="res://assets/meshes/stairs/stairs.tscn" id="5_u8sr4"]
[ext_resource type="Material" uid="uid://cqha1a2h1dg86" path="res://assets/materials/greybox/m_greybox_medium.tres" id="5_u8sr4"]
[node name="Main" unique_id=955321579 instance=ExtResource("1_jyq54")]
[node name="Player" parent="." index="6" unique_id=1309399929]
HasSword = false
HasParry = false
[node name="Greybox" type="CSGCombiner3D" parent="." index="7" unique_id=2082385716]
use_collision = true
collision_layer = 256
@@ -20,27 +24,27 @@ size = Vector3(100, 1, 190.741)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D2" type="CSGBox3D" parent="Greybox" index="1" unique_id=663820033]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.09600067, 3.25, 3.3005066)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.09600067, 4.5, 3.3005066)
use_collision = true
size = Vector3(10, 6.5, 2)
size = Vector3(10, 9, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D5" type="CSGBox3D" parent="Greybox" index="2" unique_id=1332226948]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0960007, 3.25, -16.699493)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0960007, 4.25, -16.699493)
use_collision = true
size = Vector3(16, 6.5, 2)
size = Vector3(16, 8.5, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D6" type="CSGBox3D" parent="Greybox" index="3" unique_id=868182610]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.096001, 3.25, -8.699493)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.096001, 4.25, -8.699493)
use_collision = true
size = Vector3(16, 6.5, 2)
size = Vector3(16, 8.5, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D9" type="CSGBox3D" parent="Greybox" index="4" unique_id=1175427795]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7.75, -42)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.25, -42)
use_collision = true
size = Vector3(38, 15.5, 2)
size = Vector3(38, 16.5, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D10" type="CSGBox3D" parent="Greybox" index="5" unique_id=427936811]
@@ -50,27 +54,27 @@ size = Vector3(21.5, 17, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D3" type="CSGBox3D" parent="Greybox" index="6" unique_id=1254886602]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 3.903999, 3.25, -6.6994934)
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 3.903999, 4.5, -6.6994934)
use_collision = true
size = Vector3(18, 6.5, 2)
size = Vector3(18, 9, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D7" type="CSGBox3D" parent="Greybox" index="7" unique_id=133005848]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -18.096, 3.25, -25.449493)
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -18.096, 8, -25.449493)
use_collision = true
size = Vector3(31.5, 6.5, 2)
size = Vector3(31.5, 16, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D8" type="CSGBox3D" parent="Greybox" index="8" unique_id=1267333699]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -10.096001, 3.25, -26.699493)
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -10.096001, 4.5, -26.699493)
use_collision = true
size = Vector3(18, 6.5, 2)
size = Vector3(18, 9, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D4" type="CSGBox3D" parent="Greybox" index="9" unique_id=1453945590]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.0960007, 3.25, -2.6994934)
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -4.0960007, 4.5, -2.6994934)
use_collision = true
size = Vector3(10, 6.5, 2)
size = Vector3(10, 9, 2)
material = ExtResource("2_lpm4c")
[node name="Step" type="CSGCombiner3D" parent="Greybox" index="10" unique_id=1645604967]
@@ -124,6 +128,18 @@ use_collision = true
size = Vector3(7.5, 3.5, 3.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox/Step3" index="3" unique_id=1687912660]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, -0.5, 8.5)
use_collision = true
size = Vector3(7.5, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox/Step3" index="4" unique_id=1075815413]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, -2.75, 8.5)
use_collision = true
size = Vector3(7.5, 3.5, 1)
material = ExtResource("2_lpm4c")
[node name="Step4" type="CSGCombiner3D" parent="Greybox" index="13" unique_id=1579908989]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 2.5, 6, -38.5)
@@ -145,80 +161,714 @@ use_collision = true
size = Vector3(7.5, 8, 3.5)
material = ExtResource("2_lpm4c")
[node name="stairs" parent="Greybox" index="14" unique_id=1895117406 instance=ExtResource("5_u8sr4")]
transform = Transform3D(-0.99999964, 0, -4.371139e-07, 0, 1, 0, 8.742275e-08, 0, -5, -8.5, 0, -38.5)
[node name="stairs2" parent="Greybox" index="15" unique_id=663901885 instance=ExtResource("5_u8sr4")]
transform = Transform3D(-0.99999964, 0, -4.371139e-07, 0, 1, 0, 8.742275e-08, 0, -5, -9.5, 1, -38.5)
[node name="CSGBox3D17" type="CSGBox3D" parent="Greybox" index="16" unique_id=1079419289]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.75, 0.75, -35.25)
[node name="CSGBox3D17" type="CSGBox3D" parent="Greybox" index="14" unique_id=1079419289]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.25, 0.75, -35.25)
use_collision = true
size = Vector3(7.5, 2.5, 11.5)
size = Vector3(6.5, 2.5, 11.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D11" type="CSGBox3D" parent="Greybox" index="17" unique_id=316945013]
[node name="CSGBox3D11" type="CSGBox3D" parent="Greybox" index="15" unique_id=316945013]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.75, 6.5, -35.25)
use_collision = true
size = Vector3(10.5, 1, 13.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D12" type="CSGBox3D" parent="Greybox" index="18" unique_id=1227474775]
[node name="CSGBox3D23" type="CSGBox3D" parent="Greybox" index="16" unique_id=1942257779]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 18.75, -38.25)
use_collision = true
size = Vector3(9, 5.5, 8.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D46" type="CSGBox3D" parent="Greybox" index="17" unique_id=1824745168]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 16.75, -38.25)
use_collision = true
size = Vector3(28, 1.5, 8.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D70" type="CSGBox3D" parent="Greybox" index="18" unique_id=1330738104]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 12.25, -15.5)
use_collision = true
size = Vector3(25, 7.5, 41)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D12" type="CSGBox3D" parent="Greybox" index="19" unique_id=1227474775]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 10.25, -37.75)
use_collision = true
size = Vector3(2, 13.5, 7.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox" index="19" unique_id=1383851577]
[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox" index="20" unique_id=1383851577]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.5, 8, -31.5)
use_collision = true
size = Vector3(2, 16, 5)
material = ExtResource("5_r26ni")
[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox" index="20" unique_id=238418660]
[node name="CSGBox3D15" type="CSGBox3D" parent="Greybox" index="21" unique_id=238418660]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.5, 8, -31.5)
use_collision = true
size = Vector3(2, 16, 5)
material = ExtResource("5_r26ni")
[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox" index="21" unique_id=437211444]
[node name="CSGBox3D14" type="CSGBox3D" parent="Greybox" index="22" unique_id=437211444]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 8, -27)
use_collision = true
size = Vector3(7, 16, 4)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox" index="22" unique_id=1913472587]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -26.5)
[node name="CSGBox3D20" type="CSGBox3D" parent="Greybox" index="23" unique_id=1913472587]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -8.5)
use_collision = true
size = Vector3(9, 1, 39)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D30" type="CSGBox3D" parent="Greybox" index="24" unique_id=1594042498]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 16.5, 17.5)
use_collision = true
size = Vector3(5, 1, 3)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox" index="23" unique_id=2094633204]
[node name="CSGBox3D54" type="CSGBox3D" parent="Greybox" index="25" unique_id=157354874]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 15.5, 22.5)
use_collision = true
size = Vector3(5, 7, 3)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D38" type="CSGBox3D" parent="Greybox" index="26" unique_id=348698998]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 18.5, 17.5)
use_collision = true
size = Vector3(1, 1, 13)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D39" type="CSGBox3D" parent="Greybox" index="27" unique_id=850320525]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 13.75, 17.5)
use_collision = true
size = Vector3(7, 10.5, 14)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D60" type="CSGBox3D" parent="Greybox" index="28" unique_id=177087863]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34, 22, 17.5)
use_collision = true
size = Vector3(1, 1, 13)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D61" type="CSGBox3D" parent="Greybox" index="29" unique_id=16972982]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38, 17.25, 14.5)
use_collision = true
size = Vector3(7, 10.5, 20)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D37" type="CSGBox3D" parent="Greybox" index="30" unique_id=1733162117]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.75, 9.5, 17.75)
use_collision = true
size = Vector3(22.5, 1, 14.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D56" type="CSGBox3D" parent="Greybox" index="31" unique_id=790895849]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.25, 11.5, 17.75)
use_collision = true
size = Vector3(24.5, 1, 14.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D34" type="CSGBox3D" parent="Greybox" index="32" unique_id=2008368941]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 12.5, 14.75)
use_collision = true
size = Vector3(6, 7, 8.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D43" type="CSGBox3D" parent="Greybox" index="33" unique_id=1975028151]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 12.5, 17.5)
use_collision = true
size = Vector3(4, 7, 3)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D44" type="CSGBox3D" parent="Greybox" index="34" unique_id=177387693]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 10.5, 17.25)
use_collision = true
size = Vector3(3, 3, 13.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D35" type="CSGBox3D" parent="Greybox" index="35" unique_id=570122850]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 16.5, 17.25)
use_collision = true
size = Vector3(5, 1, 13.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D21" type="CSGBox3D" parent="Greybox" index="36" unique_id=2094633204]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 16.5, -29.5)
use_collision = true
size = Vector3(1, 1, 9)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D22" type="CSGBox3D" parent="Greybox" index="24" unique_id=1623594342]
[node name="CSGBox3D24" type="CSGBox3D" parent="Greybox" index="37" unique_id=761197989]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 18.75, -29.5)
use_collision = true
size = Vector3(1, 5.5, 9)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D26" type="CSGBox3D" parent="Greybox" index="38" unique_id=258581541]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 18.25, -7)
use_collision = true
size = Vector3(3, 6.5, 36)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D42" type="CSGBox3D" parent="Greybox" index="39" unique_id=1332460934]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 25.75, -15.25)
use_collision = true
size = Vector3(9, 8.5, 52.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D27" type="CSGBox3D" parent="Greybox" index="40" unique_id=1484621306]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 22.5, -0.5)
use_collision = true
size = Vector3(3, 15, 49)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D31" type="CSGBox3D" parent="Greybox" index="41" unique_id=1289594807]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 19.25, 24.5)
use_collision = true
size = Vector3(35, 21.5, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D57" type="CSGBox3D" parent="Greybox" index="42" unique_id=652826918]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 14.25, 24.5)
use_collision = true
size = Vector3(17, 11.5, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D58" type="CSGBox3D" parent="Greybox" index="43" unique_id=1738066207]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.5, 23.5, 24.5)
use_collision = true
size = Vector3(16, 7, 1)
material = ExtResource("5_r26ni")
[node name="CSGBox3D59" type="CSGBox3D" parent="Greybox" index="44" unique_id=1421965564]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.5, 28.5, 24.5)
use_collision = true
size = Vector3(16, 3, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D63" type="CSGBox3D" parent="Greybox" index="45" unique_id=1781215916]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -38, 26.25, 24.5)
use_collision = true
size = Vector3(7, 7.5, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D64" type="CSGBox3D" parent="Greybox" index="46" unique_id=1515829063]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -39, 21.25, 14.75)
use_collision = true
size = Vector3(1, 17.5, 20.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D65" type="CSGBox3D" parent="Greybox" index="47" unique_id=807471618]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 21.25, 7.25)
use_collision = true
size = Vector3(1, 17.5, 5.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D73" type="CSGBox3D" parent="Greybox" index="48" unique_id=1654535689]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.5, 20.25, -15.75)
use_collision = true
size = Vector3(1, 19.5, 40.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D75" type="CSGBox3D" parent="Greybox" index="49" unique_id=1061275423]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.25, 20.25, 4.75)
use_collision = true
size = Vector3(4.5, 19.5, 2.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D76" type="CSGBox3D" parent="Greybox" index="50" unique_id=2120571329]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40.75, 20.25, 4.75)
use_collision = true
size = Vector3(4.5, 19.5, 2.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D79" type="CSGBox3D" parent="Greybox" index="51" unique_id=780854741]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.25, 20.25, -9.75)
use_collision = true
size = Vector3(4.5, 19.5, 5.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D80" type="CSGBox3D" parent="Greybox" index="52" unique_id=231628410]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40.75, 20.25, -9.75)
use_collision = true
size = Vector3(4.5, 19.5, 5.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D95" type="CSGBox3D" parent="Greybox" index="53" unique_id=1030736240]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31, 20.25, -34.25)
use_collision = true
size = Vector3(9, 19.5, 5.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D100" type="CSGBox3D" parent="Greybox" index="54" unique_id=251951336]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.5, 20.25, -40.75)
use_collision = true
size = Vector3(3, 19.5, 18.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D106" type="CSGBox3D" parent="Greybox" index="55" unique_id=1694005286]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.25, 37, -42.75)
use_collision = true
size = Vector3(25.5, 14, 22.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D107" type="CSGBox3D" parent="Greybox" index="56" unique_id=1819732168]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 30.5, -3.25)
use_collision = true
size = Vector3(12, 1, 56.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D108" type="CSGBox3D" parent="Greybox" index="57" unique_id=791611886]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.25, 30.5, 17.5)
use_collision = true
size = Vector3(47.5, 1, 15)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D96" type="CSGBox3D" parent="Greybox" index="58" unique_id=1113234130]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40.75, 20.25, -34.25)
use_collision = true
size = Vector3(4.5, 19.5, 5.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D97" type="CSGBox3D" parent="Greybox" index="59" unique_id=28477813]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.75, 19.25, -53.5)
use_collision = true
size = Vector3(24.5, 21.5, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D101" type="CSGBox3D" parent="Greybox" index="60" unique_id=1731327176]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.25, 26.25, -49.5)
use_collision = true
size = Vector3(29.5, 35.5, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D105" type="CSGBox3D" parent="Greybox" index="61" unique_id=1110625285]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 33.25, -88.5)
use_collision = true
size = Vector3(22, 21.5, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D102" type="CSGBox3D" parent="Greybox" index="62" unique_id=2087896010]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 33.25, -68.5)
use_collision = true
size = Vector3(1, 21.5, 39)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D103" type="CSGBox3D" parent="Greybox" index="63" unique_id=1795213809]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 33.25, -70.5)
use_collision = true
size = Vector3(1, 21.5, 35)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D74" type="CSGBox3D" parent="Greybox" index="64" unique_id=163691033]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42.5, 20.25, -24.25)
use_collision = true
size = Vector3(1, 19.5, 57.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D40" type="CSGBox3D" parent="Greybox" index="65" unique_id=149448218]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 19.5, 10.5)
use_collision = true
size = Vector3(43, 22, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D28" type="CSGBox3D" parent="Greybox" index="66" unique_id=34926235]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20.25, -10.25)
use_collision = true
size = Vector3(3, 2.5, 6.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D29" type="CSGBox3D" parent="Greybox" index="67" unique_id=1236916367]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 18.5, -10.25)
use_collision = true
size = Vector3(3, 1, 6.5)
material = ExtResource("5_u8sr4")
[node name="CSGBox3D32" type="CSGBox3D" parent="Greybox" index="68" unique_id=1361663538]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20.25, 7.75)
use_collision = true
size = Vector3(3, 2.5, 6.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D33" type="CSGBox3D" parent="Greybox" index="69" unique_id=2014293618]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 18.5, 7.75)
use_collision = true
size = Vector3(3, 1, 6.5)
material = ExtResource("5_u8sr4")
[node name="CSGBox3D25" type="CSGBox3D" parent="Greybox" index="70" unique_id=1000059913]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 18.75, -29.5)
use_collision = true
size = Vector3(1, 5.5, 9)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D22" type="CSGBox3D" parent="Greybox" index="71" unique_id=1623594342]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 16.5, -29.5)
use_collision = true
size = Vector3(1, 1, 9)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox" index="25" unique_id=1660129006]
[node name="CSGBox3D16" type="CSGBox3D" parent="Greybox" index="72" unique_id=1660129006]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 16.5, -28.5)
use_collision = true
size = Vector3(5, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox" index="26" unique_id=528606233]
[node name="CSGBox3D18" type="CSGBox3D" parent="Greybox" index="73" unique_id=528606233]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 16.5, -31.5)
use_collision = true
size = Vector3(1, 1, 5)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox" index="27" unique_id=533984919]
[node name="CSGBox3D19" type="CSGBox3D" parent="Greybox" index="74" unique_id=533984919]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 16.5, -31.5)
use_collision = true
size = Vector3(1, 1, 5)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D36" type="CSGBox3D" parent="Greybox" index="75" unique_id=1460670998]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 16.5, 13.5)
use_collision = true
size = Vector3(1, 1, 5)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D49" type="CSGBox3D" parent="Greybox" index="76" unique_id=1821984513]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 12.5, 17.25)
use_collision = true
size = Vector3(6, 7, 13.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D50" type="CSGBox3D" parent="Greybox" index="77" unique_id=935249000]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 16.5, 13.5)
use_collision = true
size = Vector3(1, 1, 5)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D51" type="CSGBox3D" parent="Greybox" index="78" unique_id=2063626202]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 16.5, 21.5)
use_collision = true
size = Vector3(1, 1, 5)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D45" type="CSGBox3D" parent="Greybox" index="79" unique_id=1969803797]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 17.5, 17.5)
use_collision = true
size = Vector3(1, 1, 3)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D62" type="CSGBox3D" parent="Greybox" index="80" unique_id=246528851]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 19.5, 22.5)
use_collision = true
size = Vector3(1, 1, 3)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D41" type="CSGBox3D" parent="Greybox" index="81" unique_id=902325179]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 12.5, 13.5)
use_collision = true
size = Vector3(1, 1, 5)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D55" type="CSGBox3D" parent="Greybox" index="82" unique_id=1746662054]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.75, 12.5, 16)
use_collision = true
size = Vector3(1.5, 3, 11)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D52" type="CSGBox3D" parent="Greybox" index="83" unique_id=1613606807]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 14.5, 17.25)
use_collision = true
size = Vector3(1, 7, 13.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D53" type="CSGBox3D" parent="Greybox" index="84" unique_id=2043849714]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 18.5, 16)
use_collision = true
size = Vector3(1, 1, 10)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D48" type="CSGBox3D" parent="Greybox" index="85" unique_id=998426919]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 14.5, 16)
use_collision = true
size = Vector3(1, 1, 10)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D66" type="CSGBox3D" parent="Greybox" index="86" unique_id=1549586957]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 19.5, 4)
use_collision = true
size = Vector3(3, 4, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D78" type="CSGBox3D" parent="Greybox" index="87" unique_id=1305480601]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37.5, 15.75, -7.25)
use_collision = true
size = Vector3(11, 13.5, 8.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D67" type="CSGBox3D" parent="Greybox" index="88" unique_id=11222487]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 22, 4)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D86" type="CSGBox3D" parent="Greybox" index="89" unique_id=905628818]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 22, -12)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D77" type="CSGBox3D" parent="Greybox" index="90" unique_id=582978856]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 22, -2.5)
use_collision = true
size = Vector3(10, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D87" type="CSGBox3D" parent="Greybox" index="91" unique_id=1897627146]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 15.75, -31.75)
use_collision = true
size = Vector3(10, 13.5, 8.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D88" type="CSGBox3D" parent="Greybox" index="92" unique_id=854998014]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 22, -27)
use_collision = true
size = Vector3(10, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D98" type="CSGBox3D" parent="Greybox" index="93" unique_id=447434163]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.75, 15.5, -51.5)
use_collision = true
size = Vector3(32.5, 14, 3)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D104" type="CSGBox3D" parent="Greybox" index="94" unique_id=1442208554]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 21.75, -70.5)
use_collision = true
size = Vector3(20, 1.5, 35)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D99" type="CSGBox3D" parent="Greybox" index="95" unique_id=2008353765]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -28.5, 22, -49.5)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D109" type="CSGBox3D" parent="Greybox" index="96" unique_id=519906200]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.5, 22, -51)
use_collision = true
size = Vector3(1, 1, 4)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D68" type="CSGBox3D" parent="Greybox" index="97" unique_id=743815889]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -36.5, 16.5, 0.5)
use_collision = true
size = Vector3(12, 4, 8)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D69" type="CSGBox3D" parent="Greybox" index="98" unique_id=1709107988]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -36.5, 19.5, -2.75)
use_collision = true
size = Vector3(12, 4, 1.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D72" type="CSGBox3D" parent="Greybox" index="99" unique_id=547486564]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34.75, 10, -24.75)
use_collision = true
size = Vector3(19.5, 3, 58.5)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D81" type="CSGBox3D" parent="Greybox" index="100" unique_id=1566599507]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 19.5, -12)
use_collision = true
size = Vector3(3, 4, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D82" type="CSGBox3D" parent="Greybox" index="101" unique_id=1617624220]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 16, -12.5)
use_collision = true
size = Vector3(3, 3, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D83" type="CSGBox3D" parent="Greybox" index="102" unique_id=1568985583]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 18, -13)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D84" type="CSGBox3D" parent="Greybox" index="103" unique_id=631880926]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 13, -13)
use_collision = true
size = Vector3(3, 3, 3)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D85" type="CSGBox3D" parent="Greybox" index="104" unique_id=996930960]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 15, -14)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D89" type="CSGBox3D" parent="Greybox" index="105" unique_id=1602075080]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 22, -36.5)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D90" type="CSGBox3D" parent="Greybox" index="106" unique_id=1904513833]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 19.5, -36.5)
use_collision = true
size = Vector3(3, 4, 1)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D91" type="CSGBox3D" parent="Greybox" index="107" unique_id=1314237812]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 16, -37)
use_collision = true
size = Vector3(3, 3, 2)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D92" type="CSGBox3D" parent="Greybox" index="108" unique_id=560010720]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 18, -37.5)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D93" type="CSGBox3D" parent="Greybox" index="109" unique_id=147254481]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 13, -37.5)
use_collision = true
size = Vector3(3, 3, 3)
material = ExtResource("2_lpm4c")
[node name="CSGBox3D94" type="CSGBox3D" parent="Greybox" index="110" unique_id=691195821]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 15, -38.5)
use_collision = true
size = Vector3(3, 1, 1)
material = ExtResource("3_u8sr4")
[node name="CSGBox3D47" type="CSGBox3D" parent="Greybox" index="111" unique_id=1635436254]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 12.5, 21.5)
use_collision = true
size = Vector3(1, 1, 5)
material = ExtResource("3_u8sr4")
[node name="Lights" type="Node3D" parent="." index="8" unique_id=395750804]
[node name="OmniLight3D" type="OmniLight3D" parent="Lights" index="0" unique_id=1759925856]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 2, -12)
omni_range = 6.0
[node name="OmniLight3D2" type="OmniLight3D" parent="Lights" index="1" unique_id=458028986]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.5, 2.5, -18)
omni_range = 6.0
[node name="OmniLight3D3" type="OmniLight3D" parent="Lights" index="2" unique_id=735245103]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 7, -39.5)
omni_range = 9.5
[node name="OmniLight3D31" type="OmniLight3D" parent="Lights" index="3" unique_id=829009277]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 4.5, -24.5)
omni_range = 9.5
[node name="OmniLight3D4" type="OmniLight3D" parent="Lights" index="4" unique_id=92911518]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 5.5, -38.5)
omni_range = 5.5
[node name="OmniLight3D30" type="OmniLight3D" parent="Lights" index="5" unique_id=697077536]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 3, -38.5)
[node name="OmniLight3D5" type="OmniLight3D" parent="Lights" index="6" unique_id=1550409099]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.5, 9.5, -39)
omni_range = 6.5
[node name="OmniLight3D6" type="OmniLight3D" parent="Lights" index="7" unique_id=342293346]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 10.5, -32)
omni_range = 3.5
[node name="OmniLight3D7" type="OmniLight3D" parent="Lights" index="8" unique_id=1443833930]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 19.5, -32)
omni_range = 8.0
[node name="OmniLight3D8" type="OmniLight3D" parent="Lights" index="9" unique_id=260674221]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20, -15)
omni_range = 4.0
[node name="OmniLight3D9" type="OmniLight3D" parent="Lights" index="10" unique_id=1269832640]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 20, 3.5)
omni_range = 4.0
[node name="OmniLight3D10" type="OmniLight3D" parent="Lights" index="11" unique_id=21886206]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 17.5, -6.5)
omni_range = 7.5
[node name="OmniLight3D11" type="OmniLight3D" parent="Lights" index="12" unique_id=1631281854]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 17.5, 11.5)
omni_range = 7.5
[node name="OmniLight3D12" type="OmniLight3D" parent="Lights" index="13" unique_id=1292223180]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.5, 19, 17.5)
omni_range = 4.5
[node name="OmniLight3D15" type="OmniLight3D" parent="Lights" index="14" unique_id=895379786]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.5, 21, 22.5)
omni_range = 3.5
[node name="OmniLight3D18" type="OmniLight3D" parent="Lights" index="15" unique_id=277657948]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.5, 24.5, 17.5)
omni_range = 15.5
[node name="OmniLight3D13" type="OmniLight3D" parent="Lights" index="16" unique_id=305122268]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 22.5, 20.5)
omni_range = 7.0
[node name="OmniLight3D14" type="OmniLight3D" parent="Lights" index="17" unique_id=915168140]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 22.5, 17.5)
omni_range = 10.0
[node name="OmniLight3D16" type="OmniLight3D" parent="Lights" index="18" unique_id=1080888977]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.5, 25.5, 22)
omni_range = 7.0
[node name="OmniLight3D17" type="OmniLight3D" parent="Lights" index="19" unique_id=922282838]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -36.5, 25.5, 10.5)
omni_range = 7.0
[node name="OmniLight3D19" type="OmniLight3D" parent="Lights" index="20" unique_id=1959866895]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25.5, -5.5)
omni_range = 7.0
[node name="OmniLight3D29" type="OmniLight3D" parent="Lights" index="21" unique_id=2143811783]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 25.5, -16.5)
omni_range = 7.0
[node name="OmniLight3D20" type="OmniLight3D" parent="Lights" index="22" unique_id=1665621589]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -29)
omni_range = 7.0
[node name="OmniLight3D21" type="OmniLight3D" parent="Lights" index="23" unique_id=1870279999]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -29)
omni_range = 7.0
[node name="OmniLight3D22" type="OmniLight3D" parent="Lights" index="24" unique_id=1284564847]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -39.5)
omni_range = 7.0
[node name="OmniLight3D23" type="OmniLight3D" parent="Lights" index="25" unique_id=1612575478]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37, 24.5, -39.5)
omni_range = 7.0
[node name="OmniLight3D24" type="OmniLight3D" parent="Lights" index="26" unique_id=1748145610]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.5, 24.5, -47)
omni_range = 10.0
[node name="OmniLight3D25" type="OmniLight3D" parent="Lights" index="27" unique_id=727558952]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -28, 24.5, -51)
[node name="OmniLight3D26" type="OmniLight3D" parent="Lights" index="28" unique_id=1646376304]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 24.5, -51.5)
omni_range = 7.0
[node name="OmniLight3D27" type="OmniLight3D" parent="Lights" index="29" unique_id=1849438050]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 24.5, -51.5)
omni_range = 4.5
[node name="OmniLight3D28" type="OmniLight3D" parent="Lights" index="30" unique_id=915210790]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 25.5, -54.5)
omni_range = 4.5

View File

@@ -399,7 +399,6 @@ offset_left = 1524.0
offset_top = 1.0
offset_right = -8.0
offset_bottom = 1.0
enabled = false
initial_node_to_watch = NodePath("../StateChart")
[node name="UI" type="Control" parent="." unique_id=856532641]
@@ -790,6 +789,12 @@ to = NodePath("../../Mantling")
event = &"mantle"
delay_in_seconds = "0.0"
[node name="OnWallRun" type="Node" parent="StateChart/Root/Movement/Jump" unique_id=1685494079]
script = ExtResource("28_n7qhm")
to = NodePath("../../OnWall/Running")
event = &"wall_run"
delay_in_seconds = "0.0"
[node name="SimpleJump" type="Node" parent="StateChart/Root/Movement/Jump" unique_id=591943461]
script = ExtResource("27_34snm")
@@ -1089,6 +1094,12 @@ delay_in_seconds = "0.0"
[node name="Hugging" type="Node" parent="StateChart/Root/Movement/OnWall" unique_id=162057636]
script = ExtResource("27_34snm")
[node name="OnWallRun" type="Node" parent="StateChart/Root/Movement/OnWall/Hugging" unique_id=979474050]
script = ExtResource("28_n7qhm")
to = NodePath("../../Running")
event = &"wall_run"
delay_in_seconds = "0.0"
[node name="OnDash" type="Node" parent="StateChart/Root/Movement/OnWall/Hugging" unique_id=43147957]
script = ExtResource("28_n7qhm")
to = NodePath("../../../Dashing/Dash")

View File

@@ -126,6 +126,12 @@ public partial class HeadSystem : Node3D
_slidingNoise.SetFrequency(SlidingJitterFrequency);
}
public void SetWeaponsVisible(bool swordVisible, bool parryVisible)
{
_rightHandedWeapon.Visible = swordVisible;
_leftHandedWeapon.Visible = parryVisible;
}
public void OnMantle()
{
_animationTree.Set("parameters/OnMantle/request", (int) AnimationNodeOneShot.OneShotRequest.Fire);

View File

@@ -160,7 +160,7 @@ tracks/6/keys = {
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/enabled = false
tracks/7/path = NodePath("../../FPRig/Parry:visible")
tracks/7/interp = 1
tracks/7/loop_wrap = true
@@ -671,6 +671,7 @@ mesh = ExtResource("2_c5qep")
[node name="Parry" type="Node3D" parent="FPRig" unique_id=1218775403]
transform = Transform3D(0.43521196, -1.1178209, 0.03266725, -0.65402746, -0.2828554, -0.96552634, 0.9071047, 0.33236945, -0.711823, -0.22145952, -0.19867475, -1.3653086)
visible = false
[node name="ParryMesh" type="MeshInstance3D" parent="FPRig/Parry" unique_id=1993291456]
mesh = ExtResource("3_1ay6d")

View File

@@ -76,6 +76,8 @@ public partial class PlayerController : CharacterBody3D,
// Inspector stuff
[Export] public Marker3D TutorialWeaponTarget;
[Export] public bool TutorialDone { get; set; }
[Export] public bool HasSword { get; set; } = true;
[Export] public bool HasParry { get; set; } = true;
// Combat stuff
[ExportCategory("Combat")]
@@ -523,8 +525,10 @@ public partial class PlayerController : CharacterBody3D,
EmpoweredActionsLeft = MaxNumberOfEmpoweredActions;
if (!TutorialDone)
PlaceWeaponForTutorial();
// if (!TutorialDone)
// PlaceWeaponForTutorial();
HeadSystem.SetWeaponsVisible(HasSword, HasParry);
///////////////////////////
// Signal setup ///////////
@@ -826,14 +830,7 @@ public partial class PlayerController : CharacterBody3D,
return;
// Should we start a wall run
var wallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Zero);
var isIndeedWall = wallNormal.Y < 0.1;
var hvel = new Vector3(Velocity.X, 0, Velocity.Z);
var hvelProjected = hvel.Slide(_wallHugStartNormal);
var haveEnoughSpeed = hvelProjected.Length() > WallRunSpeedThreshold;
var isCoplanarEnough = Velocity.AngleTo(wallNormal) > Math.PI/4 && Velocity.AngleTo(wallNormal) < 3*Math.PI/4;
var isGoingDownwards = Velocity.AngleTo(Vector3.Down) < Math.PI/4;
if (haveEnoughSpeed && isCoplanarEnough && !isGoingDownwards && isIndeedWall && !_coyoteEnabled.Active)
if (ShouldStartWallRun())
{
SetVerticalVelocity(WallRunUpwardVelocity);
_playerState.SendEvent("wall_run");
@@ -841,12 +838,25 @@ public partial class PlayerController : CharacterBody3D,
}
// If all else fail and we go down, we hug
var wallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Zero);
if (Velocity.Y < 0 && IsInputTowardsWall(wallNormal))
{
_playerState.SendEvent("wall_hug");
}
}
public bool ShouldStartWallRun()
{
var wallNormal = WallHugSystem.WallHugNormal.UnwrapOr(Vector3.Zero);
var isIndeedWall = wallNormal.Y < 0.1;
var hvel = new Vector3(Velocity.X, 0, Velocity.Z);
var hvelProjected = hvel.Slide(_wallHugStartNormal);
var haveEnoughSpeed = hvelProjected.Length() > WallRunSpeedThreshold;
var isCoplanarEnough = Velocity.AngleTo(wallNormal) > Math.PI/4 && Velocity.AngleTo(wallNormal) < 3*Math.PI/4;
var isGoingDownwards = Velocity.AngleTo(Vector3.Down) < Math.PI/4;
return haveEnoughSpeed && isCoplanarEnough && !isGoingDownwards && isIndeedWall && !_coyoteEnabled.Active;
}
public float ComputeVerticalSpeedGravity(float delta)
{
return Velocity.Y - CalculateGravityForce() * delta;
@@ -1135,6 +1145,12 @@ public partial class PlayerController : CharacterBody3D,
_canDashAirborne = true;
WallHug(delta);
if (ShouldStartWallRun())
{
SetVerticalVelocity(WallRunUpwardVelocity);
_playerState.SendEvent("wall_run");
return;
}
if (isOnFloorCustom())
_playerState.SendEvent("grounded");
if (!WallHugSystem.IsWallHugging() || !IsInputTowardsWall(_wallHugStartNormal))
@@ -1268,6 +1284,13 @@ public partial class PlayerController : CharacterBody3D,
{
if (IsTryingToMantle()) _playerState.SendEvent("mantle");
// if (ShouldStartWallRun())
// {
// SetVerticalVelocity(WallRunUpwardVelocity);
// _playerState.SendEvent("wall_run");
// return;
// }
// Update horizontal velocity
var horizontalVelocity = ComputeHVelocityAir(delta);
Velocity = new Vector3(horizontalVelocity.X, Velocity.Y, horizontalVelocity.Z);
@@ -1667,10 +1690,12 @@ public partial class PlayerController : CharacterBody3D,
///////////////////////////
public void OnInputAimPressed()
{
if (!HasSword) return;
_playerState.SendEvent("aim_pressed");
}
public void OnInputAimDown()
{
if (!HasSword) return;
_playerState.SendEvent("aim_down");
}
public void OnInputAimReleased()
@@ -1722,6 +1747,8 @@ public partial class PlayerController : CharacterBody3D,
///////////////////////////
public void OnInputParryPressed()
{
if (!HasParry) return;
var attackToDo = _isEnemyInDashAttackRange ? "dash_parry" : "standard_parry";
_playerState.SendEvent(attackToDo);
}
@@ -2115,6 +2142,8 @@ public partial class PlayerController : CharacterBody3D,
public void OnInputHitPressed()
{
if (!HasSword) return;
if (_onWallHanging.Active) return;
if (_aiming.Active && WeaponSystem.InHandState.Active)