generated from krampus/template-godot4
This commit is contained in:
parent
4f6789f5c6
commit
3284538726
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=28 format=4 uid="uid://b8rv6dg4tgaeb"]
|
||||
[gd_scene load_steps=42 format=4 uid="uid://b8rv6dg4tgaeb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bvua1l2hb3an6" path="res://levels/mechanic_test/mechanic_test.gd" id="1_bg05n"]
|
||||
[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="1_goufh"]
|
||||
@ -8,6 +8,12 @@
|
||||
[ext_resource type="Texture2D" uid="uid://8cm835h4gxwe" path="res://assets/debug_mask.png" id="5_x2vho"]
|
||||
[ext_resource type="FastNoiseLite" uid="uid://cnlvdtx68giv6" path="res://assets/materials/gunk_noise.tres" id="6_x2vho"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvma1hufsl6mc" path="res://src/props/bulkhead/bulkhead.tscn" id="8_0j1ke"]
|
||||
[ext_resource type="Texture2D" uid="uid://m2qxenym1otw" path="res://assets/level/wall/wall_2_C.png" id="9_cgmn0"]
|
||||
[ext_resource type="Texture2D" uid="uid://begn6qloo0m1q" path="res://assets/level/wall/wall_2_M.png" id="10_aix42"]
|
||||
[ext_resource type="PackedScene" uid="uid://bttust5ohud8e" path="res://src/world/mechanics/relay/gunk_relay.tscn" id="10_iyuyb"]
|
||||
[ext_resource type="Texture2D" uid="uid://cpdrvdu3qt62t" path="res://assets/level/wall/wall_2_N.png" id="11_6frcc"]
|
||||
[ext_resource type="PackedScene" uid="uid://dgeg3kkogm71m" path="res://src/world/mechanics/alarm/gunk_alarm.tscn" id="11_qjnj2"]
|
||||
[ext_resource type="Texture2D" uid="uid://ba5vvrx730go8" path="res://assets/level/wall/wall_2_R.png" id="12_7cbja"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_goufh"]
|
||||
|
||||
@ -126,6 +132,92 @@ 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_f342o"]
|
||||
load_path = "res://.godot/imported/debug_mask.png-fd2bc783338ed9439fe81a4eef9d86da.s3tc.ctex"
|
||||
|
||||
[sub_resource type="NoiseTexture3D" id="NoiseTexture3D_iyuyb"]
|
||||
width = 256
|
||||
height = 256
|
||||
depth = 32
|
||||
seamless = true
|
||||
seamless_blend_skirt = 0.5
|
||||
noise = ExtResource("6_x2vho")
|
||||
|
||||
[sub_resource type="NoiseTexture3D" id="NoiseTexture3D_qjnj2"]
|
||||
width = 256
|
||||
height = 256
|
||||
depth = 32
|
||||
seamless = true
|
||||
seamless_blend_skirt = 0.5
|
||||
noise = ExtResource("6_x2vho")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_awnx0"]
|
||||
resource_local_to_scene = true
|
||||
render_priority = 0
|
||||
shader = ExtResource("5_0j1ke")
|
||||
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(4, 4)
|
||||
shader_parameter/time_scale = 0.2
|
||||
shader_parameter/edge_bleed = 0.25
|
||||
shader_parameter/gunk_mask = SubResource("CompressedTexture2D_f342o")
|
||||
shader_parameter/gunk_noise = SubResource("NoiseTexture3D_iyuyb")
|
||||
shader_parameter/gunk_normal_map = SubResource("NoiseTexture3D_qjnj2")
|
||||
shader_parameter/jitter_magnitude = 0.0
|
||||
shader_parameter/jitter_time_scale = 0.1
|
||||
shader_parameter/vertex_inflation = 0.0
|
||||
shader_parameter/inflation_pixellation = 10.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ujrcv"]
|
||||
resource_local_to_scene = true
|
||||
albedo_texture = ExtResource("9_cgmn0")
|
||||
metallic = 1.0
|
||||
metallic_texture = ExtResource("10_aix42")
|
||||
roughness_texture = ExtResource("12_7cbja")
|
||||
normal_enabled = true
|
||||
normal_texture = ExtResource("11_6frcc")
|
||||
texture_filter = 4
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_ix0jw"]
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-1.5, 0, -1.5, 3, 1e-05, 3),
|
||||
"format": 34896613377,
|
||||
"index_count": 6,
|
||||
"index_data": PackedByteArray("AAABAAIAAgABAAMA"),
|
||||
"name": "Plane",
|
||||
"primitive": 3,
|
||||
"uv_scale": Vector4(0, 0, 0, 0),
|
||||
"vertex_count": 4,
|
||||
"vertex_data": PackedByteArray("//8AAP//AAAAAAAA//8AAP//AAAAAAAAAAAAAAAAAAA=")
|
||||
}]
|
||||
blend_shape_mode = 0
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_xrfi2"]
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-1.5, 0, -1.5, 3, 1e-05, 3),
|
||||
"attribute_data": PackedByteArray("/////wAA/////wAAAAAAAA=="),
|
||||
"format": 34896613399,
|
||||
"index_count": 6,
|
||||
"index_data": PackedByteArray("AAABAAIAAgABAAMA"),
|
||||
"material": SubResource("StandardMaterial3D_ujrcv"),
|
||||
"name": "Plane",
|
||||
"primitive": 3,
|
||||
"uv_scale": Vector4(0, 0, 0, 0),
|
||||
"vertex_count": 4,
|
||||
"vertex_data": PackedByteArray("//8AAP///78AAAAA////v///AAAAAP+/AAAAAAAA/7////9/////f////3////9/")
|
||||
}]
|
||||
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)
|
||||
|
||||
[node name="MechanicTest" type="Node3D"]
|
||||
script = ExtResource("1_bg05n")
|
||||
|
||||
@ -276,6 +368,34 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.4, 0.35)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0.3)
|
||||
text = "Close"
|
||||
|
||||
[node name="SignalTest" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, -6)
|
||||
|
||||
[node name="Wall" parent="SignalTest" instance=ExtResource("4_2uiim")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.5, 0)
|
||||
source_gunk_material = SubResource("ShaderMaterial_awnx0")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="SignalTest/Wall"]
|
||||
mesh = SubResource("ArrayMesh_xrfi2")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="SignalTest/Wall"]
|
||||
shape = SubResource("ConcavePolygonShape3D_x2vho")
|
||||
|
||||
[node name="WallSwitch" parent="SignalTest" instance=ExtResource("2_pka60")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.15, 1.45, 0.0999999)
|
||||
|
||||
[node name="GunkRelay" parent="SignalTest" instance=ExtResource("10_iyuyb")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.45, 2.1, 0)
|
||||
|
||||
[node name="GunkRelay2" parent="SignalTest" instance=ExtResource("10_iyuyb")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.15, 1.75, 0)
|
||||
|
||||
[node name="GunkRelay3" parent="SignalTest" instance=ExtResource("10_iyuyb")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.2, 1.95, 0)
|
||||
|
||||
[node name="GunkAlarm" parent="SignalTest" instance=ExtResource("11_qjnj2")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0.9, 1.75, 0)
|
||||
|
||||
[connection signal="activated" from="ResetPodium/ResetSwitch" to="." method="reset"]
|
||||
[connection signal="activated" from="NoduleSpawner/WallSwitch" to="." method="spawn_nodule"]
|
||||
[connection signal="activated" from="AlarmSpawner/WallSwitch" to="." method="spawn_alarm"]
|
||||
@ -286,3 +406,7 @@ text = "Close"
|
||||
[connection signal="activated" from="Bulkhead/Podium2/CloseSwitch" to="Bulkhead" method="close"]
|
||||
[connection signal="activated" from="Bulkhead/Podium2/CloseSwitch" to="Bulkhead/Podium/OpenSwitch" method="enable"]
|
||||
[connection signal="activated" from="Bulkhead/Podium2/CloseSwitch" to="Bulkhead/Podium2/CloseSwitch" method="disable"]
|
||||
[connection signal="activated" from="SignalTest/WallSwitch" to="SignalTest/GunkRelay" method="trigger"]
|
||||
[connection signal="triggered" from="SignalTest/GunkRelay" to="SignalTest/GunkRelay2" method="trigger"]
|
||||
[connection signal="triggered" from="SignalTest/GunkRelay2" to="SignalTest/GunkRelay3" method="trigger"]
|
||||
[connection signal="triggered" from="SignalTest/GunkRelay3" to="SignalTest/GunkAlarm" method="trigger"]
|
||||
|
@ -1,9 +1,6 @@
|
||||
class_name GunkAlarm extends GunkNode
|
||||
## Raises the grunk alert when triggered.
|
||||
|
||||
## Emitted when this alarm is triggered, just after the alert level is raised.
|
||||
signal triggered
|
||||
|
||||
const ALERT_DELTA := 1
|
||||
|
||||
var _busy := false
|
||||
@ -17,10 +14,9 @@ var _busy := false
|
||||
## Will not trigger if this alarm is busy (e.g. on cooldown)
|
||||
func trigger() -> void:
|
||||
if not _busy:
|
||||
Game.manager.raise_alert(ALERT_DELTA)
|
||||
_busy = true
|
||||
Game.manager.raise_alert(ALERT_DELTA)
|
||||
animation_player.play("trigger")
|
||||
triggered.emit()
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
|
20
src/world/mechanics/relay/gunk_relay.gd
Normal file
20
src/world/mechanics/relay/gunk_relay.gd
Normal file
@ -0,0 +1,20 @@
|
||||
extends GunkNode
|
||||
## Gunk node that rebroadcasts triggers to the network after a delay.
|
||||
|
||||
## Emitted when `trigger` is called, after a short delay.
|
||||
signal triggered
|
||||
|
||||
@onready var animation_player: AnimationPlayer = %AnimationPlayer
|
||||
@onready var rebroadcast_delay: Timer = %RebroadcastDelay
|
||||
|
||||
|
||||
## Trigger this relay.
|
||||
##
|
||||
## This will emit the `triggered` signal after a delay.
|
||||
func trigger() -> void:
|
||||
animation_player.play("trigger")
|
||||
rebroadcast_delay.start()
|
||||
|
||||
|
||||
func _on_rebroadcast_delay_timeout() -> void:
|
||||
triggered.emit()
|
1
src/world/mechanics/relay/gunk_relay.gd.uid
Normal file
1
src/world/mechanics/relay/gunk_relay.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://1oup50bp0pwd
|
80
src/world/mechanics/relay/gunk_relay.tscn
Normal file
80
src/world/mechanics/relay/gunk_relay.tscn
Normal file
@ -0,0 +1,80 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://bttust5ohud8e"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://1oup50bp0pwd" path="res://src/world/mechanics/relay/gunk_relay.gd" id="1_rdv5j"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gk1l0"]
|
||||
resource_local_to_scene = true
|
||||
emission_enabled = true
|
||||
emission = Color(1, 0, 0, 1)
|
||||
emission_energy_multiplier = 0.0
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_hsruj"]
|
||||
resource_local_to_scene = true
|
||||
material = SubResource("StandardMaterial3D_gk1l0")
|
||||
radius = 0.1
|
||||
height = 0.2
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_gk1l0"]
|
||||
radius = 0.1
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rdv5j"]
|
||||
resource_name = "trigger"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("MeshInstance3D:mesh:material:emission_energy_multiplier")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.166667, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 2.0, 0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ipm58"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("MeshInstance3D:mesh:material:emission_energy_multiplier")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ipm58"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_ipm58"),
|
||||
&"trigger": SubResource("Animation_rdv5j")
|
||||
}
|
||||
|
||||
[node name="GunkRelay" type="StaticBody3D"]
|
||||
collision_layer = 5
|
||||
script = ExtResource("1_rdv5j")
|
||||
durability = 0.8
|
||||
value = 800.0
|
||||
metadata/_custom_type_script = "uid://cs6y5mt7bx1yl"
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("SphereMesh_hsruj")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("SphereShape3D_gk1l0")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_ipm58")
|
||||
}
|
||||
|
||||
[node name="RebroadcastDelay" type="Timer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
wait_time = 0.2
|
||||
one_shot = true
|
||||
|
||||
[connection signal="timeout" from="RebroadcastDelay" to="." method="_on_rebroadcast_delay_timeout"]
|
Loading…
x
Reference in New Issue
Block a user