Bulkhead mechanical component

This commit is contained in:
Rob Kelly 2025-03-10 17:00:30 -06:00
parent 70f24c51b8
commit bea891e786
13 changed files with 801 additions and 8 deletions

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
# Blender 4.3.2 MTL File: 'bulkhead.blend'
# www.blender.org

View File

@ -0,0 +1,148 @@
# Blender 4.3.2
# www.blender.org
mtllib bulkhead.mtl
o Frame
v -1.500000 0.000000 0.022500
v -1.500000 3.000000 0.022500
v -1.500000 0.000000 -0.022500
v -1.500000 3.000000 -0.022500
v 1.500000 0.000000 0.022500
v 1.500000 3.000000 0.022500
v 1.500000 0.000000 -0.022500
v 1.500000 3.000000 -0.022500
v -1.312500 2.562500 -0.022500
v -1.312500 0.437500 -0.022500
v 1.187500 2.687500 -0.022500
v 1.062500 2.812500 -0.022500
v -1.187500 0.312500 -0.022500
v -1.062500 2.812500 -0.022500
v -1.062500 0.187500 -0.022500
v 1.312500 2.562500 -0.022500
v 1.312500 0.437500 -0.022500
v 1.062500 0.187500 -0.022500
v -1.187500 2.687500 0.022500
v -1.062500 2.812500 0.022500
v 1.312500 2.562500 0.022500
v 1.312500 0.437500 0.022500
v 1.187500 0.312500 0.022500
v 1.062500 2.812500 0.022500
v -1.312500 0.437500 0.022500
v -1.312500 2.562500 0.022500
v 1.062500 0.187500 0.022500
v -1.062500 0.187500 0.022500
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 1.0000
vn -0.0000 -1.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vn 0.7071 0.7071 -0.0000
vn 0.7071 -0.7071 -0.0000
vn -0.7071 0.7071 -0.0000
vn -0.7071 -0.7071 -0.0000
vt 0.507812 0.835938
vt 0.890625 0.835938
vt 0.890625 0.890625
vt 0.507812 0.890625
vt 0.562500 0.023438
vt 0.546875 0.039062
vt 0.507812 -0.000000
vt 0.890625 -0.000000
vt 0.890625 0.390625
vt 0.851562 0.351562
vt 0.867188 0.328125
vt 0.867188 0.054688
vt 0.835938 0.023438
vt 0.835938 0.367188
vt 0.507812 0.390625
vt 0.531250 0.054688
vt 0.531250 0.328125
vt 0.562500 0.367188
vt 0.890625 0.445312
vt 0.507812 0.445312
vt 0.562500 0.468750
vt 0.546875 0.484375
vt 0.851562 0.796875
vt 0.867188 0.773438
vt 0.867188 0.500000
vt 0.835938 0.468750
vt 0.531250 0.500000
vt 0.531250 0.773438
vt 0.562500 0.812500
vt 0.835938 0.812500
vt 1.000000 0.617188
vt 1.000000 0.992188
vt 0.945312 0.992188
vt 0.945312 0.617188
vt 0.890625 0.992188
vt 0.890625 0.617188
vt 0.945312 0.000000
vt 0.945312 0.265625
vt 0.890625 0.265625
vt 0.945312 0.312500
vt 0.945312 0.046875
vt 1.000000 0.046875
vt 1.000000 0.312500
vt 0.945312 0.351562
vt 1.000000 0.351562
vt 0.890625 0.578125
vt 0.945312 0.578125
vt 0.945312 0.593750
vt 1.000000 0.328125
vt 0.890625 0.312500
vt 0.890625 0.289062
vt 0.945312 0.023438
vt 1.000000 0.000000
s 0
f 1/1/1 2/2/1 4/3/1 3/4/1
f 10/5/2 13/6/2 3/7/2 4/8/2 8/9/2 11/10/2 12/11/2 14/12/2 9/13/2
f 16/14/2 11/10/2 8/9/2 7/15/2 3/7/2 13/6/2 15/16/2 18/17/2 17/18/2
f 7/15/3 8/9/3 6/19/3 5/20/3
f 22/21/4 23/22/4 5/20/4 6/19/4 2/2/4 19/23/4 20/24/4 24/25/4 21/26/4
f 2/2/4 1/1/4 5/20/4 23/22/4 27/27/4 28/28/4 25/29/4 26/30/4 19/23/4
f 3/31/5 7/32/5 5/33/5 1/34/5
f 8/35/6 4/36/6 2/34/6 6/33/6
f 21/8/1 16/37/1 17/38/1 22/39/1
f 14/40/5 12/41/5 24/42/5 20/43/5
f 25/31/3 10/34/3 9/44/3 26/45/3
f 28/46/7 15/47/7 13/48/7 10/34/7 25/36/7
f 9/44/8 14/40/8 20/43/8 19/49/8 26/45/8
f 22/39/9 17/38/9 18/40/9 27/50/9 23/51/9
f 12/41/10 11/52/10 16/37/10 21/53/10 24/42/10
f 27/50/6 18/40/6 15/47/6 28/46/6
o Door
v -1.400000 0.100000 0.014000
v -1.400000 2.900000 0.014000
v -1.400000 0.100000 -0.014000
v -1.400000 2.900000 -0.014000
v 1.400000 0.100000 0.014000
v 1.400000 2.900000 0.014000
v 1.400000 0.100000 -0.014000
v 1.400000 2.900000 -0.014000
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 1.0000
vn -0.0000 -1.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vt 0.039062 0.468750
vt 0.039062 0.898438
vt 0.000000 0.898438
vt 0.000000 0.468750
vt 0.039062 0.429688
vt 0.039062 0.000000
vt 0.468750 0.000000
vt 0.468750 0.429688
vt 0.507812 0.468750
vt 0.507812 0.898438
vt 0.468750 0.898438
vt 0.468750 0.468750
vt 0.468750 0.937500
vt 0.039062 0.937500
s 0
f 29/54/11 30/55/11 32/56/11 31/57/11
f 31/58/12 32/59/12 36/60/12 35/61/12
f 35/62/13 36/63/13 34/64/13 33/65/13
f 33/65/14 34/64/14 30/55/14 29/54/14
f 31/58/15 35/61/15 33/65/15 29/54/15
f 36/66/16 32/67/16 30/55/16 34/64/16

Binary file not shown.

View File

@ -0,0 +1,461 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v4.3.47",
"version":"2.0"
},
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0,
1
]
}
],
"nodes":[
{
"mesh":0,
"name":"Frame"
},
{
"mesh":1,
"name":"Door"
}
],
"animations":[
{
"channels":[
{
"sampler":0,
"target":{
"node":0,
"path":"translation"
}
},
{
"sampler":1,
"target":{
"node":0,
"path":"rotation"
}
},
{
"sampler":2,
"target":{
"node":0,
"path":"scale"
}
}
],
"name":"RESET",
"samplers":[
{
"input":8,
"interpolation":"LINEAR",
"output":9
},
{
"input":8,
"interpolation":"LINEAR",
"output":10
},
{
"input":8,
"interpolation":"LINEAR",
"output":11
}
]
},
{
"channels":[
{
"sampler":0,
"target":{
"node":1,
"path":"translation"
}
},
{
"sampler":1,
"target":{
"node":1,
"path":"rotation"
}
},
{
"sampler":2,
"target":{
"node":1,
"path":"scale"
}
}
],
"name":"open",
"samplers":[
{
"input":12,
"interpolation":"LINEAR",
"output":13
},
{
"input":14,
"interpolation":"STEP",
"output":15
},
{
"input":14,
"interpolation":"STEP",
"output":16
}
]
},
{
"channels":[
{
"sampler":0,
"target":{
"node":1,
"path":"translation"
}
},
{
"sampler":1,
"target":{
"node":1,
"path":"rotation"
}
},
{
"sampler":2,
"target":{
"node":1,
"path":"scale"
}
}
],
"name":"RESET",
"samplers":[
{
"input":8,
"interpolation":"LINEAR",
"output":17
},
{
"input":8,
"interpolation":"LINEAR",
"output":18
},
{
"input":8,
"interpolation":"LINEAR",
"output":19
}
]
}
],
"meshes":[
{
"name":"Cube.001",
"primitives":[
{
"attributes":{
"POSITION":0,
"NORMAL":1,
"TEXCOORD_0":2
},
"indices":3
}
]
},
{
"name":"Cube.003",
"primitives":[
{
"attributes":{
"POSITION":4,
"NORMAL":5,
"TEXCOORD_0":6
},
"indices":7
}
]
}
],
"accessors":[
{
"bufferView":0,
"componentType":5126,
"count":80,
"max":[
1.5,
3,
0.22499999403953552
],
"min":[
-1.5,
0,
-0.22499999403953552
],
"type":"VEC3"
},
{
"bufferView":1,
"componentType":5126,
"count":80,
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":80,
"type":"VEC2"
},
{
"bufferView":3,
"componentType":5123,
"count":168,
"type":"SCALAR"
},
{
"bufferView":4,
"componentType":5126,
"count":24,
"max":[
1.399999976158142,
2.9000000953674316,
0.14000003039836884
],
"min":[
-1.399999976158142,
0.10000002384185791,
-0.14000003039836884
],
"type":"VEC3"
},
{
"bufferView":5,
"componentType":5126,
"count":24,
"type":"VEC3"
},
{
"bufferView":6,
"componentType":5126,
"count":24,
"type":"VEC2"
},
{
"bufferView":7,
"componentType":5123,
"count":36,
"type":"SCALAR"
},
{
"bufferView":8,
"componentType":5126,
"count":1,
"max":[
0.041666666666666664
],
"min":[
0.041666666666666664
],
"type":"SCALAR"
},
{
"bufferView":9,
"componentType":5126,
"count":1,
"type":"VEC3"
},
{
"bufferView":10,
"componentType":5126,
"count":1,
"type":"VEC4"
},
{
"bufferView":11,
"componentType":5126,
"count":1,
"type":"VEC3"
},
{
"bufferView":12,
"componentType":5126,
"count":160,
"max":[
6.666666666666667
],
"min":[
0.041666666666666664
],
"type":"SCALAR"
},
{
"bufferView":13,
"componentType":5126,
"count":160,
"type":"VEC3"
},
{
"bufferView":14,
"componentType":5126,
"count":2,
"max":[
6.666666666666667
],
"min":[
0.041666666666666664
],
"type":"SCALAR"
},
{
"bufferView":15,
"componentType":5126,
"count":2,
"type":"VEC4"
},
{
"bufferView":16,
"componentType":5126,
"count":2,
"type":"VEC3"
},
{
"bufferView":17,
"componentType":5126,
"count":1,
"type":"VEC3"
},
{
"bufferView":18,
"componentType":5126,
"count":1,
"type":"VEC4"
},
{
"bufferView":19,
"componentType":5126,
"count":1,
"type":"VEC3"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":960,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":960,
"byteOffset":960,
"target":34962
},
{
"buffer":0,
"byteLength":640,
"byteOffset":1920,
"target":34962
},
{
"buffer":0,
"byteLength":336,
"byteOffset":2560,
"target":34963
},
{
"buffer":0,
"byteLength":288,
"byteOffset":2896,
"target":34962
},
{
"buffer":0,
"byteLength":288,
"byteOffset":3184,
"target":34962
},
{
"buffer":0,
"byteLength":192,
"byteOffset":3472,
"target":34962
},
{
"buffer":0,
"byteLength":72,
"byteOffset":3664,
"target":34963
},
{
"buffer":0,
"byteLength":4,
"byteOffset":3736
},
{
"buffer":0,
"byteLength":12,
"byteOffset":3740
},
{
"buffer":0,
"byteLength":16,
"byteOffset":3752
},
{
"buffer":0,
"byteLength":12,
"byteOffset":3768
},
{
"buffer":0,
"byteLength":640,
"byteOffset":3780
},
{
"buffer":0,
"byteLength":1920,
"byteOffset":4420
},
{
"buffer":0,
"byteLength":8,
"byteOffset":6340
},
{
"buffer":0,
"byteLength":32,
"byteOffset":6348
},
{
"buffer":0,
"byteLength":24,
"byteOffset":6380
},
{
"buffer":0,
"byteLength":12,
"byteOffset":6404
},
{
"buffer":0,
"byteLength":16,
"byteOffset":6416
},
{
"buffer":0,
"byteLength":12,
"byteOffset":6432
}
],
"buffers":[
{
"byteLength":6444,
"uri":"bulkhead.bin"
}
]
}

View File

@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bopvgd18a1dl0"
path="res://.godot/imported/bulkhead.gltf-0b1343ef1731bb312f97ce941e1c0cec.scn"
[deps]
source_file="res://assets/props/bulkhead/bulkhead.gltf"
dest_files=["res://.godot/imported/bulkhead.gltf-0b1343ef1731bb312f97ce941e1c0cec.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=106 format=4 uid="uid://crydi5cjgfwe5"] [gd_scene load_steps=110 format=4 uid="uid://crydi5cjgfwe5"]
[ext_resource type="PackedScene" uid="uid://oowut88kr2ox" path="res://levels/ghost_ship/player_ship/player_ship.tscn" id="1_2pyr1"] [ext_resource type="PackedScene" uid="uid://oowut88kr2ox" path="res://levels/ghost_ship/player_ship/player_ship.tscn" id="1_2pyr1"]
[ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_2egij"] [ext_resource type="PackedScene" uid="uid://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_2egij"]
@ -17,6 +17,7 @@
[ext_resource type="Texture2D" uid="uid://cpdrvdu3qt62t" path="res://assets/level/wall/wall_2_N.png" id="15_rp2qp"] [ext_resource type="Texture2D" uid="uid://cpdrvdu3qt62t" path="res://assets/level/wall/wall_2_N.png" id="15_rp2qp"]
[ext_resource type="Texture2D" uid="uid://ba5vvrx730go8" path="res://assets/level/wall/wall_2_R.png" id="16_if0c2"] [ext_resource type="Texture2D" uid="uid://ba5vvrx730go8" path="res://assets/level/wall/wall_2_R.png" id="16_if0c2"]
[ext_resource type="PackedScene" uid="uid://b6eg8t04rkh0c" path="res://src/props/wall_switch/wall_switch.tscn" id="17_0idgf"] [ext_resource type="PackedScene" uid="uid://b6eg8t04rkh0c" path="res://src/props/wall_switch/wall_switch.tscn" id="17_0idgf"]
[ext_resource type="PackedScene" uid="uid://dvma1hufsl6mc" path="res://src/props/bulkhead/bulkhead.tscn" id="18_17ivy"]
[ext_resource type="Texture2D" uid="uid://ckgmc6j7r0rh1" path="res://assets/level/t-junction/t-junction_2_C.png" id="18_qu6vm"] [ext_resource type="Texture2D" uid="uid://ckgmc6j7r0rh1" path="res://assets/level/t-junction/t-junction_2_C.png" id="18_qu6vm"]
[ext_resource type="Texture2D" uid="uid://cjbem2fg50idh" path="res://assets/level/t-junction/t-junction_1_C.png" id="18_sqa4l"] [ext_resource type="Texture2D" uid="uid://cjbem2fg50idh" path="res://assets/level/t-junction/t-junction_1_C.png" id="18_sqa4l"]
[ext_resource type="Texture2D" uid="uid://cgsvlb8qc5yml" path="res://assets/level/t-junction/t-junction_1_M.png" id="19_17ivy"] [ext_resource type="Texture2D" uid="uid://cgsvlb8qc5yml" path="res://assets/level/t-junction/t-junction_1_M.png" id="19_17ivy"]
@ -29,7 +30,6 @@
[ext_resource type="Texture2D" uid="uid://cwqr6plpp3aov" path="res://assets/level/wall/wall_3_M.png" id="23_17ivy"] [ext_resource type="Texture2D" uid="uid://cwqr6plpp3aov" path="res://assets/level/wall/wall_3_M.png" id="23_17ivy"]
[ext_resource type="Texture2D" uid="uid://qw6yjgadiv5f" path="res://assets/level/wall/wall_3_N.png" id="24_ji5cn"] [ext_resource type="Texture2D" uid="uid://qw6yjgadiv5f" path="res://assets/level/wall/wall_3_N.png" id="24_ji5cn"]
[ext_resource type="Texture2D" uid="uid://dqkarguq5m5hn" path="res://assets/level/wall/wall_3_R.png" id="25_35kna"] [ext_resource type="Texture2D" uid="uid://dqkarguq5m5hn" path="res://assets/level/wall/wall_3_R.png" id="25_35kna"]
[ext_resource type="Material" uid="uid://c1vy4bkwb1g5m" path="res://assets/materials/gunk_lowrez.material" id="26_17ivy"]
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_rp2qp"] [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_rp2qp"]
load_path = "res://.godot/imported/debug_mask.png-fd2bc783338ed9439fe81a4eef9d86da.s3tc.ctex" load_path = "res://.godot/imported/debug_mask.png-fd2bc783338ed9439fe81a4eef9d86da.s3tc.ctex"
@ -650,6 +650,44 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_ncghj") shadow_mesh = SubResource("ArrayMesh_ncghj")
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_ji5cn"]
load_path = "res://.godot/imported/debug_mask.png-fd2bc783338ed9439fe81a4eef9d86da.s3tc.ctex"
[sub_resource type="NoiseTexture3D" id="NoiseTexture3D_35kna"]
width = 256
height = 256
depth = 32
seamless = true
seamless_blend_skirt = 0.5
noise = ExtResource("6_3kphg")
[sub_resource type="NoiseTexture3D" id="NoiseTexture3D_4a0u4"]
width = 256
height = 256
depth = 32
seamless = true
seamless_blend_skirt = 0.5
noise = ExtResource("6_3kphg")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_6giaa"]
resource_local_to_scene = true
render_priority = 0
shader = ExtResource("5_1njh5")
shader_parameter/color_1 = Color(0, 0.03, 0.1, 1)
shader_parameter/color_2 = Color(0, 0.1, 0.3, 1)
shader_parameter/emission_color = Color(0.25, 0.88, 1, 1)
shader_parameter/pixellation = 128.0
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/uv_scale = Vector2(2, 2)
shader_parameter/time_scale = 0.2
shader_parameter/edge_bleed = 0.25
shader_parameter/gunk_mask = SubResource("CompressedTexture2D_ji5cn")
shader_parameter/gunk_noise = SubResource("NoiseTexture3D_35kna")
shader_parameter/gunk_normal_map = SubResource("NoiseTexture3D_4a0u4")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sqa4l"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_sqa4l"]
resource_local_to_scene = true resource_local_to_scene = true
albedo_texture = ExtResource("22_sqa4l") albedo_texture = ExtResource("22_sqa4l")
@ -883,6 +921,8 @@ shape = SubResource("ConcavePolygonShape3D_p11ap")
[node name="WallSwitch" parent="Airlock/FarWall" instance=ExtResource("17_0idgf")] [node name="WallSwitch" parent="Airlock/FarWall" instance=ExtResource("17_0idgf")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 1.5, 0.1) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 1.5, 0.1)
[node name="Bulkhead" parent="Airlock/FarWall" instance=ExtResource("18_17ivy")]
[node name="Corridor1" type="Node3D" parent="."] [node name="Corridor1" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -22.5) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -22.5)
@ -906,6 +946,9 @@ mesh = SubResource("ArrayMesh_otfxe")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Corridor1/T-Junction1"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Corridor1/T-Junction1"]
shape = SubResource("ConcavePolygonShape3D_if0c2") shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="Bulkhead1" parent="Corridor1" instance=ExtResource("18_17ivy")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 1.5, 0, -7.5)
[node name="Hallway2" parent="Corridor1" instance=ExtResource("2_2egij")] [node name="Hallway2" parent="Corridor1" instance=ExtResource("2_2egij")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -7.5, 0, -7.5) transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -7.5, 0, -7.5)
source_gunk_material = SubResource("ShaderMaterial_okeuk") source_gunk_material = SubResource("ShaderMaterial_okeuk")
@ -940,7 +983,7 @@ shape = SubResource("ConcavePolygonShape3D_if0c2")
[node name="EndCap" parent="Corridor1" instance=ExtResource("2_2egij")] [node name="EndCap" parent="Corridor1" instance=ExtResource("2_2egij")]
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) 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)
mask_dim = 64 mask_dim = 64
source_gunk_material = ExtResource("26_17ivy") source_gunk_material = SubResource("ShaderMaterial_6giaa")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Corridor1/EndCap"] [node name="MeshInstance3D" type="MeshInstance3D" parent="Corridor1/EndCap"]
mesh = SubResource("ArrayMesh_ji5cn") mesh = SubResource("ArrayMesh_ji5cn")
@ -957,3 +1000,6 @@ mesh = SubResource("ArrayMesh_6nvhk")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Corridor1/Hallway4"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Corridor1/Hallway4"]
shape = SubResource("ConcavePolygonShape3D_ruwlj") shape = SubResource("ConcavePolygonShape3D_ruwlj")
[connection signal="activated" from="Airlock/FarWall/WallSwitch" to="Airlock/FarWall/WallSwitch" method="disable"]
[connection signal="activated" from="Airlock/FarWall/WallSwitch" to="Airlock/FarWall/Bulkhead" method="open"]

View File

@ -0,0 +1,7 @@
extends Node3D
@onready var animation: AnimationPlayer = $AnimationPlayer
func open() -> void:
animation.play("open")

View File

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

View File

@ -0,0 +1,23 @@
[gd_scene load_steps=5 format=3 uid="uid://dvma1hufsl6mc"]
[ext_resource type="PackedScene" uid="uid://bopvgd18a1dl0" path="res://assets/props/bulkhead/bulkhead.gltf" id="1_77udb"]
[ext_resource type="Script" uid="uid://rjygr6ybnl30" path="res://src/props/bulkhead/bulkhead.gd" id="2_hknvo"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_hknvo"]
data = PackedVector3Array(-1.5, 0, 0.225, -1.5, 3, -0.225, -1.5, 3, 0.225, -1.5, 0, 0.225, -1.5, 0, -0.225, -1.5, 3, -0.225, -1.3125, 0.4375, -0.225, -1.5, 0, -0.225, -1.1875, 0.3125, -0.225, -1.5, 0, -0.225, -1.0625, 0.1875, -0.225, -1.1875, 0.3125, -0.225, -1.5, 0, -0.225, 1.0625, 0.1875, -0.225, -1.0625, 0.1875, -0.225, -1.3125, 0.4375, -0.225, -1.5, 3, -0.225, -1.5, 0, -0.225, 1.5, 0, -0.225, 1.0625, 0.1875, -0.225, -1.5, 0, -0.225, -1.3125, 2.5625, -0.225, -1.5, 3, -0.225, -1.3125, 0.4375, -0.225, 1.5, 0, -0.225, 1.3125, 0.4375, -0.225, 1.0625, 0.1875, -0.225, -1.5, 3, -0.225, -1.3125, 2.5625, -0.225, -1.0625, 2.8125, -0.225, 1.3125, 0.4375, -0.225, 1.5, 0, -0.225, 1.3125, 2.5625, -0.225, -1.5, 3, -0.225, -1.0625, 2.8125, -0.225, 1.5, 3, -0.225, 1.3125, 2.5625, -0.225, 1.5, 0, -0.225, 1.5, 3, -0.225, 1.5, 3, -0.225, -1.0625, 2.8125, -0.225, 1.0625, 2.8125, -0.225, 1.3125, 2.5625, -0.225, 1.5, 3, -0.225, 1.1875, 2.6875, -0.225, 1.5, 3, -0.225, 1.0625, 2.8125, -0.225, 1.1875, 2.6875, -0.225, 1.5, 0, -0.225, 1.5, 3, 0.225, 1.5, 3, -0.225, 1.5, 0, -0.225, 1.5, 0, 0.225, 1.5, 3, 0.225, 1.3125, 0.4375, 0.225, 1.5, 0, 0.225, 1.1875, 0.3125, 0.225, 1.5, 0, 0.225, 1.0625, 0.1875, 0.225, 1.1875, 0.3125, 0.225, 1.5, 0, 0.225, -1.0625, 0.1875, 0.225, 1.0625, 0.1875, 0.225, 1.3125, 0.4375, 0.225, 1.5, 3, 0.225, 1.5, 0, 0.225, -1.5, 0, 0.225, -1.0625, 0.1875, 0.225, 1.5, 0, 0.225, 1.3125, 2.5625, 0.225, 1.5, 3, 0.225, 1.3125, 0.4375, 0.225, -1.5, 0, 0.225, -1.3125, 0.4375, 0.225, -1.0625, 0.1875, 0.225, 1.5, 3, 0.225, 1.3125, 2.5625, 0.225, 1.0625, 2.8125, 0.225, -1.3125, 0.4375, 0.225, -1.5, 0, 0.225, -1.5, 3, 0.225, 1.5, 3, 0.225, 1.0625, 2.8125, 0.225, -1.5, 3, 0.225, -1.3125, 0.4375, 0.225, -1.5, 3, 0.225, -1.3125, 2.5625, 0.225, -1.5, 3, 0.225, 1.0625, 2.8125, 0.225, -1.0625, 2.8125, 0.225, -1.3125, 2.5625, 0.225, -1.5, 3, 0.225, -1.1875, 2.6875, 0.225, -1.5, 3, 0.225, -1.0625, 2.8125, 0.225, -1.1875, 2.6875, 0.225, -1.5, 0, -0.225, 1.5, 0, 0.225, 1.5, 0, -0.225, -1.5, 0, -0.225, -1.5, 0, 0.225, 1.5, 0, 0.225, 1.5, 3, -0.225, -1.5, 3, 0.225, -1.5, 3, -0.225, 1.5, 3, -0.225, 1.5, 3, 0.225, -1.5, 3, 0.225, 1.3125, 2.5625, 0.225, 1.3125, 0.4375, -0.225, 1.3125, 2.5625, -0.225, 1.3125, 2.5625, 0.225, 1.3125, 0.4375, 0.225, 1.3125, 0.4375, -0.225, -1.0625, 2.8125, -0.225, 1.0625, 2.8125, 0.225, 1.0625, 2.8125, -0.225, -1.0625, 2.8125, -0.225, -1.0625, 2.8125, 0.225, 1.0625, 2.8125, 0.225, -1.3125, 0.4375, 0.225, -1.3125, 2.5625, -0.225, -1.3125, 0.4375, -0.225, -1.3125, 0.4375, 0.225, -1.3125, 2.5625, 0.225, -1.3125, 2.5625, -0.225, -1.3125, 0.4375, 0.225, -1.0625, 0.1875, -0.225, -1.0625, 0.1875, 0.225, -1.0625, 0.1875, -0.225, -1.3125, 0.4375, 0.225, -1.1875, 0.3125, -0.225, -1.1875, 0.3125, -0.225, -1.3125, 0.4375, 0.225, -1.3125, 0.4375, -0.225, -1.3125, 2.5625, 0.225, -1.0625, 2.8125, -0.225, -1.3125, 2.5625, -0.225, -1.0625, 2.8125, -0.225, -1.3125, 2.5625, 0.225, -1.1875, 2.6875, 0.225, -1.0625, 2.8125, -0.225, -1.1875, 2.6875, 0.225, -1.0625, 2.8125, 0.225, 1.1875, 0.3125, 0.225, 1.3125, 0.4375, -0.225, 1.3125, 0.4375, 0.225, 1.3125, 0.4375, -0.225, 1.1875, 0.3125, 0.225, 1.0625, 0.1875, 0.225, 1.3125, 0.4375, -0.225, 1.0625, 0.1875, 0.225, 1.0625, 0.1875, -0.225, 1.0625, 2.8125, 0.225, 1.1875, 2.6875, -0.225, 1.0625, 2.8125, -0.225, 1.1875, 2.6875, -0.225, 1.0625, 2.8125, 0.225, 1.3125, 2.5625, 0.225, 1.1875, 2.6875, -0.225, 1.3125, 2.5625, 0.225, 1.3125, 2.5625, -0.225, 1.0625, 0.1875, 0.225, -1.0625, 0.1875, -0.225, 1.0625, 0.1875, -0.225, 1.0625, 0.1875, 0.225, -1.0625, 0.1875, 0.225, -1.0625, 0.1875, -0.225)
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_88qrs"]
data = PackedVector3Array(-1.4, 0.1, 0.14, -1.4, 2.9, -0.14, -1.4, 2.9, 0.14, -1.4, 0.1, 0.14, -1.4, 0.1, -0.14, -1.4, 2.9, -0.14, -1.4, 0.1, -0.14, 1.4, 2.9, -0.14, -1.4, 2.9, -0.14, -1.4, 0.1, -0.14, 1.4, 0.1, -0.14, 1.4, 2.9, -0.14, 1.4, 0.1, -0.14, 1.4, 2.9, 0.14, 1.4, 2.9, -0.14, 1.4, 0.1, -0.14, 1.4, 0.1, 0.14, 1.4, 2.9, 0.14, 1.4, 0.1, 0.14, -1.4, 2.9, 0.14, 1.4, 2.9, 0.14, 1.4, 0.1, 0.14, -1.4, 0.1, 0.14, -1.4, 2.9, 0.14, -1.4, 0.1, -0.14, 1.4, 0.1, 0.14, 1.4, 0.1, -0.14, -1.4, 0.1, -0.14, -1.4, 0.1, 0.14, 1.4, 0.1, 0.14, 1.4, 2.9, -0.14, -1.4, 2.9, 0.14, -1.4, 2.9, -0.14, 1.4, 2.9, -0.14, 1.4, 2.9, 0.14, -1.4, 2.9, 0.14)
[node name="Bulkhead" instance=ExtResource("1_77udb")]
script = ExtResource("2_hknvo")
[node name="StaticBody3D" type="StaticBody3D" parent="Frame" index="0"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame/StaticBody3D" index="0"]
shape = SubResource("ConcavePolygonShape3D_hknvo")
[node name="StaticBody3D" type="StaticBody3D" parent="Door" index="0"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Door/StaticBody3D" index="0"]
shape = SubResource("ConcavePolygonShape3D_88qrs")

View File

@ -18,6 +18,7 @@ func _ready() -> void:
enable() enable()
## Called once all gunk is cleared. Enables interaction & plays animations
func enable() -> void: func enable() -> void:
enabled = true enabled = true
@ -27,6 +28,15 @@ func enable() -> void:
interactive.enabled = true interactive.enabled = true
## Called once the switch is no longer usable. Disables interaction & plays animations
func disable() -> void:
if enabled:
light_animation.queue("disable")
enabled = false
interactive.enabled = false
func _activate() -> void: func _activate() -> void:
animation_player.play("activate") animation_player.play("activate")
activated.emit() activated.emit()
@ -34,8 +44,9 @@ func _activate() -> void:
interactive.enabled = false interactive.enabled = false
func _animation_finished(_anim_name: StringName) -> void: func _animation_finished(anim_name: StringName) -> void:
interactive.enabled = true if anim_name == "activate":
interactive.enabled = enabled
func _on_gunk_body_clear_total_updated(clear_total: float) -> void: func _on_gunk_body_clear_total_updated(clear_total: float) -> void:

File diff suppressed because one or more lines are too long