Compare commits

..

7 Commits

65 changed files with 3787 additions and 1934 deletions

View File

@ -31,6 +31,7 @@ ssil_radius = 0.4
ssil_intensity = 2.5
ssil_normal_rejection = 0.73
sdfgi_enabled = true
sdfgi_use_occlusion = true
sdfgi_read_sky_light = false
sdfgi_cascades = 7
glow_enabled = true

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=22 format=3 uid="uid://bov4ok76woyc"]
[gd_scene load_steps=24 format=3 uid="uid://bov4ok76woyc"]
[ext_resource type="PackedScene" uid="uid://crydi5cjgfwe5" path="res://levels/ghost_ship/ghost_ship_level.tscn" id="1_aj2m7"]
[ext_resource type="Environment" uid="uid://bkvij3ljl5ox3" path="res://levels/ghost_ship/environment_3.tres" id="1_h081y"]
@ -19,6 +19,7 @@
[ext_resource type="AudioStream" uid="uid://cvwc2r2cmnaim" path="res://assets/sfx/ambient/metal_creak8.wav" id="15_r4ldl"]
[ext_resource type="AudioStream" uid="uid://b288km80xeh0" path="res://assets/sfx/grunk/groan1.wav" id="17_law5k"]
[ext_resource type="AudioStream" uid="uid://bujyltdunajj4" path="res://assets/sfx/grunk/groan2.wav" id="18_4mbcm"]
[ext_resource type="Script" uid="uid://m8bjl8yr01m6" path="res://src/util/gi_hint.gd" id="20_4mbcm"]
[sub_resource type="BoxShape3D" id="BoxShape3D_o7mxe"]
size = Vector3(6, 4, 15)
@ -42,6 +43,9 @@ stream_9/weight = 0.2
stream_10/stream = ExtResource("10_h081y")
stream_10/weight = 0.2
[sub_resource type="BoxMesh" id="BoxMesh_law5k"]
size = Vector3(8, 6, 1)
[node name="GhostShip" type="Node3D"]
script = ExtResource("1_law5k")
id = "ghost_ship"
@ -119,5 +123,12 @@ bus = &"Ambient"
interval_mean = 120.0
interval_st_dev = 30.0
[node name="GIHint" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27, 2, -43.5)
visible = false
mesh = SubResource("BoxMesh_law5k")
script = ExtResource("20_4mbcm")
frames_to_live = 20000
[connection signal="body_entered" from="PlayerShipArea" to="AmbientDrone" method="_on_player_enters_ship"]
[connection signal="body_exited" from="PlayerShipArea" to="AmbientDrone" method="_on_player_exits_ship"]

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=60 format=3 uid="uid://cwhmn3w8hoads"]
[gd_scene load_steps=62 format=3 uid="uid://cwhmn3w8hoads"]
[ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="1_isxnv"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_on3c1"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_si4vj"]
[ext_resource type="Texture2D" uid="uid://dthjo3ymo7say" path="res://levels/ghost_ship/level/airlock/floor_mask.png" id="3_7lojt"]
[ext_resource type="ArrayMesh" uid="uid://bumwpsm42csme" path="res://assets/level/ceiling/ceiling_9x9.mesh" id="4_hgu5g"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="4_knpho"]
[ext_resource type="Texture2D" uid="uid://bn4nrclcovuej" path="res://assets/level/wall/wall_1_C.png" id="5_oawwh"]
[ext_resource type="Texture2D" uid="uid://da3nqwmiwbu8s" path="res://assets/level/wall/wall_1_M.png" id="6_orm16"]
[ext_resource type="Texture2D" uid="uid://bujelwt4b5d0s" path="res://assets/level/wall/wall_1_N.png" id="7_8qct8"]
@ -28,6 +29,7 @@
[ext_resource type="Texture2D" uid="uid://b1m1my5q2vlwi" path="res://assets/props/crate_long/crate_long_R.png" id="26_s0aa0"]
[ext_resource type="PackedScene" uid="uid://2yqi5u5eo025" path="res://src/world/gunk_node/grunk_nodule.tscn" id="27_4jxmw"]
[ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="28_fajl5"]
[ext_resource type="Script" uid="uid://040xta01xqxd" path="res://src/props/physics/holdable.gd" id="28_knpho"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="29_ib88w"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_yvipw"]
@ -141,8 +143,8 @@ normal_texture = ExtResource("25_fbvpt")
ao_enabled = true
texture_filter = 2
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_1ckgi"]
data = PackedVector3Array(0.375, -0.15, 0.75, 0.275, -0.25, 0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.275, -0.25, 0.75, 0.275, 0.25, 0.75, 0.275, 0.25, 0.75, 0.275, -0.25, 0.75, -0.275, 0.25, 0.75, -0.275, 0.25, 0.75, 0.275, -0.25, 0.75, -0.375, 0.15, 0.75, -0.375, 0.15, 0.75, 0.275, -0.25, 0.75, -0.375, -0.15, 0.75, -0.375, -0.15, 0.75, 0.275, -0.25, 0.75, -0.275, -0.25, 0.75, 0.375, 0.15, -0.75, 0.375, -0.15, -0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.375, -0.15, -0.75, 0.375, -0.15, 0.75, -0.275, 0.25, -0.75, 0.275, 0.25, -0.75, -0.275, 0.25, 0.75, -0.275, 0.25, 0.75, 0.275, 0.25, -0.75, 0.275, 0.25, 0.75, -0.375, 0.15, 0.75, -0.375, -0.15, 0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.375, -0.15, 0.75, -0.375, -0.15, -0.75, -0.375, -0.15, -0.75, -0.275, -0.25, -0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.275, -0.25, -0.75, -0.275, 0.25, -0.75, -0.275, 0.25, -0.75, -0.275, -0.25, -0.75, 0.275, 0.25, -0.75, 0.275, 0.25, -0.75, -0.275, -0.25, -0.75, 0.375, 0.15, -0.75, 0.375, 0.15, -0.75, -0.275, -0.25, -0.75, 0.375, -0.15, -0.75, 0.375, -0.15, -0.75, -0.275, -0.25, -0.75, 0.275, -0.25, -0.75, -0.275, -0.25, 0.75, -0.275, -0.25, -0.75, -0.375, -0.15, 0.75, -0.375, -0.15, 0.75, -0.275, -0.25, -0.75, -0.375, -0.15, -0.75, -0.275, 0.25, -0.75, -0.275, 0.25, 0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.275, 0.25, 0.75, -0.375, 0.15, 0.75, 0.275, -0.25, -0.75, 0.275, -0.25, 0.75, 0.375, -0.15, -0.75, 0.375, -0.15, -0.75, 0.275, -0.25, 0.75, 0.375, -0.15, 0.75, 0.275, 0.25, 0.75, 0.275, 0.25, -0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.275, 0.25, -0.75, 0.375, 0.15, -0.75, 0.275, -0.25, -0.75, -0.275, -0.25, -0.75, 0.275, -0.25, 0.75, 0.275, -0.25, 0.75, -0.275, -0.25, -0.75, -0.275, -0.25, 0.75)
[sub_resource type="BoxShape3D" id="BoxShape3D_si4vj"]
size = Vector3(0.75, 0.5, 1.5)
[sub_resource type="Curve" id="Curve_2ldv4"]
_limits = [0.0, 0.4, 0.0, 1.0]
@ -188,25 +190,38 @@ turbulence_influence_min = 0.0
[node name="Floor" type="MeshInstance3D" parent="Bounds"]
mesh = ExtResource("1_isxnv")
skeleton = NodePath("../..")
[node name="GunkBody" parent="Bounds/Floor" groups=["MetalMaterial"] instance=ExtResource("2_on3c1")]
initial_mask = ExtResource("3_7lojt")
[node name="StaticBody3D" type="StaticBody3D" parent="Bounds/Floor" groups=["MetalMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/Floor/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/Floor/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_yvipw")
[node name="Gunkable" parent="Bounds/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_si4vj")]
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("3_7lojt")
source_gunk_material = ExtResource("4_knpho")
[node name="Ceiling" type="MeshInstance3D" parent="Bounds"]
transform = Transform3D(-1, -7.64274e-15, 8.74228e-08, 0, -1, -8.74228e-08, 8.74228e-08, -8.74228e-08, 1, 0, 3, 0)
mesh = ExtResource("4_hgu5g")
skeleton = NodePath("../..")
[node name="GunkBody" parent="Bounds/Ceiling" instance=ExtResource("2_on3c1")]
initial_mask = ExtResource("3_7lojt")
[node name="StaticBody3D" type="StaticBody3D" parent="Bounds/Ceiling" groups=["PlasticMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/Ceiling/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/Ceiling/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_d1yty")
[node name="Gunkable" parent="Bounds/Ceiling/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_si4vj")]
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("3_7lojt")
source_gunk_material = ExtResource("4_knpho")
[node name="SimpleWalls" type="StaticBody3D" parent="Bounds"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
collision_layer = 5
@ -257,27 +272,39 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4.5)
[node name="LeftWall" type="MeshInstance3D" parent="Bounds/FarWall"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -3, 1.5, 0)
mesh = ExtResource("13_wvsd4")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Bounds/FarWall/LeftWall" instance=ExtResource("2_on3c1")]
mask_dim = 64
source_gunk_material = ExtResource("14_asais")
[node name="StaticBody3D" type="StaticBody3D" parent="Bounds/FarWall/LeftWall" groups=["PlasticMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/FarWall/LeftWall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/FarWall/LeftWall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Bounds/FarWall/LeftWall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_si4vj")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("14_asais")
[node name="RightWall" type="MeshInstance3D" parent="Bounds/FarWall"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 3, 1.5, 0)
mesh = ExtResource("13_wvsd4")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Bounds/FarWall/RightWall" instance=ExtResource("2_on3c1")]
mask_dim = 64
source_gunk_material = ExtResource("14_asais")
[node name="StaticBody3D" type="StaticBody3D" parent="Bounds/FarWall/RightWall" groups=["PlasticMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/FarWall/RightWall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bounds/FarWall/RightWall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Bounds/FarWall/RightWall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_si4vj")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("14_asais")
[node name="Props" type="Node3D" parent="."]
[node name="EmptySuitChamber" parent="Props" instance=ExtResource("15_e4f0d")]
@ -368,31 +395,43 @@ collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/TarpCrateLogo/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_isly2")
[node name="CrateLong" type="MeshInstance3D" parent="Props"]
[node name="CrateLong" type="RigidBody3D" parent="Props"]
transform = Transform3D(0.866025, 0, 0.5, 0, 1, 0, -0.5, 0, 0.866025, 3.33603, 0.25, 3.53907)
collision_layer = 67
collision_mask = 73
mass = 200.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/CrateLong"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
mesh = ExtResource("22_ug240")
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_2ybo5")
[node name="StaticBody3D" type="StaticBody3D" parent="Props/CrateLong"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/CrateLong"]
shape = SubResource("BoxShape3D_si4vj")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/CrateLong/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_1ckgi")
[node name="Holdable" type="Node" parent="Props/CrateLong"]
script = ExtResource("28_knpho")
hold_distance = 2.0
metadata/_custom_type_script = "uid://040xta01xqxd"
[node name="CrateLong2" type="MeshInstance3D" parent="Props"]
[node name="CrateLong2" type="RigidBody3D" parent="Props"]
transform = Transform3D(0.612372, 0.612373, 0.5, -0.707107, 0.707106, 1.98952e-13, -0.353553, -0.353553, 0.866025, 3.71304, 0.441942, 2.81688)
collision_layer = 67
collision_mask = 73
mass = 200.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/CrateLong2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
mesh = ExtResource("22_ug240")
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_2ybo5")
[node name="StaticBody3D" type="StaticBody3D" parent="Props/CrateLong2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/CrateLong2"]
shape = SubResource("BoxShape3D_si4vj")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/CrateLong2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_1ckgi")
[node name="Holdable" type="Node" parent="Props/CrateLong2"]
script = ExtResource("28_knpho")
hold_distance = 2.0
metadata/_custom_type_script = "uid://040xta01xqxd"
[node name="GrunkNodule" parent="." instance=ExtResource("27_4jxmw")]
transform = Transform3D(1, 0, 0, 0, 0.866026, -0.5, 0, 0.5, 0.866026, -2.05, 0.15, -4.5)

View File

@ -1,12 +1,9 @@
[gd_scene load_steps=47 format=4 uid="uid://ddmgqfhiv3aag"]
[gd_scene load_steps=35 format=4 uid="uid://ddmgqfhiv3aag"]
[ext_resource type="ArrayMesh" uid="uid://cqd0a7ousx01n" path="res://assets/level/hallway/hallway_1.mesh" id="1_ckpmb"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_a8b6q"]
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/crate_long.tscn" id="3_8umoc"]
[ext_resource type="Texture2D" uid="uid://cd0w8eqpount3" path="res://assets/props/crate_long/crate_long_C.png" id="4_s4vba"]
[ext_resource type="Texture2D" uid="uid://da5p04vbiy3xe" path="res://assets/props/crate_long/crate_long_M.png" id="5_n7a6q"]
[ext_resource type="Texture2D" uid="uid://bsovubygl3go2" path="res://assets/props/crate_long/crate_long_N.png" id="6_hwbyh"]
[ext_resource type="Texture2D" uid="uid://b1m1my5q2vlwi" path="res://assets/props/crate_long/crate_long_R.png" id="7_bt0ip"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="3_s4vba"]
[ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="4_vc8nj"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="5_hwbyh"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="8_t14hf"]
[ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="9_vwa0l"]
[ext_resource type="Material" uid="uid://dmolqtdktqdsl" path="res://levels/ghost_ship/guide_sign/airlock_sign.material" id="10_5qwf5"]
@ -23,114 +20,9 @@
[ext_resource type="ArrayMesh" uid="uid://cojfnrek4kgbb" path="res://assets/props/guide_sign/guide_sign.obj" id="21_mh2f3"]
[ext_resource type="Material" uid="uid://b8xdnogrfefvf" path="res://levels/ghost_ship/guide_sign/mess_hall_sign.material" id="22_d4b87"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ruwlj"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_bt0ip"]
data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ckpmb"]
resource_local_to_scene = true
albedo_texture = ExtResource("4_s4vba")
metallic = 1.0
metallic_texture = ExtResource("5_n7a6q")
roughness_texture = ExtResource("7_bt0ip")
normal_enabled = true
normal_texture = ExtResource("6_hwbyh")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_2ybo5"]
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"format": 34896613377,
"index_count": 84,
"index_data": PackedByteArray("CgAGAAIAAgAEAAoABAAGAAoACwAEAAIADAAGAAQABAAIAAwACwAIAAQADAAIAAYAAgABAAsAAQAIAAsADQABAAIAAgAGAA0ABwABAA0ADQAGAAcACQABAAcACQAIAAEABwAGAA4ACQAHAAUABQAHAA4ABQAIAAkABgAIAA8AAwAIAAUADgAGAAAAAAAGAA8ADgAAAAUADwAIAAAABQAAAAMAAAAIAAMA"),
"lods": [0.108952, PackedByteArray("AgAGAAcABAAGAAIAAgABAAQABwABAAIABAAIAAYAAQAIAAQACQABAAcACQAIAAEACQAHAAUABQAIAAkABwAGAAAABwAAAAUABgAIAAAAAwAIAAUAAAAIAAMABQAAAAMA"), 0.261829, PackedByteArray("AAABAAIAAgABAAQAAQAAAAUABAADAAIAAQADAAQAAgADAAAABQADAAEABQAAAAMA"), 0.524037, PackedByteArray("AAABAAIAAgABAAMAAQAAAAMAAgADAAAA")],
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 16,
"vertex_data": PackedByteArray("AAAyM///AADc3f//AAAAAP//zMz//wAAAAAyMwAAAAD//zIzAAAAAAAAzMwAAAAA3N0AAP//AAAhIv////8AACEiAAAAAAAAISL//wAAAAD//zIz//8AAP//zMwAAAAA3N0AAAAAAADc3f////8AAAAAzMz//wAAISIAAP//AAA=")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_a8b6q"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
"format": 34896613399,
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_ckpmb"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_2ybo5")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8umoc"]
resource_local_to_scene = true
albedo_texture = ExtResource("4_s4vba")
metallic = 1.0
metallic_texture = ExtResource("5_n7a6q")
roughness_texture = ExtResource("7_bt0ip")
normal_enabled = true
normal_texture = ExtResource("6_hwbyh")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_s4vba"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
"format": 34896613399,
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_8umoc"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_2ybo5")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_n7a6q"]
resource_local_to_scene = true
albedo_texture = ExtResource("4_s4vba")
metallic = 1.0
metallic_texture = ExtResource("5_n7a6q")
roughness_texture = ExtResource("7_bt0ip")
normal_enabled = true
normal_texture = ExtResource("6_hwbyh")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_hwbyh"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
"format": 34896613399,
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_n7a6q"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_2ybo5")
[sub_resource type="Curve" id="Curve_w3xaq"]
_limits = [0.0, 0.4, 0.0, 1.0]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.3, 0.4), 0.0, 0.0, 0, 0, Vector2(0.7, 0.4), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
@ -206,50 +98,8 @@ data = PackedVector3Array(-1, 0, 0.2, -1, -0.4, 0, -1, 0, -0.2, -1, 0, -0.2, -1,
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_if0c2"]
data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bt0ip"]
resource_local_to_scene = true
albedo_texture = ExtResource("4_s4vba")
metallic = 1.0
metallic_texture = ExtResource("5_n7a6q")
roughness_texture = ExtResource("7_bt0ip")
normal_enabled = true
normal_texture = ExtResource("6_hwbyh")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_lny00"]
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"format": 34896613377,
"index_count": 84,
"index_data": PackedByteArray("CgAGAAIAAgAEAAoABAAGAAoACwAEAAIADAAGAAQABAAIAAwACwAIAAQADAAIAAYAAgABAAsAAQAIAAsADQABAAIAAgAGAA0ABwABAA0ADQAGAAcACQABAAcACQAIAAEABwAGAA4ACQAHAAUABQAHAA4ABQAIAAkABgAIAA8AAwAIAAUADgAGAAAAAAAGAA8ADgAAAAUADwAIAAAABQAAAAMAAAAIAAMA"),
"lods": [0.108952, PackedByteArray("AgAGAAcABAAGAAIAAgABAAQABwABAAIABAAIAAYAAQAIAAQACQABAAcACQAIAAEACQAHAAUABQAIAAkABwAGAAAABwAAAAUABgAIAAAAAwAIAAUAAAAIAAMABQAAAAMA"), 0.261829, PackedByteArray("AAABAAIAAgABAAQAAQAAAAUABAADAAIAAQADAAQAAgADAAAABQADAAEABQAAAAMA"), 0.524037, PackedByteArray("AAABAAIAAgABAAMAAQAAAAMAAgADAAAA")],
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 16,
"vertex_data": PackedByteArray("AAAyM///AADc3f//AAAAAP//zMz//wAAAAAyMwAAAAD//zIzAAAAAAAAzMwAAAAA3N0AAP//AAAhIv////8AACEiAAAAAAAAISL//wAAAAD//zIz//8AAP//zMwAAAAA3N0AAAAAAADc3f////8AAAAAzMz//wAAISIAAP//AAA=")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_t14hf"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
"format": 34896613399,
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_bt0ip"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_lny00")
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ruwlj"]
data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6)
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_17ivy"]
data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5)
@ -261,27 +111,28 @@ data = PackedVector3Array(-0.7, 0, 0.14, -0.7, -0.28, 0, -0.7, 0, -0.14, -0.7, 0
[node name="Hallway1" type="MeshInstance3D" parent="."]
mesh = ExtResource("1_ckpmb")
skeleton = NodePath("Hallway1")
skeleton = NodePath("")
[node name="Hallway1" parent="Hallway1" groups=["MetalMaterial"] instance=ExtResource("2_a8b6q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway1"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/Hallway1"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_bt0ip")
[node name="CrateLong" parent="Hallway1" instance=ExtResource("3_8umoc")]
[node name="Gunkable" parent="Hallway1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("5_hwbyh")
[node name="PhysCrateLong" parent="Hallway1" instance=ExtResource("4_vc8nj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.25, -5.9)
mesh = SubResource("ArrayMesh_a8b6q")
skeleton = NodePath("../Hallway1")
[node name="CrateLong3" parent="Hallway1" instance=ExtResource("3_8umoc")]
[node name="PhysCrateLong2" parent="Hallway1" instance=ExtResource("4_vc8nj")]
transform = Transform3D(0.258819, -0.965926, 0, 0.965926, 0.258819, 0, 0, 0, 1, 1.2, 0.426927, -3.9)
mesh = SubResource("ArrayMesh_s4vba")
skeleton = NodePath("../Hallway1")
[node name="CrateLong2" parent="Hallway1" instance=ExtResource("3_8umoc")]
[node name="PhysCrateLong3" parent="Hallway1" instance=ExtResource("4_vc8nj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.75, -5.9)
mesh = SubResource("ArrayMesh_hwbyh")
skeleton = NodePath("../Hallway1")
[node name="FloatingDust" parent="Hallway1" instance=ExtResource("8_t14hf")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
@ -296,35 +147,54 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 3,
gi_mode = 2
mesh = SubResource("ArrayMesh_anoak")
[node name="GunkBody" parent="Hallway1/AirlockSign" instance=ExtResource("2_a8b6q")]
mask_dim = 32
source_gunk_material = ExtResource("11_i2ry3")
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway1/AirlockSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/AirlockSign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/AirlockSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ojd88")
[node name="Gunkable" parent="Hallway1/AirlockSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("11_i2ry3")
[node name="T-Junction1" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, -7.5)
mesh = ExtResource("12_3ls22")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="T-Junction1" groups=["MetalMaterial"] instance=ExtResource("2_a8b6q")]
mask_dim = 192
source_gunk_material = ExtResource("13_qaol8")
[node name="StaticBody3D" type="StaticBody3D" parent="T-Junction1"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction1/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction1/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="Gunkable" parent="T-Junction1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("13_qaol8")
[node name="Hallway2" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -7.5, 0, -7.5)
mesh = ExtResource("1_ckpmb")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Hallway2" groups=["MetalMaterial"] instance=ExtResource("2_a8b6q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("5_hwbyh")
[node name="GrunkNodule" parent="Hallway2" instance=ExtResource("14_bfrms")]
transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, -1.35, 0, -1.15)
chitter = true
@ -365,13 +235,20 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.8, -11.4)
[node name="Hallway3" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -19.5, 0, -7.5)
mesh = ExtResource("17_qhrg0")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Hallway3" groups=["MetalMaterial"] instance=ExtResource("2_a8b6q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway3"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway3/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway3/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("5_hwbyh")
[node name="FloatingDust" parent="Hallway3" instance=ExtResource("8_t14hf")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -380,45 +257,62 @@ process_material = SubResource("ParticleProcessMaterial_6giaa")
[node name="OverheadLight" parent="Hallway3" instance=ExtResource("9_vwa0l")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5)
[node name="CrateLong" parent="Hallway3" instance=ExtResource("3_8umoc")]
[node name="PhysCrateLong" parent="Hallway3" instance=ExtResource("4_vc8nj")]
transform = Transform3D(-4.37114e-08, -0.965926, 0.258819, 1.77636e-15, 0.258819, 0.965926, -1, 4.2222e-08, -1.13133e-08, 1.06072, 0.789149, 6.6)
mesh = SubResource("ArrayMesh_t14hf")
skeleton = NodePath("../..")
[node name="T-Junction2" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -27, 0, -7.5)
mesh = ExtResource("18_xuoub")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="T-Junction2" groups=["MetalMaterial"] instance=ExtResource("2_a8b6q")]
mask_dim = 192
source_gunk_material = ExtResource("13_qaol8")
[node name="StaticBody3D" type="StaticBody3D" parent="T-Junction2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="Gunkable" parent="T-Junction2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("13_qaol8")
[node name="EndCap" type="MeshInstance3D" parent="."]
transform = Transform3D(2.98023e-08, 1, 0, 4.37114e-08, -1.3027e-15, -1, -1, 2.98023e-08, -4.37114e-08, -28.5, 1.5, -7.5)
mesh = ExtResource("19_unrww")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="EndCap" instance=ExtResource("2_a8b6q")]
mask_dim = 64
source_gunk_material = ExtResource("13_qaol8")
[node name="StaticBody3D" type="StaticBody3D" parent="EndCap"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="EndCap/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="EndCap/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_17ivy")
[node name="Gunkable" parent="EndCap/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("13_qaol8")
[node name="Hallway4" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -27, 0, -15)
mesh = ExtResource("20_kkj02")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Hallway4" groups=["MetalMaterial"] instance=ExtResource("2_a8b6q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway4"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway4/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway4/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway4/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("5_hwbyh")
[node name="FloatingDust" parent="Hallway4" instance=ExtResource("8_t14hf")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -433,13 +327,19 @@ gi_mode = 2
mesh = ExtResource("21_mh2f3")
surface_material_override/0 = ExtResource("22_d4b87")
[node name="GunkBody" parent="Hallway4/MessHallSign" instance=ExtResource("2_a8b6q")]
mask_dim = 32
source_gunk_material = ExtResource("11_i2ry3")
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway4/MessHallSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway4/MessHallSign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway4/MessHallSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_mgo71")
[node name="Gunkable" parent="Hallway4/MessHallSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("3_s4vba")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("11_i2ry3")
[node name="GrunkNodule" parent="Hallway4" instance=ExtResource("14_bfrms")]
transform = Transform3D(0.71748, 0.469891, -0.514223, -0.00738759, 0.743303, 0.668914, 0.69654, -0.476134, 0.536776, -0.299999, 0, 4.8)

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=46 format=4 uid="uid://6mggsi84ok1n"]
[gd_scene load_steps=38 format=4 uid="uid://6mggsi84ok1n"]
[ext_resource type="ArrayMesh" uid="uid://c4klxlj1oop7t" path="res://assets/level/hallway/hallway_4.mesh" id="1_ka7sa"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_arxka"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_osdhu"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="3_osdhu"]
[ext_resource type="PackedScene" uid="uid://rykf34p8n8x6" path="res://src/props/overhead_light/burnout_light.tscn" id="4_6qtqj"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="4_650i1"]
[ext_resource type="Material" uid="uid://b8xdnogrfefvf" path="res://levels/ghost_ship/guide_sign/mess_hall_sign.material" id="5_650i1"]
[ext_resource type="Texture2D" uid="uid://duvfb656uahuu" path="res://assets/level/guide_signs/guide_sign_mess_hall_C.png" id="6_o070x"]
[ext_resource type="Texture2D" uid="uid://dm50ac5enanm6" path="res://assets/level/guide_signs/guide_sign_mess_hall_E.png" id="7_bmovs"]
@ -17,11 +18,7 @@
[ext_resource type="Material" uid="uid://dt73a25l7h8if" path="res://levels/ghost_ship/guide_sign/crew_quarters_sign.material" id="15_ygcwo"]
[ext_resource type="ArrayMesh" uid="uid://b3f5p4o7qr1mf" path="res://assets/level/t-junction/t-junction_2.mesh" id="16_0fxnd"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="17_wqkax"]
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/crate_long.tscn" id="18_ew4hm"]
[ext_resource type="Texture2D" uid="uid://cd0w8eqpount3" path="res://assets/props/crate_long/crate_long_C.png" id="19_0xbp3"]
[ext_resource type="Texture2D" uid="uid://da5p04vbiy3xe" path="res://assets/props/crate_long/crate_long_M.png" id="20_wp8cq"]
[ext_resource type="Texture2D" uid="uid://bsovubygl3go2" path="res://assets/props/crate_long/crate_long_N.png" id="21_opjmq"]
[ext_resource type="Texture2D" uid="uid://b1m1my5q2vlwi" path="res://assets/props/crate_long/crate_long_R.png" id="22_sor6x"]
[ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="19_j48oc"]
[ext_resource type="ArrayMesh" uid="uid://d0sdsir1hqnbu" path="res://assets/level/wall/wall_4.mesh" id="23_7ox1u"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ruwlj"]
@ -148,81 +145,6 @@ data = PackedVector3Array(-0.7, 0, 0.14, -0.7, -0.28, 0, -0.7, 0, -0.14, -0.7, 0
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_if0c2"]
data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w13dd"]
resource_local_to_scene = true
albedo_texture = ExtResource("19_0xbp3")
metallic = 1.0
metallic_texture = ExtResource("20_wp8cq")
roughness_texture = ExtResource("22_sor6x")
normal_enabled = true
normal_texture = ExtResource("21_opjmq")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_f0xh4"]
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"format": 34896613377,
"index_count": 84,
"index_data": PackedByteArray("CgAGAAIAAgAEAAoABAAGAAoACwAEAAIADAAGAAQABAAIAAwACwAIAAQADAAIAAYAAgABAAsAAQAIAAsADQABAAIAAgAGAA0ABwABAA0ADQAGAAcACQABAAcACQAIAAEABwAGAA4ACQAHAAUABQAHAA4ABQAIAAkABgAIAA8AAwAIAAUADgAGAAAAAAAGAA8ADgAAAAUADwAIAAAABQAAAAMAAAAIAAMA"),
"lods": [0.108952, PackedByteArray("AgAGAAcABAAGAAIAAgABAAQABwABAAIABAAIAAYAAQAIAAQACQABAAcACQAIAAEACQAHAAUABQAIAAkABwAGAAAABwAAAAUABgAIAAAAAwAIAAUAAAAIAAMABQAAAAMA"), 0.261829, PackedByteArray("AAABAAIAAgABAAQAAQAAAAUABAADAAIAAQADAAQAAgADAAAABQADAAEABQAAAAMA"), 0.524037, PackedByteArray("AAABAAIAAgABAAMAAQAAAAMAAgADAAAA")],
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 16,
"vertex_data": PackedByteArray("AAAyM///AADc3f//AAAAAP//zMz//wAAAAAyMwAAAAD//zIzAAAAAAAAzMwAAAAA3N0AAP//AAAhIv////8AACEiAAAAAAAAISL//wAAAAD//zIz//8AAP//zMwAAAAA3N0AAAAAAADc3f////8AAAAAzMz//wAAISIAAP//AAA=")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_2ft6k"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
"format": 34896613399,
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_w13dd"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_f0xh4")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fkhf3"]
resource_local_to_scene = true
albedo_texture = ExtResource("19_0xbp3")
metallic = 1.0
metallic_texture = ExtResource("20_wp8cq")
roughness_texture = ExtResource("22_sor6x")
normal_enabled = true
normal_texture = ExtResource("21_opjmq")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_7ctwk"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
"format": 34896613399,
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_fkhf3"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 48,
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_f0xh4")
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_17ivy"]
data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5)
@ -231,13 +153,20 @@ data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5,
[node name="Hallway1" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, -4.5)
mesh = ExtResource("1_ka7sa")
skeleton = NodePath("Hallway1")
skeleton = NodePath("")
[node name="Hallway1" parent="Hallway1" groups=["MetalMaterial"] instance=ExtResource("2_arxka")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway1"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/Hallway1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_osdhu")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("4_650i1")
[node name="FloatingDust" parent="Hallway1" instance=ExtResource("3_osdhu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -252,26 +181,39 @@ gi_mode = 2
mesh = SubResource("ArrayMesh_w13dd")
surface_material_override/0 = SubResource("StandardMaterial3D_lhj8x")
[node name="GunkBody" parent="Hallway1/MessHallSign" instance=ExtResource("2_arxka")]
mask_dim = 32
source_gunk_material = ExtResource("11_iefrw")
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway1/MessHallSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/MessHallSign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway1/MessHallSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_2ft6k")
[node name="Gunkable" parent="Hallway1/MessHallSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_osdhu")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("11_iefrw")
[node name="TarpCrate" parent="Hallway1" instance=ExtResource("12_vtfca")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0.8, -0.33)
[node name="Hallway2" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 7.5, 0, -12)
mesh = ExtResource("13_q6b8v")
skeleton = NodePath("Hallway1")
skeleton = NodePath("")
[node name="Hallway1" parent="Hallway2" groups=["MetalMaterial"] instance=ExtResource("2_arxka")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/Hallway1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_osdhu")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("4_650i1")
[node name="FloatingDust" parent="Hallway2" instance=ExtResource("3_osdhu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -285,41 +227,57 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -4.5)
gi_mode = 2
mesh = SubResource("ArrayMesh_f0psm")
[node name="GunkBody" parent="Hallway2/CrewQuartersSign" instance=ExtResource("2_arxka")]
mask_dim = 32
source_gunk_material = ExtResource("11_iefrw")
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway2/CrewQuartersSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/CrewQuartersSign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/CrewQuartersSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_7ctwk")
[node name="Gunkable" parent="Hallway2/CrewQuartersSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_osdhu")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("11_iefrw")
[node name="T-Junction1" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -12)
mesh = ExtResource("16_0fxnd")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="T-Junction1" groups=["MetalMaterial"] instance=ExtResource("2_arxka")]
mask_dim = 192
source_gunk_material = ExtResource("17_wqkax")
[node name="StaticBody3D" type="StaticBody3D" parent="T-Junction1"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction1/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction1/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="CrateLong" parent="T-Junction1" instance=ExtResource("18_ew4hm")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.6, 0.25, 1)
mesh = SubResource("ArrayMesh_2ft6k")
[node name="Gunkable" parent="T-Junction1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_osdhu")]
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("17_wqkax")
[node name="CrateLong2" parent="T-Junction1" instance=ExtResource("18_ew4hm")]
[node name="PhysCrateLong" parent="T-Junction1" instance=ExtResource("19_j48oc")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.6, 0.25, 1)
[node name="PhysCrateLong2" parent="T-Junction1" instance=ExtResource("19_j48oc")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.599998, 0.75, 1)
mesh = SubResource("ArrayMesh_7ctwk")
[node name="EndCap" type="MeshInstance3D" parent="."]
transform = Transform3D(2.98023e-08, 1, 0, 4.37114e-08, -1.3027e-15, -1, -1, 2.98023e-08, -4.37114e-08, -1.5, 1.5, -12)
mesh = ExtResource("23_7ox1u")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="EndCap" instance=ExtResource("2_arxka")]
mask_dim = 64
source_gunk_material = ExtResource("17_wqkax")
[node name="StaticBody3D" type="StaticBody3D" parent="EndCap"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="EndCap/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="EndCap/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_17ivy")
[node name="Gunkable" parent="EndCap/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_osdhu")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("17_wqkax")

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=43 format=4 uid="uid://cnqvb6q8tyxmd"]
[gd_scene load_steps=44 format=4 uid="uid://cnqvb6q8tyxmd"]
[ext_resource type="ArrayMesh" uid="uid://cqd0a7ousx01n" path="res://assets/level/hallway/hallway_1.mesh" id="1_ediv7"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_02oi7"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_rvc24"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="3_rvc24"]
[ext_resource type="PackedScene" uid="uid://rykf34p8n8x6" path="res://src/props/overhead_light/burnout_light.tscn" id="4_8y1ya"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="4_yqi6h"]
[ext_resource type="Material" uid="uid://dt73a25l7h8if" path="res://levels/ghost_ship/guide_sign/crew_quarters_sign.material" id="5_yqi6h"]
[ext_resource type="Material" uid="uid://dutkfm4ek0ysh" path="res://assets/materials/gunk_bright.material" id="6_8pwhd"]
[ext_resource type="Material" uid="uid://lp1osos3aqdl" path="res://levels/ghost_ship/guide_sign/ops_sign.material" id="7_h1n2n"]
@ -215,13 +216,19 @@ data = PackedVector3Array(-0.7, 0, 0.14, -0.7, -0.28, 0, -0.7, 0, -0.14, -0.7, 0
[node name="Hallway" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4.5, 0, 0)
mesh = ExtResource("1_ediv7")
skeleton = NodePath("Hallway1")
[node name="Hallway1" parent="Hallway" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway/Hallway1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("4_yqi6h")
[node name="FloatingDust" parent="Hallway" instance=ExtResource("3_rvc24")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -235,23 +242,35 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5)
gi_mode = 2
mesh = SubResource("ArrayMesh_v4tkv")
[node name="GunkBody" parent="Hallway/CrewQuartersSign" instance=ExtResource("2_02oi7")]
mask_dim = 32
source_gunk_material = ExtResource("6_8pwhd")
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway/CrewQuartersSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway/CrewQuartersSign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway/CrewQuartersSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_dxmep")
[node name="Gunkable" parent="Hallway/CrewQuartersSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_8pwhd")
[node name="Hallway2" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 12, 0, -7.5)
mesh = ExtResource("1_ediv7")
skeleton = NodePath("Hallway1")
[node name="Hallway1" parent="Hallway2" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/Hallway1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("4_yqi6h")
[node name="FloatingDust" parent="Hallway2" instance=ExtResource("3_rvc24")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -265,35 +284,52 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5)
gi_mode = 2
mesh = SubResource("ArrayMesh_v0ki8")
[node name="GunkBody" parent="Hallway2/OpsSign" instance=ExtResource("2_02oi7")]
mask_dim = 32
source_gunk_material = ExtResource("6_8pwhd")
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway2/OpsSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/OpsSign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway2/OpsSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_0ij5m")
[node name="Gunkable" parent="Hallway2/OpsSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_8pwhd")
[node name="T-Junction1" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 12, 0, 0)
mesh = ExtResource("8_1goqq")
skeleton = NodePath("GunkBody")
[node name="GunkBody" parent="T-Junction1" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 192
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="T-Junction1"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction1/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction1/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="Gunkable" parent="T-Junction1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Hallway3" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 12, 0, 7.5)
mesh = ExtResource("1_ediv7")
skeleton = NodePath("Hallway1")
[node name="Hallway1" parent="Hallway3" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway3"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway3/Hallway1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway3/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("4_yqi6h")
[node name="FloatingDust" parent="Hallway3" instance=ExtResource("3_rvc24")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -305,25 +341,36 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.31134e-07, 3, -1.5)
[node name="T-Junction2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, -2.13163e-14, 0, 1, 0, 2.13163e-14, 0, 1, 12, 0, 15)
mesh = ExtResource("11_s3mtr")
skeleton = NodePath("GunkBody")
[node name="GunkBody" parent="T-Junction2" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 192
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="T-Junction2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="Gunkable" parent="T-Junction2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Hallway4" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 12, 0, 25.5)
mesh = ExtResource("1_ediv7")
skeleton = NodePath("Hallway1")
[node name="Hallway1" parent="Hallway4" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
[node name="StaticBody3D" type="StaticBody3D" parent="Hallway4"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway4/Hallway1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Hallway4/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ruwlj")
[node name="Gunkable" parent="Hallway4/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("4_yqi6h")
[node name="FloatingDust" parent="Hallway4" instance=ExtResource("3_rvc24")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -335,337 +382,337 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.31134e-07, 3, -1.5)
[node name="T-Junction3" type="MeshInstance3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 12, 0, 18)
mesh = ExtResource("11_s3mtr")
skeleton = NodePath("GunkBody")
[node name="GunkBody" parent="T-Junction3" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 192
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="T-Junction3"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction3/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="T-Junction3/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="Gunkable" parent="T-Junction3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="ShortHallway" type="Node3D" parent="."]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 12, 0, 33)
[node name="Floor" type="MeshInstance3D" parent="ShortHallway"]
mesh = ExtResource("12_i8gqp")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway/Floor" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway/Floor"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Floor/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Floor/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_kp5n7")
[node name="Gunkable" parent="ShortHallway/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Ceiling" type="MeshInstance3D" parent="ShortHallway"]
transform = Transform3D(1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, 3, 0)
mesh = ExtResource("13_ieqou")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway/Ceiling" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway/Ceiling"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Ceiling/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Ceiling/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -1.67038e-22, 0, -1.67038e-22, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_u2hqf")
[node name="Gunkable" parent="ShortHallway/Ceiling/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall" type="MeshInstance3D" parent="ShortHallway"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0, 1.5, 1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway/Wall" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway/Wall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Wall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Wall/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -7.51669e-22, 0, -7.51669e-22, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_6nvhk")
[node name="Gunkable" parent="ShortHallway/Wall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall2" type="MeshInstance3D" parent="ShortHallway"]
transform = Transform3D(1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, 0, 1.5, -1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway/Wall2" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway/Wall2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Wall2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway/Wall2/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -2.08797e-21, 0, -2.08798e-21, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_ncghj")
[node name="Gunkable" parent="ShortHallway/Wall2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="ShortHallway2" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 18)
[node name="Floor" type="MeshInstance3D" parent="ShortHallway2"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
mesh = ExtResource("12_i8gqp")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway2/Floor" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway2/Floor"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Floor/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Floor/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_kp5n7")
[node name="Gunkable" parent="ShortHallway2/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Ceiling" type="MeshInstance3D" parent="ShortHallway2"]
transform = Transform3D(1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, 3, 0)
mesh = ExtResource("13_ieqou")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway2/Ceiling" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway2/Ceiling"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Ceiling/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Ceiling/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_u2hqf")
[node name="Gunkable" parent="ShortHallway2/Ceiling/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall" type="MeshInstance3D" parent="ShortHallway2"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0, 1.5, 1.5)
mesh = ExtResource("15_l3gxc")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway2/Wall" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway2/Wall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Wall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Wall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_6nvhk")
[node name="Gunkable" parent="ShortHallway2/Wall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall2" type="MeshInstance3D" parent="ShortHallway2"]
transform = Transform3D(1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, 0, 1.5, -1.5)
mesh = ExtResource("15_l3gxc")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway2/Wall2" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway2/Wall2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Wall2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway2/Wall2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ncghj")
[node name="Gunkable" parent="ShortHallway2/Wall2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="ShortHallway3" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 18)
[node name="Floor" type="MeshInstance3D" parent="ShortHallway3"]
mesh = ExtResource("12_i8gqp")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway3/Floor" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway3/Floor"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Floor/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Floor/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_kp5n7")
[node name="Gunkable" parent="ShortHallway3/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Ceiling" type="MeshInstance3D" parent="ShortHallway3"]
transform = Transform3D(1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, 3, 0)
mesh = ExtResource("13_ieqou")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway3/Ceiling" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway3/Ceiling"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Ceiling/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Ceiling/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_u2hqf")
[node name="Gunkable" parent="ShortHallway3/Ceiling/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall" type="MeshInstance3D" parent="ShortHallway3"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0, 1.5, 1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway3/Wall" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway3/Wall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Wall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Wall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_6nvhk")
[node name="Gunkable" parent="ShortHallway3/Wall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall2" type="MeshInstance3D" parent="ShortHallway3"]
transform = Transform3D(1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, 0, 1.5, -1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway3/Wall2" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway3/Wall2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Wall2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/Wall2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ncghj")
[node name="Gunkable" parent="ShortHallway3/Wall2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="MedbaySign" type="MeshInstance3D" parent="ShortHallway3"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 3, 0)
gi_mode = 2
mesh = SubResource("ArrayMesh_dspic")
[node name="GunkBody" parent="ShortHallway3/MedbaySign" instance=ExtResource("2_02oi7")]
mask_dim = 32
source_gunk_material = ExtResource("6_8pwhd")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway3/MedbaySign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/MedbaySign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway3/MedbaySign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_wqqoq")
[node name="ShortHallway4" type="Node3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -9, 0, 15)
[node name="Floor" type="MeshInstance3D" parent="ShortHallway4"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
mesh = ExtResource("12_i8gqp")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway4/Floor" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway4/Floor/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_kp5n7")
[node name="Ceiling" type="MeshInstance3D" parent="ShortHallway4"]
transform = Transform3D(1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, 3, 0)
mesh = ExtResource("13_ieqou")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway4/Ceiling" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway4/Ceiling/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_u2hqf")
[node name="Wall" type="MeshInstance3D" parent="ShortHallway4"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0, 1.5, 1.5)
mesh = ExtResource("15_l3gxc")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway4/Wall" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway4/Wall/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_6nvhk")
[node name="Wall2" type="MeshInstance3D" parent="ShortHallway4"]
transform = Transform3D(1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, 0, 1.5, -1.5)
mesh = ExtResource("15_l3gxc")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway4/Wall2" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway4/Wall2/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_ncghj")
[node name="ShortHallway5" type="Node3D" parent="."]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -6, 0, 15)
[node name="Floor" type="MeshInstance3D" parent="ShortHallway5"]
mesh = ExtResource("12_i8gqp")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway5/Floor" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway5/Floor/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_kp5n7")
[node name="Ceiling" type="MeshInstance3D" parent="ShortHallway5"]
transform = Transform3D(1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, 3, 0)
mesh = ExtResource("13_ieqou")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway5/Ceiling" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway5/Ceiling/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_u2hqf")
[node name="Wall" type="MeshInstance3D" parent="ShortHallway5"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0, 1.5, 1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway5/Wall" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway5/Wall/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_6nvhk")
[node name="Wall2" type="MeshInstance3D" parent="ShortHallway5"]
transform = Transform3D(1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, 0, 1.5, -1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway5/Wall2" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway5/Wall2/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_ncghj")
[node name="Gunkable" parent="ShortHallway3/MedbaySign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_8pwhd")
[node name="ShortHallway6" type="Node3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 15, 0, 15)
[node name="Floor" type="MeshInstance3D" parent="ShortHallway6"]
mesh = ExtResource("12_i8gqp")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway6/Floor" groups=["MetalMaterial"] instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway6/Floor"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Floor/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Floor/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_kp5n7")
[node name="Gunkable" parent="ShortHallway6/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Ceiling" type="MeshInstance3D" parent="ShortHallway6"]
transform = Transform3D(1, 0, 0, 0, -1, -8.74228e-08, 0, 8.74228e-08, -1, 0, 3, 0)
mesh = ExtResource("13_ieqou")
skeleton = NodePath("../..")
skeleton = NodePath("../../..")
[node name="GunkBody" parent="ShortHallway6/Ceiling" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway6/Ceiling"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Ceiling/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Ceiling/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_u2hqf")
[node name="Gunkable" parent="ShortHallway6/Ceiling/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall" type="MeshInstance3D" parent="ShortHallway6"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, 0, 1.5, 1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway6/Wall" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway6/Wall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Wall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Wall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_6nvhk")
[node name="Gunkable" parent="ShortHallway6/Wall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="Wall2" type="MeshInstance3D" parent="ShortHallway6"]
transform = Transform3D(1, 1.74846e-07, -7.64274e-15, 0, -4.37114e-08, -1, -1.74846e-07, 1, -4.37114e-08, 0, 1.5, -1.5)
mesh = ExtResource("14_x3ljk")
skeleton = NodePath("../..")
[node name="GunkBody" parent="ShortHallway6/Wall2" instance=ExtResource("2_02oi7")]
mask_dim = 64
source_gunk_material = ExtResource("9_57qp5")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway6/Wall2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Wall2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/Wall2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ncghj")
[node name="Gunkable" parent="ShortHallway6/Wall2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("9_57qp5")
[node name="CargoBaySign" type="MeshInstance3D" parent="ShortHallway6"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 3, 0)
gi_mode = 2
mesh = SubResource("ArrayMesh_rigxx")
[node name="GunkBody" parent="ShortHallway6/CargoBaySign" instance=ExtResource("2_02oi7")]
mask_dim = 32
source_gunk_material = ExtResource("6_8pwhd")
[node name="StaticBody3D" type="StaticBody3D" parent="ShortHallway6/CargoBaySign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/CargoBaySign/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ShortHallway6/CargoBaySign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_np3w4")
[node name="Gunkable" parent="ShortHallway6/CargoBaySign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_rvc24")]
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_8pwhd")

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=40 format=3 uid="uid://s1ab8rt2blyd"]
[gd_scene load_steps=41 format=3 uid="uid://s1ab8rt2blyd"]
[ext_resource type="ArrayMesh" uid="uid://c785n3j3aq4sf" path="res://assets/level/wall/wall_1.mesh" id="1_ind8m"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_s3h7q"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="2_vyxvc"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="3_6lrbi"]
[ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="4_pmhe8"]
[ext_resource type="ArrayMesh" uid="uid://bumwpsm42csme" path="res://assets/level/ceiling/ceiling_9x9.mesh" id="5_vyxvc"]
[ext_resource type="PackedScene" uid="uid://ca7b5gjl3ri0p" path="res://src/props/cafe_table/cafe_table.tscn" id="6_1ls0l"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="6_jshbi"]
[ext_resource type="PackedScene" uid="uid://c8pkhw0b47xdd" path="res://src/props/cupboard/cupboard.tscn" id="7_jshbi"]
[ext_resource type="PackedScene" uid="uid://dtus42gmb1kqq" path="res://src/props/vending_machine/vending_machine.tscn" id="8_g7nyg"]
[ext_resource type="Texture2D" uid="uid://d2xq0uvxh2ojk" path="res://assets/props/vending_machine/vending_machine_C.png" id="9_6xy1x"]
@ -13,8 +14,8 @@
[ext_resource type="Texture2D" uid="uid://dkilg200w8x4y" path="res://assets/props/vending_machine/vending_machine_M.png" id="11_ps4r1"]
[ext_resource type="Texture2D" uid="uid://8v7jta2qdvut" path="res://assets/props/vending_machine/vending_machine_N.png" id="12_iie7g"]
[ext_resource type="Texture2D" uid="uid://gbvtbiurxrop" path="res://assets/props/vending_machine/vending_machine_R.png" id="13_nvfj8"]
[ext_resource type="PackedScene" uid="uid://cklppdtyaadlo" path="res://src/props/trash_can/trash_can.tscn" id="14_3wo07"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="15_87puh"]
[ext_resource type="PackedScene" uid="uid://p86qtslgpe1i" path="res://src/props/trash_can/phys_trash_can.tscn" id="15_pmhe8"]
[ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="16_s0n7p"]
[ext_resource type="Texture2D" uid="uid://wqqwtmtmp147" path="res://assets/level/overhead_light_maskC.png" id="17_6lrbi"]
[ext_resource type="PackedScene" uid="uid://dgqx1h4dtkwma" path="res://src/world/mechanics/trigger/gunk_trigger.tscn" id="17_311lj"]
@ -114,225 +115,353 @@ size = Vector2(1, 0.5)
[node name="Wall" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-1, 8.74228e-08, -3.82137e-15, 0, -4.37114e-08, -1, -8.74228e-08, -1, 4.37114e-08, 3, 1.5, 9.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall" groups=["MetalMaterial"] instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall2" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-4.37114e-08, -1, 4.37114e-08, 0, -4.37114e-08, -1, 1, -4.37114e-08, 1.91069e-15, 4.5, 1.5, 8)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall2" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall2/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -8.35189e-23, 0, -8.35188e-23, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall4" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-4.37114e-08, -1, 4.37114e-08, 0, -4.37114e-08, -1, 1, -4.37114e-08, 1.91069e-15, 4.5, 1.5, 5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall4" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall4"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall4/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall4/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -8.35189e-23, 0, -8.35188e-23, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall4/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall8" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(1, -1.06581e-14, 4.02341e-21, 0, -4.37114e-08, -1, 1.06581e-14, 1, -4.37114e-08, 3, 1.5, 0.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall8" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall8"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall8/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall8/StaticBody3D"]
transform = Transform3D(1, 0, -1.00974e-28, 0, 1, 0, 0, 0, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall8/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall9" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(1, -1.06581e-14, 4.02341e-21, 0, -4.37114e-08, -1, 1.06581e-14, 1, -4.37114e-08, 0, 1.5, 0.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall9" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall9"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall9/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall9/StaticBody3D"]
transform = Transform3D(1, 0, -1.00974e-28, 0, 1, 0, 0, 0, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall9/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall10" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(1, -1.06581e-14, 4.02341e-21, 0, -4.37114e-08, -1, 1.06581e-14, 1, -4.37114e-08, -3, 1.5, 0.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall10" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall10"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall10/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall10/StaticBody3D"]
transform = Transform3D(1, 0, -1.00974e-28, 0, 1, 0, 0, 0, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall10/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall11" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(1, -1.06581e-14, 4.02341e-21, 0, -4.37114e-08, -1, 1.06581e-14, 1, -4.37114e-08, -6, 1.5, 0.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall11" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall11"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall11/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall11/StaticBody3D"]
transform = Transform3D(1, 0, -1.00974e-28, 0, 1, 0, 0, 0, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall11/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall13" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(1, -1.06581e-14, 4.02341e-21, 0, -4.37114e-08, -1, 1.06581e-14, 1, -4.37114e-08, -12, 1.5, 0.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall13" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall13"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall13/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall13/StaticBody3D"]
transform = Transform3D(1, 0, -1.00974e-28, 0, 1, 0, 0, 0, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall13/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall17" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-4.37114e-08, 1, -4.37114e-08, 0, -4.37114e-08, -1, -1, -4.37114e-08, 1.91068e-15, -13.5, 1.5, 2)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall17" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall17"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall17/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall17/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -8.35185e-23, 0, -8.35188e-23, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall17/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall18" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-4.37114e-08, 1, -4.37114e-08, 0, -4.37114e-08, -1, -1, -4.37114e-08, 1.91068e-15, -13.5, 1.5, 5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall18" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall18"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall18/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall18/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -8.35185e-23, 0, -8.35188e-23, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall18/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall19" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-4.37114e-08, 1, -4.37114e-08, 0, -4.37114e-08, -1, -1, -4.37114e-08, 1.91068e-15, -13.5, 1.5, 8)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall19" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall19"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall19/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall19/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, -8.35185e-23, 0, -8.35188e-23, 1, 0, 0, 0)
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall19/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall20" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, -12, 1.5, 9.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall20" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall20"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall20/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall20/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall20/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall21" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, -9, 1.5, 9.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall21" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall21"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall21/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall21/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall21/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall22" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, -6, 1.5, 9.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall22" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall22"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall22/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall22/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall22/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Wall23" type="MeshInstance3D" parent="Walls"]
transform = Transform3D(-1, -8.74228e-08, 3.82137e-15, 0, -4.37114e-08, -1, 8.74228e-08, -1, 4.37114e-08, -3, 1.5, 9.5)
mesh = ExtResource("1_ind8m")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Walls/Wall23" instance=ExtResource("2_s3h7q")]
mask_dim = 64
source_gunk_material = ExtResource("3_6lrbi")
[node name="StaticBody3D" type="StaticBody3D" parent="Walls/Wall23"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall23/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Wall23/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="Gunkable" parent="Walls/Wall23/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("3_6lrbi")
[node name="Floors" type="Node3D" parent="."]
[node name="Floor" type="MeshInstance3D" parent="Floors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5)
mesh = ExtResource("4_pmhe8")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Floors/Floor" groups=["MetalMaterial"] instance=ExtResource("2_s3h7q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Floors/Floor"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floors/Floor/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floors/Floor/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_yvipw")
[node name="Gunkable" parent="Floors/Floor/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_jshbi")
[node name="Floor3" type="MeshInstance3D" parent="Floors"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, 5)
mesh = ExtResource("4_pmhe8")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Floors/Floor3" groups=["MetalMaterial"] instance=ExtResource("2_s3h7q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Floors/Floor3"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floors/Floor3/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floors/Floor3/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_yvipw")
[node name="Gunkable" parent="Floors/Floor3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_jshbi")
[node name="Ceilings" type="Node3D" parent="."]
[node name="Ceiling" type="MeshInstance3D" parent="Ceilings"]
transform = Transform3D(-1, -7.64274e-15, 8.74228e-08, 0, -1, -8.74228e-08, 8.74228e-08, -8.74228e-08, 1, 0, 3, 5)
mesh = ExtResource("5_vyxvc")
[node name="GunkBody" parent="Ceilings/Ceiling" instance=ExtResource("2_s3h7q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Ceilings/Ceiling"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ceilings/Ceiling/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ceilings/Ceiling/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_d1yty")
[node name="Gunkable" parent="Ceilings/Ceiling/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_jshbi")
[node name="Ceiling3" type="MeshInstance3D" parent="Ceilings"]
transform = Transform3D(-1, -7.64274e-15, 8.74228e-08, 0, -1, -8.74228e-08, 8.74228e-08, -8.74228e-08, 1, -9, 3, 5)
mesh = ExtResource("5_vyxvc")
[node name="GunkBody" parent="Ceilings/Ceiling3" instance=ExtResource("2_s3h7q")]
[node name="StaticBody3D" type="StaticBody3D" parent="Ceilings/Ceiling3"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ceilings/Ceiling3/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ceilings/Ceiling3/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_d1yty")
[node name="Gunkable" parent="Ceilings/Ceiling3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("2_vyxvc")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_jshbi")
[node name="Props" type="Node3D" parent="."]
[node name="CafeTable" parent="Props" instance=ExtResource("6_1ls0l")]
@ -372,7 +501,7 @@ transform = Transform3D(5.54197e-08, -0.906308, -0.422618, 1.18848e-07, 0.422618
skeleton = NodePath("")
surface_material_override/0 = SubResource("StandardMaterial3D_mdsoq")
[node name="Trashcan" parent="Props" instance=ExtResource("14_3wo07")]
[node name="PhysTrashCan" parent="Props" instance=ExtResource("15_pmhe8")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.9, 0.5, 9)
[node name="FloatingDust" parent="." instance=ExtResource("15_87puh")]

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
extends Level
## Game mechanic testing level
@onready var gunk_hall: GunkBody = %GunkHallBody
@onready var gunk_hall_component: Gunkable = %Gunkable
@onready var bulkhead: Node3D = $Bulkhead
@onready var open_switch: Node3D = %OpenSwitch
@ -16,7 +16,7 @@ extends Level
func reset() -> void:
print("Resetting level!")
gunk_hall.mask_control.clear(Color.BLACK)
gunk_hall_component.mask_control.clear(Color.BLACK)
Callable(bulkhead, "close").call()
Callable(open_switch, "enable").call()
Callable(close_switch, "disable").call()

View File

@ -1,13 +1,14 @@
[gd_scene load_steps=31 format=4 uid="uid://b8rv6dg4tgaeb"]
[gd_scene load_steps=32 format=4 uid="uid://b8rv6dg4tgaeb"]
[ext_resource type="Script" uid="uid://bvua1l2hb3an6" path="res://levels/mechanic_test/mechanic_test.gd" id="1_iyuyb"]
[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="2_qjnj2"]
[ext_resource type="PackedScene" uid="uid://b6eg8t04rkh0c" path="res://src/props/wall_switch/wall_switch.tscn" id="3_awnx0"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="4_cgmn0"]
[ext_resource type="Texture2D" uid="uid://8cm835h4gxwe" path="res://assets/debug_mask.png" id="5_aix42"]
[ext_resource type="Shader" uid="uid://ckxc0ngd37rtk" path="res://src/shaders/gunk.gdshader" id="6_6frcc"]
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="7_7cbja"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="8_awnx0"]
[ext_resource type="PackedScene" uid="uid://cubwniraol1qn" path="res://src/props/bulkhead/bulkhead.tscn" id="8_ujrcv"]
[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="9_cgmn0"]
[ext_resource type="PackedScene" uid="uid://b5jubpjj3d277" path="res://levels/mechanic_test/signal_test.tscn" id="9_ix0jw"]
[ext_resource type="PackedScene" uid="uid://cfqirm2o3uo4k" path="res://levels/mechanic_test/prop_test.tscn" id="10_xrfi2"]
[ext_resource type="PackedScene" uid="uid://dbabcsp38wmid" path="res://levels/mechanic_test/item_test.tscn" id="11_8natv"]
@ -84,6 +85,9 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_0j1ke")
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qjnj2"]
data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6)
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_rp2qp"]
load_path = "res://.godot/imported/debug_mask.png-fd2bc783338ed9439fe81a4eef9d86da.s3tc.ctex"
@ -103,7 +107,7 @@ seamless = true
seamless_blend_skirt = 0.5
noise = ExtResource("7_7cbja")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_iyuyb"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_aix42"]
resource_local_to_scene = true
render_priority = 0
shader = ExtResource("6_6frcc")
@ -128,9 +132,6 @@ shader_parameter/vertex_inflation = 0.0
shader_parameter/inflation_pixellation = 10.0
shader_parameter/overlay_emission_scale = 1.0
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qjnj2"]
data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6)
[node name="MechanicTest" type="Node3D"]
script = ExtResource("1_iyuyb")
id = "mechanic_test"
@ -235,16 +236,24 @@ text = "Trigger"
[node name="GunkHall" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, -31)
mesh = SubResource("ArrayMesh_x2vho")
skeleton = NodePath("GunkHallBody")
skeleton = NodePath("")
[node name="GunkHallBody" parent="GunkHall" instance=ExtResource("4_cgmn0")]
unique_name_in_owner = true
initial_mask = ExtResource("5_aix42")
source_gunk_material = SubResource("ShaderMaterial_iyuyb")
[node name="StaticBody3D" type="StaticBody3D" parent="GunkHall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkHall/GunkHallBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkHall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_qjnj2")
[node name="Gunkable" type="Node" parent="GunkHall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("8_awnx0")]
unique_name_in_owner = true
script = ExtResource("9_cgmn0")
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_aix42")
source_gunk_material = SubResource("ShaderMaterial_aix42")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="Bulkhead" parent="." instance=ExtResource("8_ujrcv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.5, 0, -2)

View File

@ -1,8 +1,9 @@
[gd_scene load_steps=13 format=4 uid="uid://cfqirm2o3uo4k"]
[gd_scene load_steps=14 format=4 uid="uid://cfqirm2o3uo4k"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="1_cr8wn"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="1_7477u"]
[ext_resource type="Texture2D" uid="uid://8cm835h4gxwe" path="res://assets/debug_mask.png" id="2_7477u"]
[ext_resource type="Shader" uid="uid://ckxc0ngd37rtk" path="res://src/shaders/gunk.gdshader" id="2_lrgpr"]
[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="2_nfype"]
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="3_7477u"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_awnx0"]
@ -39,6 +40,9 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_cgmn0")
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_x2vho"]
data = PackedVector3Array(-1, 1, 0.1, -1, -0.8, 0.1, -1, 1, -0.1, -1, 1, -0.1, -1, -0.8, 0.1, -1, -0.8, -0.1, -1, -1, 0.1, -1, -0.8, -0.1, -1, -0.8, 0.1, -1, -1, -2.3, -1, -0.8, -0.1, -1, -1, 0.1, -1, -0.8, -2.3, -1, -0.8, -0.1, -1, -1, -2.3, -1, -0.8, -2.1, -1, -0.8, -0.1, -1, -0.8, -2.3, -1, -0.8, -2.1, -1, -0.8, -2.3, -1, 1, -2.1, -1, 1, -2.1, -1, -0.8, -2.3, -1, 1, -2.3, -1, 1, -0.1, -1, -0.8, -0.1, 1, 1, -0.1, 1, 1, -0.1, -1, -0.8, -0.1, 1, -0.8, -0.1, 1, 1, -0.1, 1, -0.8, -0.1, 1, 1, 0.1, 1, 1, 0.1, 1, -0.8, -0.1, 1, -0.8, 0.1, 1, -0.8, -0.1, 1, -1, 0.1, 1, -0.8, 0.1, 1, -0.8, -2.1, 1, -1, 0.1, 1, -0.8, -0.1, 1, -0.8, -2.3, 1, -1, 0.1, 1, -0.8, -2.1, 1, -1, -2.3, 1, -1, 0.1, 1, -0.8, -2.3, 1, -0.8, -2.3, 1, -0.8, -2.1, 1, 1, -2.3, 1, 1, -2.3, 1, -0.8, -2.1, 1, 1, -2.1, 1, 1, 0.1, 1, -0.8, 0.1, -1, 1, 0.1, -1, 1, 0.1, 1, -0.8, 0.1, -1, -0.8, 0.1, 1, -0.8, 0.1, 1, -1, 0.1, -1, -0.8, 0.1, -1, -0.8, 0.1, 1, -1, 0.1, -1, -1, 0.1, -1, -1, -2.3, -1, -1, 0.1, 1, -1, -2.3, 1, -1, -2.3, -1, -1, 0.1, 1, -1, 0.1, -1, 1, -0.1, 1, 1, -0.1, -1, 1, 0.1, -1, 1, 0.1, 1, 1, -0.1, 1, 1, 0.1, 1, -0.8, -0.1, -1, -0.8, -0.1, 1, -0.8, -2.1, 1, -0.8, -2.1, -1, -0.8, -0.1, -1, -0.8, -2.1, -1, -0.8, -2.3, -1, -1, -2.3, 1, -0.8, -2.3, 1, -0.8, -2.3, -1, -1, -2.3, 1, -1, -2.3, -1, -0.8, -2.3, 1, -0.8, -2.3, -1, 1, -2.3, -1, 1, -2.3, 1, -0.8, -2.3, 1, 1, -2.3, 1, 1, -2.1, -1, 1, -2.1, 1, 1, -2.3, 1, 1, -2.3, -1, 1, -2.1, -1, 1, -2.3, 1, -0.8, -2.1, -1, -0.8, -2.1, 1, 1, -2.1, 1, 1, -2.1, -1, -0.8, -2.1, -1, 1, -2.1)
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_x2vho"]
load_path = "res://.godot/imported/debug_mask.png-fd2bc783338ed9439fe81a4eef9d86da.s3tc.ctex"
@ -58,7 +62,7 @@ seamless = true
seamless_blend_skirt = 0.5
noise = ExtResource("3_7477u")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lrgpr"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_j1dki"]
resource_local_to_scene = true
render_priority = 0
shader = ExtResource("2_lrgpr")
@ -83,20 +87,25 @@ shader_parameter/vertex_inflation = 0.0
shader_parameter/inflation_pixellation = 10.0
shader_parameter/overlay_emission_scale = 1.0
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_x2vho"]
data = PackedVector3Array(-1, 1, 0.1, -1, -0.8, 0.1, -1, 1, -0.1, -1, 1, -0.1, -1, -0.8, 0.1, -1, -0.8, -0.1, -1, -1, 0.1, -1, -0.8, -0.1, -1, -0.8, 0.1, -1, -1, -2.3, -1, -0.8, -0.1, -1, -1, 0.1, -1, -0.8, -2.3, -1, -0.8, -0.1, -1, -1, -2.3, -1, -0.8, -2.1, -1, -0.8, -0.1, -1, -0.8, -2.3, -1, -0.8, -2.1, -1, -0.8, -2.3, -1, 1, -2.1, -1, 1, -2.1, -1, -0.8, -2.3, -1, 1, -2.3, -1, 1, -0.1, -1, -0.8, -0.1, 1, 1, -0.1, 1, 1, -0.1, -1, -0.8, -0.1, 1, -0.8, -0.1, 1, 1, -0.1, 1, -0.8, -0.1, 1, 1, 0.1, 1, 1, 0.1, 1, -0.8, -0.1, 1, -0.8, 0.1, 1, -0.8, -0.1, 1, -1, 0.1, 1, -0.8, 0.1, 1, -0.8, -2.1, 1, -1, 0.1, 1, -0.8, -0.1, 1, -0.8, -2.3, 1, -1, 0.1, 1, -0.8, -2.1, 1, -1, -2.3, 1, -1, 0.1, 1, -0.8, -2.3, 1, -0.8, -2.3, 1, -0.8, -2.1, 1, 1, -2.3, 1, 1, -2.3, 1, -0.8, -2.1, 1, 1, -2.1, 1, 1, 0.1, 1, -0.8, 0.1, -1, 1, 0.1, -1, 1, 0.1, 1, -0.8, 0.1, -1, -0.8, 0.1, 1, -0.8, 0.1, 1, -1, 0.1, -1, -0.8, 0.1, -1, -0.8, 0.1, 1, -1, 0.1, -1, -1, 0.1, -1, -1, -2.3, -1, -1, 0.1, 1, -1, -2.3, 1, -1, -2.3, -1, -1, 0.1, 1, -1, 0.1, -1, 1, -0.1, 1, 1, -0.1, -1, 1, 0.1, -1, 1, 0.1, 1, 1, -0.1, 1, 1, 0.1, 1, -0.8, -0.1, -1, -0.8, -0.1, 1, -0.8, -2.1, 1, -0.8, -2.1, -1, -0.8, -0.1, -1, -0.8, -2.1, -1, -0.8, -2.3, -1, -1, -2.3, 1, -0.8, -2.3, 1, -0.8, -2.3, -1, -1, -2.3, 1, -1, -2.3, -1, -0.8, -2.3, 1, -0.8, -2.3, -1, 1, -2.3, -1, 1, -2.3, 1, -0.8, -2.3, 1, 1, -2.3, 1, 1, -2.1, -1, 1, -2.1, 1, 1, -2.3, 1, 1, -2.3, -1, 1, -2.1, -1, 1, -2.3, 1, -0.8, -2.1, -1, -0.8, -2.1, 1, 1, -2.1, 1, 1, -2.1, -1, -0.8, -2.1, -1, 1, -2.1)
[node name="PropTest" type="Node3D"]
[node name="Parallel" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0, 1, 1.5)
mesh = SubResource("ArrayMesh_aix42")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="Parallel" instance=ExtResource("1_cr8wn")]
mask_dim = 128
initial_mask = ExtResource("2_7477u")
source_gunk_material = SubResource("ShaderMaterial_lrgpr")
[node name="StaticBody3D" type="StaticBody3D" parent="Parallel"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Parallel/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Parallel/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_x2vho")
[node name="Gunkable" type="Node" parent="Parallel/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("1_7477u")]
script = ExtResource("2_nfype")
mask_dim = 128
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("2_7477u")
source_gunk_material = SubResource("ShaderMaterial_j1dki")
metadata/_custom_type_script = "uid://co0g2klfmor48"

View File

@ -1,10 +1,10 @@
[gd_scene load_steps=28 format=3 uid="uid://b5jubpjj3d277"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="1_3u410"]
[ext_resource type="Shader" uid="uid://ckxc0ngd37rtk" path="res://src/shaders/gunk.gdshader" id="2_tfbib"]
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="3_e8utx"]
[ext_resource type="Texture2D" uid="uid://m2qxenym1otw" path="res://assets/level/wall/wall_2_C.png" id="4_r07l4"]
[ext_resource type="Texture2D" uid="uid://begn6qloo0m1q" path="res://assets/level/wall/wall_2_M.png" id="5_67o2j"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="5_r07l4"]
[ext_resource type="Texture2D" uid="uid://cpdrvdu3qt62t" path="res://assets/level/wall/wall_2_N.png" id="6_4yjoq"]
[ext_resource type="Texture2D" uid="uid://ba5vvrx730go8" path="res://assets/level/wall/wall_2_R.png" id="7_c27im"]
[ext_resource type="PackedScene" uid="uid://dgqx1h4dtkwma" path="res://src/world/mechanics/trigger/gunk_trigger.tscn" id="8_gx82l"]
@ -55,6 +55,9 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_ix0jw")
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_x2vho"]
data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5)
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_f342o"]
load_path = "res://.godot/imported/debug_mask.png-fd2bc783338ed9439fe81a4eef9d86da.s3tc.ctex"
@ -86,6 +89,7 @@ shader_parameter/time_pixellation = 30.0
shader_parameter/roughness = 0.15
shader_parameter/specular_contribution = 0.8
shader_parameter/emission_strength = 0.02
shader_parameter/normal_scale = 1.0
shader_parameter/uv_scale = Vector2(4, 4)
shader_parameter/time_scale = 0.2
shader_parameter/edge_bleed = 0.25
@ -98,9 +102,6 @@ shader_parameter/vertex_inflation = 0.0
shader_parameter/inflation_pixellation = 10.0
shader_parameter/overlay_emission_scale = 1.0
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_x2vho"]
data = PackedVector3Array(1.5, 0, 1.5, -1.5, 0, 1.5, 1.5, 0, -1.5, 1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 0, -1.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3u410"]
resource_local_to_scene = true
cull_mode = 2
@ -155,6 +156,7 @@ shader_parameter/time_pixellation = 30.0
shader_parameter/roughness = 0.15
shader_parameter/specular_contribution = 0.8
shader_parameter/emission_strength = 0.02
shader_parameter/normal_scale = 1.0
shader_parameter/uv_scale = Vector2(4, 4)
shader_parameter/time_scale = 0.2
shader_parameter/edge_bleed = 0.25
@ -210,6 +212,7 @@ shader_parameter/time_pixellation = 30.0
shader_parameter/roughness = 0.15
shader_parameter/specular_contribution = 0.8
shader_parameter/emission_strength = 0.02
shader_parameter/normal_scale = 1.0
shader_parameter/uv_scale = Vector2(4, 4)
shader_parameter/time_scale = 0.2
shader_parameter/edge_bleed = 0.25
@ -227,15 +230,21 @@ shader_parameter/overlay_emission_scale = 1.0
[node name="TriggerNetWall" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.5, 0)
mesh = SubResource("ArrayMesh_xrfi2")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="TriggerNetWall" instance=ExtResource("1_3u410")]
mask_dim = 64
source_gunk_material = SubResource("ShaderMaterial_e8utx")
[node name="StaticBody3D" type="StaticBody3D" parent="TriggerNetWall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="TriggerNetWall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="TriggerNetWall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_x2vho")
[node name="Gunkable" parent="TriggerNetWall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_r07l4")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = SubResource("ShaderMaterial_e8utx")
[node name="Puzzle" type="Node3D" parent="TriggerNetWall"]
[node name="GunkTrigger" parent="TriggerNetWall/Puzzle" instance=ExtResource("8_gx82l")]
@ -262,15 +271,21 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9, 0, -0.25)
[node name="PulseNetWall" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 3.5, 1.5, 0)
mesh = SubResource("ArrayMesh_e8utx")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="PulseNetWall" instance=ExtResource("1_3u410")]
mask_dim = 64
source_gunk_material = SubResource("ShaderMaterial_r07l4")
[node name="StaticBody3D" type="StaticBody3D" parent="PulseNetWall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="PulseNetWall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="PulseNetWall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_x2vho")
[node name="Gunkable" parent="PulseNetWall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_r07l4")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = SubResource("ShaderMaterial_r07l4")
[node name="Puzzle" type="Node3D" parent="PulseNetWall"]
[node name="GunkHeart" parent="PulseNetWall/Puzzle" instance=ExtResource("11_tfbib")]
@ -301,13 +316,19 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4.37114e-08, -1)
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 7, 1.5, 0)
mesh = SubResource("ArrayMesh_67o2j")
[node name="GunkBody" parent="ListenerWall" instance=ExtResource("1_3u410")]
mask_dim = 64
source_gunk_material = SubResource("ShaderMaterial_67o2j")
[node name="StaticBody3D" type="StaticBody3D" parent="ListenerWall"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="ListenerWall/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="ListenerWall/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_x2vho")
[node name="Gunkable" parent="ListenerWall/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("5_r07l4")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = SubResource("ShaderMaterial_67o2j")
[node name="Puzzle" type="Node3D" parent="ListenerWall"]
[node name="Listener" parent="ListenerWall/Puzzle" instance=ExtResource("12_e8utx")]

View File

@ -1,13 +1,15 @@
[gd_scene load_steps=61 format=4 uid="uid://tvirbm0kgvp8"]
[gd_scene load_steps=63 format=4 uid="uid://tvirbm0kgvp8"]
[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="1_fgk6j"]
[ext_resource type="PackedScene" uid="uid://ehf5sg3ahvbf" path="res://src/world/grunk_beast/grunk_beast.tscn" id="2_1lom2"]
[ext_resource type="ArrayMesh" uid="uid://cqd0a7ousx01n" path="res://assets/level/hallway/hallway_1.mesh" id="3_gyhlh"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="4_jj0u7"]
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/crate_long.tscn" id="5_18csx"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="4_hv7qb"]
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/static_crate_long.tscn" id="5_18csx"]
[ext_resource type="Texture2D" uid="uid://clofvb76pv6g" path="res://assets/red.png" id="5_jj0u7"]
[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="5_wxmii"]
[ext_resource type="Texture2D" uid="uid://cd0w8eqpount3" path="res://assets/props/crate_long/crate_long_C.png" id="6_e2fuu"]
[ext_resource type="Texture2D" uid="uid://da5p04vbiy3xe" path="res://assets/props/crate_long/crate_long_M.png" id="7_hv7qb"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="7_nsdlh"]
[ext_resource type="Texture2D" uid="uid://bsovubygl3go2" path="res://assets/props/crate_long/crate_long_N.png" id="8_wxmii"]
[ext_resource type="Texture2D" uid="uid://b1m1my5q2vlwi" path="res://assets/props/crate_long/crate_long_R.png" id="9_nsdlh"]
[ext_resource type="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="10_br5h1"]
@ -58,7 +60,7 @@ data = PackedVector3Array(25, 0, 25, -25, 0, 25, 25, 0, -25, -25, 0, 25, -25, 0,
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_u8j4k"]
data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_18csx"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_br5h1"]
resource_local_to_scene = true
albedo_texture = ExtResource("6_e2fuu")
metallic = 1.0
@ -84,7 +86,7 @@ _surfaces = [{
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_e2fuu"]
[sub_resource type="ArrayMesh" id="ArrayMesh_qluxd"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
@ -93,7 +95,7 @@ _surfaces = [{
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_18csx"),
"material": SubResource("StandardMaterial3D_br5h1"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
@ -103,7 +105,7 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_isly2")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hv7qb"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h6xp0"]
resource_local_to_scene = true
albedo_texture = ExtResource("6_e2fuu")
metallic = 1.0
@ -114,7 +116,7 @@ normal_texture = ExtResource("8_wxmii")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_wxmii"]
[sub_resource type="ArrayMesh" id="ArrayMesh_irt7r"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
@ -123,7 +125,7 @@ _surfaces = [{
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_hv7qb"),
"material": SubResource("StandardMaterial3D_h6xp0"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
@ -133,7 +135,7 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_isly2")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nsdlh"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_olej6"]
resource_local_to_scene = true
albedo_texture = ExtResource("6_e2fuu")
metallic = 1.0
@ -144,7 +146,7 @@ normal_texture = ExtResource("8_wxmii")
ao_enabled = true
texture_filter = 2
[sub_resource type="ArrayMesh" id="ArrayMesh_br5h1"]
[sub_resource type="ArrayMesh" id="ArrayMesh_tmnt4"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
@ -153,7 +155,7 @@ _surfaces = [{
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_nsdlh"),
"material": SubResource("StandardMaterial3D_olej6"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
@ -238,7 +240,7 @@ data = PackedVector3Array(-1, 0, 0.2, -1, -0.4, 0, -1, 0, -0.2, -1, 0, -0.2, -1,
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_o1heh"]
data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qluxd"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x0tbd"]
resource_local_to_scene = true
albedo_texture = ExtResource("6_e2fuu")
metallic = 1.0
@ -264,7 +266,7 @@ _surfaces = [{
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_h6xp0"]
[sub_resource type="ArrayMesh" id="ArrayMesh_iwy8m"]
resource_local_to_scene = true
_surfaces = [{
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
@ -273,7 +275,7 @@ _surfaces = [{
"index_count": 84,
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
"material": SubResource("StandardMaterial3D_qluxd"),
"material": SubResource("StandardMaterial3D_x0tbd"),
"name": "Cube",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
@ -356,28 +358,37 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10.5)
[node name="Hallway1" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
mesh = ExtResource("3_gyhlh")
skeleton = NodePath("Hallway1")
skeleton = NodePath("")
[node name="Hallway1" parent="NavigationRegion3D/Corridor1/Hallway1" groups=["MetalMaterial"] instance=ExtResource("4_jj0u7")]
initial_mask = ExtResource("5_jj0u7")
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/Hallway1"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/Hallway1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_u8j4k")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("7_nsdlh")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.25, -5.9)
mesh = SubResource("ArrayMesh_e2fuu")
skeleton = NodePath("../Hallway1")
mesh = SubResource("ArrayMesh_qluxd")
skeleton = NodePath("")
[node name="CrateLong3" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
transform = Transform3D(0.258819, -0.965926, 0, 0.965926, 0.258819, 0, 0, 0, 1, 1.2, 0.426927, -3.9)
mesh = SubResource("ArrayMesh_wxmii")
skeleton = NodePath("../Hallway1")
mesh = SubResource("ArrayMesh_irt7r")
skeleton = NodePath("")
[node name="CrateLong2" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.75, -5.9)
mesh = SubResource("ArrayMesh_br5h1")
skeleton = NodePath("../Hallway1")
mesh = SubResource("ArrayMesh_tmnt4")
skeleton = NodePath("")
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("10_br5h1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
@ -395,38 +406,63 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5)
mesh = SubResource("ArrayMesh_5p5u5")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign" instance=ExtResource("4_jj0u7")]
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_ejg8u")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("14_olej6")
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_ejg8u")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="T-Junction1" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, -7.5)
mesh = ExtResource("15_tmnt4")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/T-Junction1" groups=["MetalMaterial"] instance=ExtResource("4_jj0u7")]
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/T-Junction1"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction1/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_o1heh")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/T-Junction1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("16_x0tbd")
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction1/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_o1heh")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="Hallway2" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -7.5, 0, -7.5)
mesh = ExtResource("3_gyhlh")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/Hallway2" groups=["MetalMaterial"] instance=ExtResource("4_jj0u7")]
initial_mask = ExtResource("5_jj0u7")
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/Hallway2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway2/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_u8j4k")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("7_nsdlh")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="GrunkNodule" parent="NavigationRegion3D/Corridor1/Hallway2" instance=ExtResource("17_iwy8m")]
transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, -1.35, 0, -1.15)
chitter = true
@ -468,14 +504,23 @@ skeleton = NodePath("")
[node name="Hallway3" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -19.5, 0, -7.5)
mesh = ExtResource("20_pfbho")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/Hallway3" groups=["MetalMaterial"] instance=ExtResource("4_jj0u7")]
initial_mask = ExtResource("5_jj0u7")
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/Hallway3"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway3/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway3/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_u8j4k")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("7_nsdlh")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("10_br5h1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -486,21 +531,29 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5)
[node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("5_18csx")]
transform = Transform3D(-4.37114e-08, -0.965926, 0.258819, 1.77636e-15, 0.258819, 0.965926, -1, 4.2222e-08, -1.13133e-08, 1.06072, 0.789149, 6.6)
mesh = SubResource("ArrayMesh_h6xp0")
mesh = SubResource("ArrayMesh_iwy8m")
skeleton = NodePath("../..")
[node name="T-Junction2" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -27, 0, -7.5)
mesh = ExtResource("21_e5vs1")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/T-Junction2" groups=["MetalMaterial"] instance=ExtResource("4_jj0u7")]
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/T-Junction2"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction2/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_o1heh")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/T-Junction2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("16_x0tbd")
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction2/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_o1heh")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="MessHallMeetSpookSpawner" type="Marker3D" parent="NavigationRegion3D/Corridor1/T-Junction2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
@ -512,27 +565,44 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.90735e-06, 0, 21)
[node name="EndCap" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
transform = Transform3D(2.98023e-08, 1, 0, 4.37114e-08, -1.3027e-15, -1, -1, 2.98023e-08, -4.37114e-08, -28.5, 1.5, -7.5)
mesh = ExtResource("23_7rrnb")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/EndCap" instance=ExtResource("4_jj0u7")]
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/EndCap"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/EndCap/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_tx4qh")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/EndCap/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("16_x0tbd")
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/EndCap/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_tx4qh")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="Hallway4" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -27, 0, -15)
mesh = ExtResource("24_x0es6")
skeleton = NodePath("GunkBody")
skeleton = NodePath("")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/Hallway4" groups=["MetalMaterial"] instance=ExtResource("4_jj0u7")]
initial_mask = ExtResource("5_jj0u7")
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/Hallway4"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_u8j4k")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway4/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("7_nsdlh")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway4" instance=ExtResource("10_br5h1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
visibility_aabb = AABB(-1.5, -1.5, -6, 3, 3, 12)
@ -548,13 +618,21 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 3,
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 4.5)
mesh = SubResource("ArrayMesh_ahtx8")
[node name="GunkBody" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign" instance=ExtResource("4_jj0u7")]
[node name="StaticBody3D" type="StaticBody3D" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_spe8j")
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
script = ExtResource("5_wxmii")
mask_dim = 32
body = NodePath("..")
mesh_instance = NodePath("../..")
initial_mask = ExtResource("5_jj0u7")
source_gunk_material = ExtResource("14_olej6")
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign/GunkBody"]
shape = SubResource("ConcavePolygonShape3D_spe8j")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="LurkPoint" type="Marker3D" parent="NavigationRegion3D/Corridor1" groups=["LurkPoint"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 4.5)

View File

@ -0,0 +1,170 @@
[gd_scene load_steps=17 format=3 uid="uid://c7us4smgk3487"]
[ext_resource type="Script" uid="uid://68r4ht5ut1ct" path="res://src/game/level.gd" id="1_252gx"]
[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="1_sumi4"]
[ext_resource type="ArrayMesh" uid="uid://dpr5cgq743f4s" path="res://assets/level/floor/floor_9x9.mesh" id="2_jjage"]
[ext_resource type="Script" uid="uid://040xta01xqxd" path="res://src/props/physics/holdable.gd" id="4_252gx"]
[ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="5_35l2h"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_hda7d"]
[sub_resource type="Sky" id="Sky_pka60"]
sky_material = SubResource("ProceduralSkyMaterial_hda7d")
[sub_resource type="Environment" id="Environment_nl4kk"]
background_mode = 2
sky = SubResource("Sky_pka60")
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_6j7vt"]
[sub_resource type="BoxMesh" id="BoxMesh_252gx"]
[sub_resource type="BoxShape3D" id="BoxShape3D_35l2h"]
[sub_resource type="BoxMesh" id="BoxMesh_35l2h"]
size = Vector3(2, 2, 2)
[sub_resource type="BoxShape3D" id="BoxShape3D_sc5il"]
size = Vector3(2, 2, 2)
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_35l2h"]
bounce = 0.5
[sub_resource type="SphereMesh" id="SphereMesh_sc5il"]
radius = 0.15
height = 0.3
[sub_resource type="SphereShape3D" id="SphereShape3D_hyy3g"]
radius = 0.15
[node name="PhysicsTest" type="Node3D"]
script = ExtResource("1_252gx")
id = "physics_test"
pretty_name = "Physics Testing Sandbox"
[node name="Player" parent="." instance=ExtResource("1_sumi4")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.866025, -0.156955, -0.474726, 0.5, 0.271854, 0.82225, 0, -0.949453, 0.31391, 0, 0, 0)
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_nl4kk")
[node name="WorldFloor" type="StaticBody3D" parent="." groups=["PlasticMaterial"]]
collision_layer = 5
[node name="MeshInstance3D" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="WorldFloor"]
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D5" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 0)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D6" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, 0)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D7" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D8" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 0, 0)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D9" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D10" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27, 0, 0)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D11" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 36, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D12" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 36, 0, 0)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D13" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D14" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 0, 0)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D15" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 54, 0, -9)
mesh = ExtResource("2_jjage")
[node name="MeshInstance3D16" type="MeshInstance3D" parent="WorldFloor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 54, 0, 0)
mesh = ExtResource("2_jjage")
[node name="CollisionShape3D" type="CollisionShape3D" parent="WorldFloor"]
visible = false
shape = SubResource("WorldBoundaryShape3D_6j7vt")
[node name="MedBox" type="RigidBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 1.2, -6)
collision_layer = 7
collision_mask = 9
mass = 50.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="MedBox"]
mesh = SubResource("BoxMesh_252gx")
[node name="CollisionShape3D" type="CollisionShape3D" parent="MedBox"]
shape = SubResource("BoxShape3D_35l2h")
[node name="Holdable" type="Node" parent="MedBox"]
script = ExtResource("4_252gx")
hold_distance = 2.0
metadata/_custom_type_script = "uid://040xta01xqxd"
[node name="BigBox" type="RigidBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.5, 1.8, -6)
collision_layer = 7
collision_mask = 9
mass = 500.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="BigBox"]
mesh = SubResource("BoxMesh_35l2h")
[node name="CollisionShape3D" type="CollisionShape3D" parent="BigBox"]
shape = SubResource("BoxShape3D_sc5il")
[node name="Ball" type="RigidBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, -4.8)
collision_layer = 6
collision_mask = 9
physics_material_override = SubResource("PhysicsMaterial_35l2h")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Ball"]
mesh = SubResource("SphereMesh_sc5il")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ball"]
shape = SubResource("SphereShape3D_hyy3g")
[node name="Holdable" type="Node" parent="Ball"]
script = ExtResource("4_252gx")
metadata/_custom_type_script = "uid://040xta01xqxd"
[node name="PhysCrateLong" parent="." instance=ExtResource("5_35l2h")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0.9, -6)

View File

@ -11,8 +11,8 @@ extends Level
func _clean_tree(node: Node) -> void:
if node is GunkBody:
(node as GunkBody).clear_all()
if node is Gunkable:
(node as Gunkable).clear_all()
else:
for child: Node in node.get_children():
_clean_tree(child)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=40 format=3 uid="uid://dc4tts6342cuj"]
[gd_scene load_steps=43 format=3 uid="uid://dc4tts6342cuj"]
[ext_resource type="Script" uid="uid://dmbdkydqnbyqv" path="res://levels/prop_test/prop_test.gd" id="1_ibd1t"]
[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="1_ml0ka"]
@ -9,23 +9,26 @@
[ext_resource type="PackedScene" uid="uid://b6eg8t04rkh0c" path="res://src/props/wall_switch/wall_switch.tscn" id="5_y13lv"]
[ext_resource type="PackedScene" uid="uid://cvx5u0ttmri4q" path="res://src/props/sofa/sofa.tscn" id="6_kccq3"]
[ext_resource type="PackedScene" uid="uid://ca7b5gjl3ri0p" path="res://src/props/cafe_table/cafe_table.tscn" id="6_tm4v6"]
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/crate_long.tscn" id="7_4jlf1"]
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/static_crate_long.tscn" id="7_4jlf1"]
[ext_resource type="PackedScene" uid="uid://bpsiwx1517pk1" path="res://src/props/tarp_crate/tarp_crate.tscn" id="7_xlkhi"]
[ext_resource type="PackedScene" uid="uid://drm5dspi48pf5" path="res://src/props/crate_long/phys_crate_long.tscn" id="8_8a67w"]
[ext_resource type="PackedScene" uid="uid://c8pkhw0b47xdd" path="res://src/props/cupboard/cupboard.tscn" id="8_kgrlx"]
[ext_resource type="PackedScene" uid="uid://dl6vekf0joac4" path="res://src/props/eva_suit/eva_suit.tscn" id="9_7md1e"]
[ext_resource type="PackedScene" uid="uid://b56sbxcwhveex" path="res://src/props/eva_suit/empty_enclosure.tscn" id="10_s7h0g"]
[ext_resource type="PackedScene" uid="uid://h2gswdcxyotk" path="res://src/props/med_cart/med_cart.tscn" id="11_s7h0g"]
[ext_resource type="PackedScene" uid="uid://h2gswdcxyotk" path="res://src/props/med_cart/static_med_cart.tscn" id="11_s7h0g"]
[ext_resource type="PackedScene" uid="uid://bve6iya13lhah" path="res://src/props/monitor/monitor.tscn" id="12_wyhm4"]
[ext_resource type="PackedScene" uid="uid://oipf3w7hm5gf" path="res://src/props/operating_table/operating_table.tscn" id="13_vp610"]
[ext_resource type="PackedScene" uid="uid://d2feet02a603e" path="res://src/props/overhead_light/overhead_light.tscn" id="14_sbwfa"]
[ext_resource type="PackedScene" uid="uid://cv6sxj04rrkt2" path="res://src/props/med_cart/phys_med_cart.tscn" id="14_u3x5h"]
[ext_resource type="PackedScene" uid="uid://rykf34p8n8x6" path="res://src/props/overhead_light/burnout_light.tscn" id="15_r8upy"]
[ext_resource type="PackedScene" uid="uid://ctm84yms40858" path="res://src/props/railing/railing.tscn" id="16_kccq3"]
[ext_resource type="PackedScene" uid="uid://ctr56p23cvupu" path="res://src/props/retinal_scanner/retinal_scanner.tscn" id="17_r8upy"]
[ext_resource type="PackedScene" uid="uid://cjqayfrj2oxyr" path="res://src/props/tarp_crate/tarp_crate_logo.tscn" id="20_pfhf5"]
[ext_resource type="PackedScene" uid="uid://cklppdtyaadlo" path="res://src/props/trash_can/trash_can.tscn" id="21_wgtci"]
[ext_resource type="PackedScene" uid="uid://cklppdtyaadlo" path="res://src/props/trash_can/static_trash_can.tscn" id="21_wgtci"]
[ext_resource type="PackedScene" uid="uid://dtus42gmb1kqq" path="res://src/props/vending_machine/vending_machine.tscn" id="22_6oadn"]
[ext_resource type="Texture2D" uid="uid://d2xq0uvxh2ojk" path="res://assets/props/vending_machine/vending_machine_C.png" id="23_ibd1t"]
[ext_resource type="Texture2D" uid="uid://d0xe37qm3k7d8" path="res://assets/props/vending_machine/vending_machine_E.png" id="24_mvw32"]
[ext_resource type="PackedScene" uid="uid://p86qtslgpe1i" path="res://src/props/trash_can/phys_trash_can.tscn" id="25_8eukv"]
[ext_resource type="Texture2D" uid="uid://dkilg200w8x4y" path="res://assets/props/vending_machine/vending_machine_M.png" id="25_yijpk"]
[ext_resource type="Texture2D" uid="uid://8v7jta2qdvut" path="res://assets/props/vending_machine/vending_machine_N.png" id="26_qnhar"]
[ext_resource type="Texture2D" uid="uid://gbvtbiurxrop" path="res://assets/props/vending_machine/vending_machine_R.png" id="27_8a67w"]
@ -73,6 +76,7 @@ game_environment = ExtResource("2_qnhar")
debug_environment = ExtResource("3_mvw32")
id = "prop_test"
pretty_name = "Prop Testing Sandbox"
version = 1
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.866025, -0.156955, -0.474726, 0.5, 0.271854, 0.82225, 0, -0.949453, 0.31391, 0, 0, 0)
@ -178,10 +182,13 @@ text = "Open"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7, 0.4, -9)
skeleton = NodePath("../..")
[node name="CrateLong" parent="Props" instance=ExtResource("7_4jlf1")]
[node name="StaticCrateLong" parent="Props" instance=ExtResource("7_4jlf1")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9, 1.5, -9)
skeleton = NodePath("../..")
[node name="PhysCrateLong" parent="Props" instance=ExtResource("8_8a67w")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.1, 1.5, -7.5)
[node name="Cupboard" parent="Props" instance=ExtResource("8_kgrlx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.9, 2.4, -9)
skeleton = NodePath("../..")
@ -192,10 +199,13 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 7.5223
[node name="EVASuit2" parent="Props" instance=ExtResource("10_s7h0g")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 10.8753, 1.49988, -11.2474)
[node name="MedCart" parent="Props" instance=ExtResource("11_s7h0g")]
[node name="StaticMedCart" parent="Props" instance=ExtResource("11_s7h0g")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.8, 0.5, -10.8)
skeleton = NodePath("../..")
[node name="PhysMedCart" parent="Props" instance=ExtResource("14_u3x5h")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.7, 0.5, -9.6)
[node name="Monitor" parent="Props" instance=ExtResource("12_wyhm4")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 15.3, 1.5, -10.8)
@ -228,10 +238,13 @@ skeleton = NodePath("../..")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 39, 0.8, -12)
skeleton = NodePath("../..")
[node name="TrashCan" parent="Props" instance=ExtResource("21_wgtci")]
[node name="StaticTrashCan" parent="Props" instance=ExtResource("21_wgtci")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 42, 0.5, -12)
skeleton = NodePath("../..")
[node name="PhysTrashCan" parent="Props" instance=ExtResource("25_8eukv")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 42.9, 0.5, -10.8)
[node name="VendingMachine" parent="Props" instance=ExtResource("22_6oadn")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 1.5654, -12)

File diff suppressed because one or more lines are too long

View File

@ -210,6 +210,11 @@ locale/translations=PackedStringArray("res://assets/text/text.en.translation")
3d_physics/layer_4="Player"
3d_physics/layer_5="GameSounds"
3d_physics/layer_6="Player Physics"
3d_physics/layer_7="Prop Physics"
[physics]
3d/default_angular_damp=4.0
[rendering]

View File

@ -14,11 +14,10 @@ func _spray() -> void:
spray_sfx.set_angle_from_normal(laser.get_collision_normal())
var collider := laser.get_collider()
if collider is GunkBody:
var gunk_component := Gunkable.get_component(collider)
if gunk_component:
var point := laser.get_collision_point()
var point_scale := point.distance_to(global_position) * spray_scale
(collider as GunkBody).paint_continuous(
point, laser.get_collision_normal(), point_scale
)
gunk_component.paint_continuous(point, laser.get_collision_normal(), point_scale)
if collider is Sprayable:
(collider as Sprayable).hit(damage)

View File

@ -19,15 +19,16 @@ func _fire() -> void:
if raycast.is_colliding() and not World.instance.manager.is_tank_full():
brush_animation.play("brush")
var collider := raycast.get_collider()
if collider is GunkBody:
(collider as GunkBody).paint_dot(
var gunk_component := Gunkable.get_component(collider)
if gunk_component:
gunk_component.paint_dot(
raycast.get_collision_point(),
raycast.get_collision_normal(),
BRUSH_SCALE,
PAINT_COLOR
)
if collider is GunkNode:
(collider as GunkNode).hit(damage)
if collider is Sprayable:
(collider as Sprayable).hit(damage)
else:
brush_animation.stop()

View File

@ -117,8 +117,7 @@ unique_name_in_owner = true
visible = false
texture_filter = 1
layout_mode = 0
offset_left = -40.0
offset_right = 24.0
offset_right = 64.0
offset_bottom = 128.0
scale = Vector2(5, 5)
texture = ExtResource("4_atd0h")

View File

@ -36,7 +36,7 @@ func _fire() -> void:
func _spray() -> void:
var prev_target: GunkBody = null
var prev_target: Gunkable = null
var prev_point: Vector3
var prev_normal: Vector3
@ -46,19 +46,21 @@ func _spray() -> void:
spray_sfx.set_angle_from_normal(laser.get_collision_normal())
var collider := laser.get_collider()
if collider is GunkBody:
var target := collider as GunkBody
var gunk_component := Gunkable.get_component(collider)
if gunk_component:
var point := laser.get_collision_point()
var normal := laser.get_collision_normal()
# Always paint at least a dot, to cap the ends of the line
target.paint_dot(point, normal, spray_scale)
if target == prev_target:
gunk_component.paint_dot(point, normal, spray_scale)
if gunk_component == prev_target:
# Continue the multiline if possible
target.add_to_multiline(prev_point, prev_normal, point, normal, spray_scale * 2)
gunk_component.add_to_multiline(
prev_point, prev_normal, point, normal, spray_scale * 2
)
prev_point = point
prev_normal = normal
prev_target = target
prev_target = gunk_component
prev_point = point
prev_normal = normal
elif collider is Sprayable:

View File

@ -321,11 +321,6 @@ offset_left = 344.0
offset_top = 211.0
offset_right = 344.0
offset_bottom = 211.0
BUFFER_RUMBLE_FACTOR = 3.0
RUMBLE_DECAY = 10
NEEDLE_ACCEL = 1.0
NEEDLE_VELOCITY_MAX = 1.0
debug_collect = 0.0
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true

View File

@ -34,9 +34,10 @@ func play_footstep() -> void:
func get_material_under_foot() -> SurfaceMaterial.Type:
var collider := foot_cast.get_collider() as Node
if collider is GunkBody:
var gunk_component := Gunkable.get_component(collider)
if gunk_component:
# Special case: check if collision surface is gunked
if (collider as GunkBody).is_point_gunked(
if gunk_component.is_point_gunked(
foot_cast.get_collision_point(), foot_cast.get_collision_normal()
):
return SurfaceMaterial.Type.GRUNK

View File

@ -0,0 +1,80 @@
extends Node3D
## Component for managing physics object holding
## Held object position lerp acceleration.
@export var hold_accel := 20.0
## Held object position velocity scale.
@export var hold_speed := 12.0
## The maximum distance the object may be from the hold point before breaking the hold.
@export var max_distance := 3.0
## Temporary linear damping for held objects
@export var hold_damping := 8.0
## Temporary collision layer.
@export_flags_3d_physics var hold_collision_layer := 0b01000000
## Temporary collision mask.
@export_flags_3d_physics var hold_collision_physics := 0b01000001
## The object currently being held.
var _held_object: RigidBody3D
var _original_damping: float
var _original_collision_layer: int
var _original_collision_mask: int
@onready var interact_ray: RayCast3D = %InteractRay
@onready var hold_point: Marker3D = %HoldPoint
func attach(prop: RigidBody3D, hold_distance: float) -> void:
hold_point.position = Vector3(0, 0, -hold_distance)
_held_object = prop
_original_damping = prop.linear_damp
prop.linear_damp = hold_damping
_original_collision_layer = prop.collision_layer
prop.collision_layer = hold_collision_layer
_original_collision_mask = prop.collision_mask
prop.collision_mask = hold_collision_physics
func drop() -> void:
_held_object.linear_damp = _original_damping
_held_object.collision_layer = _original_collision_layer
_held_object.collision_mask = _original_collision_mask
_held_object = null
func holding_object() -> bool:
return !!_held_object
func _physics_process(delta: float) -> void:
# Object hold action logic
if Input.is_action_just_pressed("interact"):
if _held_object:
drop()
elif interact_ray.is_colliding():
var body := interact_ray.get_collider() as RigidBody3D
var hold_component := Holdable.get_component(body)
if hold_component:
attach(body, hold_component.hold_distance)
# Held object logic
if not _held_object:
return
var diff := hold_point.global_position - (_held_object.global_position)
if diff.length() > max_distance:
drop()
return
var weight := 1 - exp(-hold_accel * delta)
_held_object.linear_velocity = _held_object.linear_velocity.lerp(diff * hold_speed, weight)
_held_object.global_basis = _held_object.global_basis.slerp(global_basis, weight)

View File

@ -0,0 +1 @@
uid://pkk1qg3bqjhj

View File

@ -189,14 +189,14 @@ func _signal_death() -> void:
func _physics_process(delta: float) -> void:
# Will be null if no valid interactor is selected.
var interactive: Interactive = interact_ray.get_collider() as Interactive
var interactive := interact_ray.get_collider() as Interactive
hud.select_interactive(interactive)
if interactive:
interactive.select()
if activity_enabled:
# World interaction
if interactive and Input.is_action_just_pressed("interact"):
if Input.is_action_just_pressed("interact") and interactive:
interactive.activate()
# Tool selection

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=64 format=3 uid="uid://bwe2jdmvinhqd"]
[gd_scene load_steps=67 format=3 uid="uid://bwe2jdmvinhqd"]
[ext_resource type="Script" uid="uid://buwh0g1ga2aka" path="res://src/player/player.gd" id="1_npueo"]
[ext_resource type="Script" uid="uid://cx1yt0drthpw3" path="res://src/player/camera_controller.gd" id="2_veeqv"]
@ -14,6 +14,7 @@
[ext_resource type="Script" uid="uid://ecrhsueph7at" path="res://src/player/footsteps/footstep_controller.gd" id="9_hja65"]
[ext_resource type="Script" uid="uid://brqa2wbtaspw4" path="res://src/player/footsteps/foot_controller.gd" id="9_l271a"]
[ext_resource type="AudioStream" uid="uid://di0e1l1l6l3qc" path="res://assets/sfx/footsteps/metal/metal1.wav" id="10_jcdrv"]
[ext_resource type="Script" uid="uid://pkk1qg3bqjhj" path="res://src/player/hold_component.gd" id="11_h0enb"]
[ext_resource type="AudioStream" uid="uid://bv00dudic2mvp" path="res://assets/sfx/footsteps/metal/metal3.wav" id="11_hja65"]
[ext_resource type="AudioStream" uid="uid://befqnsqlbpca7" path="res://assets/sfx/footsteps/metal/metal5.wav" id="12_5shm8"]
[ext_resource type="AudioStream" uid="uid://c6wnc7kqtvujm" path="res://assets/sfx/footsteps/metal/metal7.wav" id="13_5efpn"]
@ -34,6 +35,7 @@
[ext_resource type="AudioStream" uid="uid://djucfo3l7x7px" path="res://assets/sfx/footsteps/plastic/plastic3.wav" id="29_wcxbk"]
[ext_resource type="AudioStream" uid="uid://ck86vhmbg3xnj" path="res://assets/sfx/footsteps/plastic/plastic5.wav" id="30_p6grl"]
[ext_resource type="Script" uid="uid://c5o1d2shq2qig" path="res://src/world/game_sound/game_sound_emitter.gd" id="31_wcxbk"]
[ext_resource type="Script" uid="uid://b5loa2u6s5l5c" path="res://src/player/rigid_body_physics.gd" id="36_phdu6"]
[sub_resource type="Animation" id="Animation_x42xx"]
length = 0.001
@ -170,6 +172,10 @@ nodes/timescale/node = SubResource("AnimationNodeTimeScale_8ydov")
nodes/timescale/position = Vector2(1240, 120)
node_connections = [&"blend", 0, &"still_anim", &"blend", 1, &"bob_anim", &"output", 0, &"timescale", &"sfx_add", 0, &"blend", &"sfx_add", 1, &"sfx_anim", &"timescale", 0, &"sfx_add"]
[sub_resource type="SphereMesh" id="SphereMesh_h0enb"]
radius = 0.05
height = 0.1
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_s7f0r"]
radius = 0.4
height = 1.9
@ -676,6 +682,20 @@ parameters/sfx_add/add_amount = 1.0
parameters/timescale/scale = false
script = ExtResource("7_x42xx")
[node name="HoldComponent" type="Node3D" parent="CameraPosition/CameraPivot/TransformedPosition/CamRumbler/Camera3D"]
script = ExtResource("11_h0enb")
hold_accel = 40.0
hold_speed = 20.0
[node name="HoldPoint" type="Marker3D" parent="CameraPosition/CameraPivot/TransformedPosition/CamRumbler/Camera3D/HoldComponent"]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1)
[node name="DebugHoldPoint" type="MeshInstance3D" parent="CameraPosition/CameraPivot/TransformedPosition/CamRumbler/Camera3D/HoldComponent/HoldPoint"]
visible = false
mesh = SubResource("SphereMesh_h0enb")
skeleton = NodePath("../..")
[node name="StandingCollider" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
shape = SubResource("CapsuleShape3D_s7f0r")
@ -780,3 +800,6 @@ libraries = {
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
visible = false
mesh = SubResource("PlaneMesh_p6grl")
[node name="RigidBodyPhysics" type="Node" parent="."]
script = ExtResource("36_phdu6")

View File

@ -0,0 +1,31 @@
extends Node
## Component to simulate rigid body interactions with a CharacterBody3D.
## Base collision force (will scale with impact velocity)
@export_range(0.0, 500.0, 0.1) var force := 50.0
## Lower bound for collision speed scaling.
@export var min_speed := 1.0
## Upper bound for collision speed scaling.
@export var max_speed := 10.0
## Toggle rigid body interactions.
@export var enabled := true
@onready var controller := owner as CharacterBody3D
func _physics_process(_delta: float) -> void:
if not enabled:
return
for i: int in controller.get_slide_collision_count():
var collision := controller.get_slide_collision(i)
for j: int in collision.get_collision_count():
var collider := collision.get_collider(j) as RigidBody3D
if collider:
var direction := -collision.get_normal()
var speed := clampf(controller.velocity.length(), min_speed, max_speed)
var offset := collision.get_position(j) - collider.global_position
collider.apply_impulse(direction * speed * force, offset)

View File

@ -0,0 +1 @@
uid://b5loa2u6s5l5c

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=9 format=3 uid="uid://ca7b5gjl3ri0p"]
[gd_scene load_steps=10 format=3 uid="uid://ca7b5gjl3ri0p"]
[ext_resource type="Texture2D" uid="uid://kji1r64xr62b" path="res://assets/props/cafe_table/cafe_table_C.png" id="1_8c2wd"]
[ext_resource type="ArrayMesh" uid="uid://02pxl1iknwie" path="res://assets/props/cafe_table/cafe_table.obj" id="1_kbxmn"]
[ext_resource type="Texture2D" uid="uid://chh8wcdsu601s" path="res://assets/props/cafe_table/cafe_table_M.png" id="2_atatm"]
[ext_resource type="Texture2D" uid="uid://6nrac2ciprd4" path="res://assets/props/cafe_table/cafe_table_N.png" id="3_4grlf"]
[ext_resource type="Texture2D" uid="uid://dryw5kjktefst" path="res://assets/props/cafe_table/cafe_table_R.png" id="4_naoko"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="5_ywp2f"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="7_atatm"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="8_4grlf"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q50g7"]
albedo_texture = ExtResource("1_8c2wd")
@ -23,7 +24,14 @@ data = PackedVector3Array(0.9, 0, -0.05, 0.9, 0, -2.95, 1.5, 0, -0.05, 1.5, 0, -
mesh = ExtResource("1_kbxmn")
surface_material_override/0 = SubResource("StandardMaterial3D_q50g7")
[node name="GunkBody" parent="." groups=["PlasticMaterial"] instance=ExtResource("5_ywp2f")]
[node name="StaticBody3D" type="StaticBody3D" parent="." groups=["PlasticMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_c6qxl")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("7_atatm")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("8_4grlf")

View File

@ -0,0 +1,58 @@
[gd_scene load_steps=13 format=3 uid="uid://drm5dspi48pf5"]
[ext_resource type="Script" uid="uid://sksndhqyo2bn" path="res://src/props/physics/persistent_prop.gd" id="1_q4djj"]
[ext_resource type="ArrayMesh" uid="uid://cd7vwjss7qytk" path="res://assets/props/crate_long/crate_long.obj" id="1_sao54"]
[ext_resource type="Texture2D" uid="uid://cd0w8eqpount3" path="res://assets/props/crate_long/crate_long_C.png" id="2_rlyiq"]
[ext_resource type="Texture2D" uid="uid://da5p04vbiy3xe" path="res://assets/props/crate_long/crate_long_M.png" id="3_p8srg"]
[ext_resource type="Texture2D" uid="uid://bsovubygl3go2" path="res://assets/props/crate_long/crate_long_N.png" id="4_q4djj"]
[ext_resource type="Texture2D" uid="uid://b1m1my5q2vlwi" path="res://assets/props/crate_long/crate_long_R.png" id="5_eb8p8"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="6_064yj"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="7_rlyiq"]
[ext_resource type="Script" uid="uid://040xta01xqxd" path="res://src/props/physics/holdable.gd" id="8_p8srg"]
[sub_resource type="BoxShape3D" id="BoxShape3D_p8srg"]
size = Vector3(0.75, 0.5, 1.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8j27j"]
albedo_texture = ExtResource("2_rlyiq")
metallic = 1.0
metallic_texture = ExtResource("3_p8srg")
roughness_texture = ExtResource("5_eb8p8")
normal_enabled = true
normal_texture = ExtResource("4_q4djj")
ao_enabled = true
texture_filter = 2
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_p8srg"]
data = PackedVector3Array(0.375, -0.15, 0.75, 0.275, -0.25, 0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.275, -0.25, 0.75, 0.275, 0.25, 0.75, 0.275, 0.25, 0.75, 0.275, -0.25, 0.75, -0.275, 0.25, 0.75, -0.275, 0.25, 0.75, 0.275, -0.25, 0.75, -0.375, 0.15, 0.75, -0.375, 0.15, 0.75, 0.275, -0.25, 0.75, -0.375, -0.15, 0.75, -0.375, -0.15, 0.75, 0.275, -0.25, 0.75, -0.275, -0.25, 0.75, 0.375, 0.15, -0.75, 0.375, -0.15, -0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.375, -0.15, -0.75, 0.375, -0.15, 0.75, -0.275, 0.25, -0.75, 0.275, 0.25, -0.75, -0.275, 0.25, 0.75, -0.275, 0.25, 0.75, 0.275, 0.25, -0.75, 0.275, 0.25, 0.75, -0.375, 0.15, 0.75, -0.375, -0.15, 0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.375, -0.15, 0.75, -0.375, -0.15, -0.75, -0.375, -0.15, -0.75, -0.275, -0.25, -0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.275, -0.25, -0.75, -0.275, 0.25, -0.75, -0.275, 0.25, -0.75, -0.275, -0.25, -0.75, 0.275, 0.25, -0.75, 0.275, 0.25, -0.75, -0.275, -0.25, -0.75, 0.375, 0.15, -0.75, 0.375, 0.15, -0.75, -0.275, -0.25, -0.75, 0.375, -0.15, -0.75, 0.375, -0.15, -0.75, -0.275, -0.25, -0.75, 0.275, -0.25, -0.75, -0.275, -0.25, 0.75, -0.275, -0.25, -0.75, -0.375, -0.15, 0.75, -0.375, -0.15, 0.75, -0.275, -0.25, -0.75, -0.375, -0.15, -0.75, -0.275, 0.25, -0.75, -0.275, 0.25, 0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.275, 0.25, 0.75, -0.375, 0.15, 0.75, 0.275, -0.25, -0.75, 0.275, -0.25, 0.75, 0.375, -0.15, -0.75, 0.375, -0.15, -0.75, 0.275, -0.25, 0.75, 0.375, -0.15, 0.75, 0.275, 0.25, 0.75, 0.275, 0.25, -0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.275, 0.25, -0.75, 0.375, 0.15, -0.75, 0.275, -0.25, -0.75, -0.275, -0.25, -0.75, 0.275, -0.25, 0.75, 0.275, -0.25, 0.75, -0.275, -0.25, -0.75, -0.275, -0.25, 0.75)
[node name="PhysCrateLong" type="RigidBody3D" groups=["Persistent", "PlasticMaterial"]]
collision_layer = 67
collision_mask = 73
mass = 200.0
script = ExtResource("1_q4djj")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_p8srg")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = ExtResource("1_sao54")
surface_material_override/0 = SubResource("StandardMaterial3D_8j27j")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"]
collision_layer = 4
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_p8srg")
[node name="Gunkable" parent="MeshInstance3D/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("6_064yj")]
mask_dim = 128
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("7_rlyiq")
[node name="Holdable" type="Node" parent="."]
script = ExtResource("8_p8srg")
hold_distance = 2.0
metadata/_custom_type_script = "uid://040xta01xqxd"

View File

@ -5,7 +5,7 @@
[ext_resource type="Texture2D" uid="uid://da5p04vbiy3xe" path="res://assets/props/crate_long/crate_long_M.png" id="3_c6a2t"]
[ext_resource type="Texture2D" uid="uid://bsovubygl3go2" path="res://assets/props/crate_long/crate_long_N.png" id="4_d06p6"]
[ext_resource type="Texture2D" uid="uid://b1m1my5q2vlwi" path="res://assets/props/crate_long/crate_long_R.png" id="5_cmp6v"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="5_d06p6"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="6_agrnx"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="6_c6a2t"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5pe4w"]
@ -21,13 +21,19 @@ texture_filter = 2
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_d06p6"]
data = PackedVector3Array(0.375, -0.15, 0.75, 0.275, -0.25, 0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.275, -0.25, 0.75, 0.275, 0.25, 0.75, 0.275, 0.25, 0.75, 0.275, -0.25, 0.75, -0.275, 0.25, 0.75, -0.275, 0.25, 0.75, 0.275, -0.25, 0.75, -0.375, 0.15, 0.75, -0.375, 0.15, 0.75, 0.275, -0.25, 0.75, -0.375, -0.15, 0.75, -0.375, -0.15, 0.75, 0.275, -0.25, 0.75, -0.275, -0.25, 0.75, 0.375, 0.15, -0.75, 0.375, -0.15, -0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.375, -0.15, -0.75, 0.375, -0.15, 0.75, -0.275, 0.25, -0.75, 0.275, 0.25, -0.75, -0.275, 0.25, 0.75, -0.275, 0.25, 0.75, 0.275, 0.25, -0.75, 0.275, 0.25, 0.75, -0.375, 0.15, 0.75, -0.375, -0.15, 0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.375, -0.15, 0.75, -0.375, -0.15, -0.75, -0.375, -0.15, -0.75, -0.275, -0.25, -0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.275, -0.25, -0.75, -0.275, 0.25, -0.75, -0.275, 0.25, -0.75, -0.275, -0.25, -0.75, 0.275, 0.25, -0.75, 0.275, 0.25, -0.75, -0.275, -0.25, -0.75, 0.375, 0.15, -0.75, 0.375, 0.15, -0.75, -0.275, -0.25, -0.75, 0.375, -0.15, -0.75, 0.375, -0.15, -0.75, -0.275, -0.25, -0.75, 0.275, -0.25, -0.75, -0.275, -0.25, 0.75, -0.275, -0.25, -0.75, -0.375, -0.15, 0.75, -0.375, -0.15, 0.75, -0.275, -0.25, -0.75, -0.375, -0.15, -0.75, -0.275, 0.25, -0.75, -0.275, 0.25, 0.75, -0.375, 0.15, -0.75, -0.375, 0.15, -0.75, -0.275, 0.25, 0.75, -0.375, 0.15, 0.75, 0.275, -0.25, -0.75, 0.275, -0.25, 0.75, 0.375, -0.15, -0.75, 0.375, -0.15, -0.75, 0.275, -0.25, 0.75, 0.375, -0.15, 0.75, 0.275, 0.25, 0.75, 0.275, 0.25, -0.75, 0.375, 0.15, 0.75, 0.375, 0.15, 0.75, 0.275, 0.25, -0.75, 0.375, 0.15, -0.75, 0.275, -0.25, -0.75, -0.275, -0.25, -0.75, 0.275, -0.25, 0.75, 0.275, -0.25, 0.75, -0.275, -0.25, -0.75, -0.275, -0.25, 0.75)
[node name="CrateLong" type="MeshInstance3D"]
[node name="StaticCrateLong" type="MeshInstance3D"]
mesh = ExtResource("1_d06p6")
surface_material_override/0 = SubResource("StandardMaterial3D_5pe4w")
[node name="GunkBody" parent="." groups=["PlasticMaterial"] instance=ExtResource("5_d06p6")]
mask_dim = 128
source_gunk_material = ExtResource("6_c6a2t")
[node name="StaticBody3D" type="StaticBody3D" parent="." groups=["PlasticMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_d06p6")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("6_agrnx")]
mask_dim = 128
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_c6a2t")

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=9 format=3 uid="uid://c8pkhw0b47xdd"]
[gd_scene load_steps=10 format=3 uid="uid://c8pkhw0b47xdd"]
[ext_resource type="Texture2D" uid="uid://dg4odum5vfc2r" path="res://assets/props/cupboard/cupboard_C.png" id="1_00yk4"]
[ext_resource type="ArrayMesh" uid="uid://dgfds7nbhxbbl" path="res://assets/props/cupboard/cupboard.obj" id="1_ssqwt"]
[ext_resource type="Texture2D" uid="uid://dkx0128lukxme" path="res://assets/props/cupboard/cupboard_M.png" id="2_w0nd8"]
[ext_resource type="Texture2D" uid="uid://c0qid1gqplbly" path="res://assets/props/cupboard/cupboard_N.png" id="3_ssqwt"]
[ext_resource type="Texture2D" uid="uid://cdmgbmje8ub3y" path="res://assets/props/cupboard/cupboard_R.png" id="4_q3cl1"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="5_q3cl1"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="7_wyuua"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="8_rgfsf"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wyuua"]
albedo_texture = ExtResource("1_00yk4")
@ -23,7 +24,14 @@ data = PackedVector3Array(-0.5, 0.5, 2, -0.5, -0.5, 2, -0.5, 0.5, -2, -0.5, 0.5,
mesh = ExtResource("1_ssqwt")
surface_material_override/0 = SubResource("StandardMaterial3D_wyuua")
[node name="GunkBody" parent="." groups=["MetalMaterial"] instance=ExtResource("5_q3cl1")]
[node name="StaticBody3D" type="StaticBody3D" parent="." groups=["MetalMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_tv0mb")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("7_wyuua")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("8_rgfsf")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=9 format=3 uid="uid://oipf3w7hm5gf"]
[gd_scene load_steps=10 format=3 uid="uid://oipf3w7hm5gf"]
[ext_resource type="ArrayMesh" uid="uid://c0nxj2li1pefb" path="res://assets/props/operating_table/operating_table.obj" id="1_pt2ft"]
[ext_resource type="Texture2D" uid="uid://e7kat4x3brst" path="res://assets/props/operating_table/operating_table_C.png" id="2_73alj"]
[ext_resource type="Texture2D" uid="uid://ctv1f41eefar0" path="res://assets/props/operating_table/operating_table_M.png" id="3_lhd0e"]
[ext_resource type="Texture2D" uid="uid://uk3m431m6r0" path="res://assets/props/operating_table/operating_table_N.png" id="4_mevr1"]
[ext_resource type="Texture2D" uid="uid://c4u3qvdtyoq4a" path="res://assets/props/operating_table/operating_table_R.png" id="5_lcrh2"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="6_lhd0e"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="6_mevr1"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="7_lcrh2"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lhd0e"]
albedo_texture = ExtResource("2_73alj")
@ -23,8 +24,15 @@ data = PackedVector3Array(-0.9749, 0.4, 0.5127, -0.9749, 0.3, 0.5127, -0.9715, 0
mesh = ExtResource("1_pt2ft")
surface_material_override/0 = SubResource("StandardMaterial3D_lhd0e")
[node name="GunkBody" parent="." instance=ExtResource("6_lhd0e")]
mask_dim = 192
[node name="StaticBody3D" type="StaticBody3D" parent="." groups=["MetalMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D2" type="CollisionShape3D" parent="GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_5ju1e")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("6_mevr1")]
mask_dim = 192
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("7_lcrh2")

View File

@ -5,7 +5,7 @@
[ext_resource type="Texture2D" uid="uid://c3pfufk3r4611" path="res://assets/props/overhead_light/overhead_light_burnout_M.png" id="2_esawx"]
[ext_resource type="Texture2D" uid="uid://buxuntbbfwvfg" path="res://assets/props/overhead_light/overhead_light_burnout_N.png" id="3_vg5ej"]
[ext_resource type="Texture2D" uid="uid://c40m0iq5tot1a" path="res://assets/props/overhead_light/overhead_light_burnout_R.png" id="4_0f8x7"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="5_qcusd"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="6_1oo6x"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="6_8nypc"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_niury"]
@ -26,9 +26,15 @@ data = PackedVector3Array(0.4, -0.1, 0.75, 0.3, -0.2, 0.75, 0.4, 0, 0.75, 0.4, 0
mesh = ExtResource("1_esawx")
surface_material_override/0 = SubResource("StandardMaterial3D_niury")
[node name="GunkBody" parent="MeshInstance3D" instance=ExtResource("5_qcusd")]
mask_dim = 64
source_gunk_material = ExtResource("6_8nypc")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_jad1v")
[node name="Gunkable" parent="MeshInstance3D/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("6_1oo6x")]
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_8nypc")

View File

@ -4,18 +4,18 @@ extends Node3D
@export var initial_mask: Texture
@onready var spot_light_3d: SpotLight3D = %SpotLight3D
@onready var gunk_body: GunkBody = %GunkBody
@onready var gunkable: Gunkable = %Gunkable
func _ready() -> void:
if initial_mask:
gunk_body.initial_mask = initial_mask
gunkable.initial_mask = initial_mask
_deferred_init.call_deferred()
func _deferred_init() -> void:
gunk_body.trigger_recompute()
gunkable.trigger_recompute()
func _on_clear_total_updated(clear_total: float) -> void:

View File

@ -7,8 +7,8 @@
[ext_resource type="Texture2D" uid="uid://bh2jmk7jfjmyr" path="res://assets/props/overhead_light/overhead_light_M.png" id="3_ngq1d"]
[ext_resource type="Texture2D" uid="uid://no4s7dsg8tih" path="res://assets/props/overhead_light/overhead_light_N.png" id="4_3gl0p"]
[ext_resource type="Texture2D" uid="uid://cr5e4hk33wmwf" path="res://assets/props/overhead_light/overhead_light_R.png" id="5_210ch"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="6_3gl0p"]
[ext_resource type="Material" uid="uid://dutkfm4ek0ysh" path="res://assets/materials/gunk_bright.material" id="8_3gl0p"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="10_ljcul"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ljcul"]
resource_local_to_scene = true
@ -99,12 +99,14 @@ visible = false
light_color = Color(1, 0.9825, 0.95, 1)
light_energy = 2.0
light_specular = 1.0
shadow_enabled = true
spot_range = 16.0
spot_attenuation = 0.5
spot_angle = 98.0
spot_angle = 70.0
spot_angle_attenuation = 1.55871
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
cast_shadow = 0
gi_mode = 2
mesh = ExtResource("2_210ch")
surface_material_override/0 = SubResource("StandardMaterial3D_ljcul")
@ -115,12 +117,18 @@ libraries = {
}
autoplay = "flicker"
[node name="GunkBody" parent="MeshInstance3D" instance=ExtResource("6_3gl0p")]
unique_name_in_owner = true
mask_dim = 64
source_gunk_material = ExtResource("8_3gl0p")
[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_jdrpd")
[connection signal="clear_total_updated" from="MeshInstance3D/GunkBody" to="." method="_on_clear_total_updated"]
[node name="Gunkable" parent="MeshInstance3D/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("10_ljcul")]
unique_name_in_owner = true
mask_dim = 64
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("8_3gl0p")
[connection signal="clear_total_updated" from="MeshInstance3D/StaticBody3D/Gunkable" to="." method="_on_clear_total_updated"]

View File

@ -0,0 +1,11 @@
class_name Holdable extends Node
## Component for holdable elements
@export var hold_distance := 1.0
static func get_component(o: Object) -> Holdable:
var n := o as Node
if n and n.has_node("Holdable"):
return n.get_node_or_null("Holdable") as Holdable
return null

View File

@ -0,0 +1 @@
uid://040xta01xqxd

View File

@ -0,0 +1,18 @@
extends RigidBody3D
func serialize() -> Dictionary:
return {
"transform": transform,
"linear_velocity": linear_velocity,
"angular_velocity": angular_velocity,
}
func deserialize(state: Dictionary) -> void:
@warning_ignore("unsafe_cast")
transform = state["transform"] as Transform3D
@warning_ignore("unsafe_cast")
linear_velocity = state["linear_velocity"] as Vector3
@warning_ignore("unsafe_cast")
angular_velocity = state["angular_velocity"] as Vector3

View File

@ -0,0 +1 @@
uid://sksndhqyo2bn

View File

@ -5,8 +5,8 @@
[ext_resource type="Texture2D" uid="uid://dgyk61lmv3q66" path="res://assets/props/railing/railing_M.png" id="3_vgbo1"]
[ext_resource type="Texture2D" uid="uid://cd142v5tbh10j" path="res://assets/props/railing/railing_N.png" id="4_d75t1"]
[ext_resource type="Texture2D" uid="uid://tpweuhaqj3uy" path="res://assets/props/railing/railing_R.png" id="5_557y4"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="6_vgbo1"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="7_vgbo1"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="8_d75t1"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nyaqk"]
albedo_texture = ExtResource("2_2gmox")
@ -24,9 +24,15 @@ data = PackedVector3Array(1.475, 0.5, 0, 1.5, 0.5, 0.025, -1.475, 0.5, 0, -1.475
mesh = ExtResource("1_43h1k")
surface_material_override/0 = SubResource("StandardMaterial3D_nyaqk")
[node name="GunkBody" parent="." instance=ExtResource("6_vgbo1")]
mask_dim = 128
source_gunk_material = ExtResource("7_vgbo1")
[node name="StaticBody3D" type="StaticBody3D" parent="." groups=["MetalMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_557y4")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("8_d75t1")]
mask_dim = 128
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("7_vgbo1")

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=9 format=3 uid="uid://cvx5u0ttmri4q"]
[gd_scene load_steps=10 format=3 uid="uid://cvx5u0ttmri4q"]
[ext_resource type="ArrayMesh" uid="uid://b8p36gpkqwmkb" path="res://assets/props/sofa/sofa.obj" id="1_xi4at"]
[ext_resource type="Texture2D" uid="uid://c7wa2igxm2vta" path="res://assets/props/sofa/sofa_C.png" id="2_dd1m6"]
[ext_resource type="Texture2D" uid="uid://bdutuchsgsudg" path="res://assets/props/sofa/sofa_M.png" id="3_tqm3d"]
[ext_resource type="Texture2D" uid="uid://c0fmlt2f7h0l7" path="res://assets/props/sofa/sofa_N.png" id="4_kf17g"]
[ext_resource type="Texture2D" uid="uid://bgedr6qe65yve" path="res://assets/props/sofa/sofa_R.png" id="5_0yugb"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="6_dd1m6"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="6_tqm3d"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="7_kf17g"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dd1m6"]
albedo_texture = ExtResource("2_dd1m6")
@ -23,8 +24,15 @@ data = PackedVector3Array(-1.25, 0.05, 0.6, -1.09, -0.35, 0.6, -1.25, -0.5, 0.6,
mesh = ExtResource("1_xi4at")
surface_material_override/0 = SubResource("StandardMaterial3D_dd1m6")
[node name="GunkBody" parent="." instance=ExtResource("6_dd1m6")]
mask_dim = 196
[node name="StaticBody3D" type="StaticBody3D" parent="."]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_tqm3d")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("6_tqm3d")]
mask_dim = 196
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("7_kf17g")

View File

@ -5,7 +5,7 @@
[ext_resource type="Texture2D" uid="uid://boqywmqew0f1i" path="res://assets/props/tarp_crate/tarp_crate_M.png" id="2_4lu2x"]
[ext_resource type="Texture2D" uid="uid://2eg8lmfp1r45" path="res://assets/props/tarp_crate/tarp_crate_N.png" id="3_vis60"]
[ext_resource type="Texture2D" uid="uid://i031i4c162sf" path="res://assets/props/tarp_crate/tarp_crate_R.png" id="4_p1cm3"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="5_p1cm3"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="6_p1cm3"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="6_vis60"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qbm60"]
@ -27,9 +27,15 @@ data = PackedVector3Array(-0.5, 0.7, 0.5, -0.5, -0.7, 0.5, -0.5, 0.7, -0.5, -0.5
mesh = ExtResource("1_p1cm3")
surface_material_override/0 = SubResource("StandardMaterial3D_qbm60")
[node name="GunkBody" parent="." groups=["PlasticMaterial"] instance=ExtResource("5_p1cm3")]
mask_dim = 196
source_gunk_material = ExtResource("6_vis60")
[node name="StaticBody3D" type="StaticBody3D" parent="." groups=["PlasticMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_v6rol")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("6_p1cm3")]
mask_dim = 196
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("6_vis60")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -7,8 +7,8 @@
[ext_resource type="Texture2D" uid="uid://8v7jta2qdvut" path="res://assets/props/vending_machine/vending_machine_N.png" id="4_m0mqe"]
[ext_resource type="Texture2D" uid="uid://gbvtbiurxrop" path="res://assets/props/vending_machine/vending_machine_R.png" id="5_pmvmu"]
[ext_resource type="Script" uid="uid://jybe7wejrtuj" path="res://src/props/vending_machine/vending_machine.gd" id="6_5b31a"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="6_kgb1h"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="8_b7lht"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="10_8xld6"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v4lrk"]
resource_local_to_scene = true
@ -31,9 +31,14 @@ mesh = ExtResource("1_5b31a")
surface_material_override/0 = SubResource("StandardMaterial3D_v4lrk")
script = ExtResource("6_5b31a")
[node name="GunkBody" parent="." groups=["MetalMaterial"] instance=ExtResource("6_kgb1h")]
source_gunk_material = ExtResource("8_b7lht")
[node name="StaticBody3D" type="StaticBody3D" parent="." groups=["MetalMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody"]
visible = false
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("ConcavePolygonShape3D_1s701")
[node name="Gunkable" parent="StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("10_8xld6")]
body = NodePath("..")
mesh_instance = NodePath("../..")
source_gunk_material = ExtResource("8_b7lht")

View File

@ -12,7 +12,8 @@ const CLEAN_THRESHOLD := 1400
@onready var animation_player: AnimationPlayer = %AnimationPlayer
@onready var light_animation: AnimationPlayer = %LightAnimation
@onready var gunk_body: GunkBody = %GunkBody
@onready var gunkable: Gunkable = %Gunkable
@onready var interactive: Interactive = %Interactive
@onready var action_sfx: AudioStreamPlayer3D = %ActionSFX
@onready var action_delay: Timer = %ActionDelay
@ -27,7 +28,7 @@ func _ready() -> void:
func _deferred_init() -> void:
if clean:
gunk_body.clear_all()
gunkable.clear_all()
_on_clean()
if enabled:
_on_enable()
@ -82,7 +83,7 @@ func _animation_finished(anim_name: StringName) -> void:
interactive.enabled = enabled
func _on_gunk_body_clear_total_updated(clear_total: float) -> void:
func _on_clear_total_updated(clear_total: float) -> void:
if not clean and clear_total >= CLEAN_THRESHOLD:
_on_clean()

View File

@ -6,8 +6,8 @@
[ext_resource type="Texture2D" uid="uid://bur4dtt4irwgd" path="res://assets/props/wall_switch/wall_switch_M.png" id="3_3fhmv"]
[ext_resource type="Texture2D" uid="uid://ddve6jcfcuthx" path="res://assets/props/wall_switch/wall_switch_N.png" id="4_pg3hp"]
[ext_resource type="Texture2D" uid="uid://rq5e0a3sco88" path="res://assets/props/wall_switch/wall_switch_R.png" id="5_555wb"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="7_3ib1l"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="8_2qpft"]
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="9_eim2y"]
[ext_resource type="Script" uid="uid://deg5xd87cy8rg" path="res://src/props/interactive.gd" id="10_qw6jt"]
[ext_resource type="AudioStream" uid="uid://bgayfws34lg7q" path="res://assets/sfx/click_electronic_04.wav" id="11_7shuc"]
[ext_resource type="AudioStream" uid="uid://cnje66wrijwxw" path="res://assets/sfx/wall_switch.wav" id="12_2qpft"]
@ -200,15 +200,20 @@ surface_material_override/0 = SubResource("StandardMaterial3D_jtkkw")
[node name="AnimationPlayer" parent="." index="1"]
unique_name_in_owner = true
[node name="GunkBody" parent="." index="2" node_paths=PackedStringArray("mesh_instance") instance=ExtResource("7_3ib1l")]
[node name="StaticBody3D" type="StaticBody3D" parent="." index="2" groups=["PlasticMaterial"]]
collision_layer = 5
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" index="0"]
shape = SubResource("ConcavePolygonShape3D_2qpft")
[node name="Gunkable" parent="StaticBody3D" index="1" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("9_eim2y")]
unique_name_in_owner = true
mask_dim = 64
mesh_instance = NodePath("../Armature/Skeleton3D/WallSwitch_2")
body = NodePath("..")
mesh_instance = NodePath("../../Armature/Skeleton3D/WallSwitch_2")
source_gunk_material = ExtResource("8_2qpft")
[node name="CollisionShape3D" type="CollisionShape3D" parent="GunkBody" index="2"]
shape = SubResource("ConcavePolygonShape3D_2qpft")
[node name="Lights" type="Node3D" parent="." index="3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.137, 0.18, 0.08)
@ -267,7 +272,7 @@ metadata/_custom_type_script = "uid://c5o1d2shq2qig"
[node name="CollisionShape3D" type="CollisionShape3D" parent="WallSwitchGameSoundEmitter" index="0"]
shape = SubResource("SphereShape3D_mxsyy")
[connection signal="clear_total_updated" from="GunkBody" to="." method="_on_gunk_body_clear_total_updated"]
[connection signal="clear_total_updated" from="StaticBody3D/Gunkable" to="." method="_on_clear_total_updated"]
[connection signal="activated" from="Interactive" to="." method="_activate"]
[connection signal="timeout" from="ActionDelay" to="." method="_on_action_delay_timeout"]
[connection signal="timeout" from="ActionDelay" to="WallSwitchGameSoundEmitter" method="emit_sound_here"]

12
src/util/gi_hint.gd Normal file
View File

@ -0,0 +1,12 @@
extends MeshInstance3D
@export var frames_to_live := 16
var frames_remaining := frames_to_live
func _process(_delta: float) -> void:
if frames_remaining <= 0:
queue_free()
frames_remaining -= 1

1
src/util/gi_hint.gd.uid Normal file
View File

@ -0,0 +1 @@
uid://m8bjl8yr01m6

View File

@ -1 +0,0 @@
uid://hbl5u20wlwr5

View File

@ -1,5 +1,5 @@
class_name GunkBody extends StaticBody3D
## StaticBody3D with an associated "gunkable" mesh.
class_name Gunkable extends Node
## Component behavior for gunkable props & geometry.
## Emitted from the main thread after the clear total is asynchronously updated.
signal clear_total_updated(clear_total: float)
@ -13,6 +13,7 @@ const CLEAR_TOTAL_EPSILON := 1
const MASK_THRESHOLD := 0.5
@export var mask_dim := 256
@export var body: PhysicsBody3D
@export var mesh_instance: MeshInstance3D
@export var initial_mask: Texture
@ -41,16 +42,17 @@ var _exit_thread := false
@onready var mask_control: DrawController = %MaskControl
@onready var mask_texture: TextureRect = %MaskTexture
@onready var debug_draw: DebugDraw = $DebugDraw
func _ready() -> void:
# If no physics body was provided, use the parent.
if not body:
body = get_parent() as PhysicsBody3D
assert(body, "Gunkable %s has no associated physics body!" % str(self))
# If no mesh_instance was provided, use the parent.
if not mesh_instance:
var parent := get_parent() as MeshInstance3D
if parent:
mesh_instance = parent
assert(mesh_instance, "GunkBody %s has no associated mesh!" % str(self))
mesh_instance = get_parent() as MeshInstance3D
assert(mesh_instance, "Gunkable %s has no associated mesh!" % str(self))
mask_viewport.size = Vector2(mask_dim, mask_dim)
@ -185,9 +187,7 @@ func _get_uv(point: Vector3, normal: Vector3) -> Vector2:
##
## Returns Vector2.INF if the given point+normal does not lie on this mesh within tolerance.
func _get_px(point: Vector3, normal: Vector3) -> Vector2:
debug_draw.draw_vector(normal, point)
return _get_uv(point * global_transform, normal * global_basis) * mask_control.size
return _get_uv(point * body.global_transform, normal * body.global_basis) * mask_control.size
func is_point_gunked(point: Vector3, normal: Vector3) -> bool:
@ -300,3 +300,10 @@ func serialize() -> Dictionary:
func deserialize(state: Dictionary) -> void:
@warning_ignore("unsafe_cast")
initial_mask = ImageTexture.create_from_image(state["mask"] as Image)
static func get_component(o: Object) -> Gunkable:
var n := o as Node
if n and n.has_node("Gunkable"):
return n.get_node_or_null("Gunkable") as Gunkable
return null

View File

@ -0,0 +1 @@
uid://co0g2klfmor48

View File

@ -1,15 +1,11 @@
[gd_scene load_steps=5 format=3 uid="uid://c2omlx4ptrc01"]
[gd_scene load_steps=3 format=3 uid="uid://cdi5sl60mw1po"]
[ext_resource type="Script" uid="uid://hbl5u20wlwr5" path="res://src/world/gunk_body/gunk_body.gd" id="1_qqbpr"]
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="2_hrldx"]
[ext_resource type="Script" uid="uid://bom5qysgfvap1" path="res://src/world/gunk_body/draw_controller.gd" id="2_kkcjw"]
[ext_resource type="Script" uid="uid://ba7480ara8eo" path="res://levels/sandbox/debug_draw.gd" id="3_m8wx4"]
[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="1_47xoo"]
[ext_resource type="Script" uid="uid://bom5qysgfvap1" path="res://src/world/gunkable/draw_controller.gd" id="2_srn13"]
[node name="GunkBody" type="StaticBody3D" groups=["Persistent"]]
collision_layer = 5
collision_mask = 0
script = ExtResource("1_qqbpr")
source_gunk_material = ExtResource("2_hrldx")
[node name="Gunkable" type="Node" groups=["Persistent"]]
script = ExtResource("1_47xoo")
metadata/_custom_type_script = "uid://co0g2klfmor48"
[node name="MaskViewport" type="SubViewport" parent="."]
unique_name_in_owner = true
@ -44,18 +40,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("2_kkcjw")
[node name="DebugDraw" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("3_m8wx4")
script = ExtResource("2_srn13")
[connection signal="visibility_changed" from="MaskViewport/MaskClear" to="MaskViewport/MaskControl" method="_set_dirty"]
[connection signal="visibility_changed" from="MaskViewport/MaskTexture" to="MaskViewport/MaskControl" method="_set_dirty"]

View File

@ -164,4 +164,11 @@
- [x] railing (0.1x1.0x3.0)
- [ ] monitor desk (0.7x1.7x4.0)
- [ ] regular desk (0.7x1.2x4.0)
- [ ] wraparound desk
- [ ] wraparound desk
- [ ] etc
- [ ] Make sofa cushions separate physics objects
- [ ] Object hold UX
- [ ] holdable object HUD icon
- [ ] highlight holdable objects?
- [ ] hide tool UI when holding
- [ ] Keep bonus tracks, taco fiesta, maybe stickers in upgrade track. Everything else comes from the [[company store]], as well as upgrades.