diff --git a/levels/ghost_ship/ghost_ship_level.tscn b/levels/ghost_ship/ghost_ship_level.tscn index 07fd940..9c4f20b 100644 --- a/levels/ghost_ship/ghost_ship_level.tscn +++ b/levels/ghost_ship/ghost_ship_level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=118 format=4 uid="uid://crydi5cjgfwe5"] +[gd_scene load_steps=127 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://c2omlx4ptrc01" path="res://src/world/gunk_body/gunk_body.tscn" id="2_2egij"] @@ -35,6 +35,7 @@ [ext_resource type="Texture2D" uid="uid://1mr7tplfxcrc" path="res://assets/level/wall/wall_3_C.png" id="22_sqa4l"] [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="PackedScene" uid="uid://30o8ltnnxpxo" path="res://src/effects/floating_dust.tscn" id="25_6giaa"] [ext_resource type="Texture2D" uid="uid://dqkarguq5m5hn" path="res://assets/level/wall/wall_3_R.png" id="25_35kna"] [sub_resource type="CompressedTexture2D" id="CompressedTexture2D_rp2qp"] @@ -390,6 +391,44 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_smvh1") +[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] +point_count = 4 + +[sub_resource type="CurveTexture" id="CurveTexture_ty63v"] +curve = SubResource("Curve_w3xaq") + +[sub_resource type="Gradient" id="Gradient_yfel2"] +offsets = PackedFloat32Array(0, 0.1, 0.4, 0.6, 1) +colors = PackedColorArray(0.15, 0.15, 0.15, 1, 0.355313, 0.355314, 0.355313, 1, 0.356863, 0.356863, 0.356863, 1, 0.647059, 0.647059, 0.647059, 1, 0.15, 0.15, 0.15, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_w3xaq"] +gradient = SubResource("Gradient_yfel2") + +[sub_resource type="Curve" id="Curve_yfel2"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.746094, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_w3xaq"] +curve = SubResource("Curve_yfel2") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_otfxe"] +emission_shape = 3 +emission_box_extents = Vector3(4.5, 1.5, 4.5) +direction = Vector3(0, -1, 0) +spread = 100.0 +initial_velocity_min = 0.05 +initial_velocity_max = 0.15 +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_w3xaq") +color_ramp = SubResource("GradientTexture1D_w3xaq") +alpha_curve = SubResource("CurveTexture_ty63v") +turbulence_enabled = true +turbulence_noise_strength = 0.1 +turbulence_noise_scale = 0.3 +turbulence_influence_min = 0.0 + [sub_resource type="ShaderMaterial" id="ShaderMaterial_35kna"] resource_local_to_scene = true render_priority = 0 @@ -468,6 +507,22 @@ shadow_mesh = SubResource("ArrayMesh_okeuk") [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="ParticleProcessMaterial" id="ParticleProcessMaterial_6giaa"] +emission_shape = 3 +emission_box_extents = Vector3(1.5, 1.5, 6) +direction = Vector3(0, -1, 0) +spread = 100.0 +initial_velocity_min = 0.05 +initial_velocity_max = 0.15 +gravity = Vector3(0, 0, 0) +scale_curve = SubResource("CurveTexture_w3xaq") +color_ramp = SubResource("GradientTexture1D_w3xaq") +alpha_curve = SubResource("CurveTexture_ty63v") +turbulence_enabled = true +turbulence_noise_strength = 0.1 +turbulence_noise_scale = 0.3 +turbulence_influence_min = 0.0 + [sub_resource type="ShaderMaterial" id="ShaderMaterial_4a0u4"] resource_local_to_scene = true render_priority = 0 @@ -1013,6 +1068,11 @@ transform = Transform3D(0.5, 0, 0, 0, 0.353553, 0.353554, 0, -0.353554, 0.353553 [node name="GrunkNodule3" parent="Airlock" instance=ExtResource("19_ji5cn")] transform = Transform3D(0.5, 0, 0, 0, 0.353553, 0.353554, 0, -0.353554, 0.353553, 1.4, 2.65, -4.3) +[node name="FloatingDust" parent="Airlock" instance=ExtResource("25_6giaa")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +preprocess = 12.0 +process_material = SubResource("ParticleProcessMaterial_otfxe") + [node name="Corridor1" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -22.5) @@ -1025,6 +1085,11 @@ mesh = SubResource("ArrayMesh_d8p6j") [node name="CollisionShape3D" type="CollisionShape3D" parent="Corridor1/Hallway1"] shape = SubResource("ConcavePolygonShape3D_ruwlj") +[node name="FloatingDust" parent="Corridor1/Hallway1" instance=ExtResource("25_6giaa")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +preprocess = 12.0 +process_material = SubResource("ParticleProcessMaterial_6giaa") + [node name="T-Junction1" parent="Corridor1" instance=ExtResource("2_2egij")] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -7.5) mask_dim = 192 @@ -1071,6 +1136,11 @@ value = 800.0 transform = Transform3D(0.0773296, 0.288598, 0.1725, 0.0446463, 0.166622, -0.298779, -0.333244, 0.0892925, -7.54021e-09, -1.5, 1.12511, -1.75) value = 800.0 +[node name="FloatingDust" parent="Corridor1/Hallway2" instance=ExtResource("25_6giaa")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +preprocess = 12.0 +process_material = SubResource("ParticleProcessMaterial_6giaa") + [node name="Hallway3" parent="Corridor1" instance=ExtResource("2_2egij")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -19.5, 0, -7.5) source_gunk_material = SubResource("ShaderMaterial_d8p6j") @@ -1081,6 +1151,11 @@ mesh = SubResource("ArrayMesh_nmnkj") [node name="CollisionShape3D" type="CollisionShape3D" parent="Corridor1/Hallway3"] shape = SubResource("ConcavePolygonShape3D_ruwlj") +[node name="FloatingDust" parent="Corridor1/Hallway3" instance=ExtResource("25_6giaa")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +preprocess = 12.0 +process_material = SubResource("ParticleProcessMaterial_6giaa") + [node name="T-Junction2" parent="Corridor1" instance=ExtResource("2_2egij")] transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -27, 0, -7.5) mask_dim = 192 @@ -1113,5 +1188,10 @@ mesh = SubResource("ArrayMesh_6nvhk") [node name="CollisionShape3D" type="CollisionShape3D" parent="Corridor1/Hallway4"] shape = SubResource("ConcavePolygonShape3D_ruwlj") +[node name="FloatingDust" parent="Corridor1/Hallway4" instance=ExtResource("25_6giaa")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +preprocess = 12.0 +process_material = SubResource("ParticleProcessMaterial_6giaa") + [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"] diff --git a/src/effects/floating_dust.tscn b/src/effects/floating_dust.tscn index a7e5bfd..98e06bc 100644 --- a/src/effects/floating_dust.tscn +++ b/src/effects/floating_dust.tscn @@ -59,6 +59,7 @@ size = Vector2(0.02, 0.02) [node name="FloatingDust" type="GPUParticles3D"] amount = 32 lifetime = 12.0 +preprocess = 12.0 fixed_fps = 8 interpolate = false fract_delta = false diff --git a/vault/TODO.md b/vault/TODO.md index f67ac32..63a3efb 100644 --- a/vault/TODO.md +++ b/vault/TODO.md @@ -2,7 +2,7 @@ - [ ] Grunk basics - [x] Grunk shader - [x] Clear rate checking / signals - - [ ] [[nodules]] + - [x] [[nodules]] - [ ] #equipment - [ ] [[spray beam]] - [ ] Spray nozzle asset