Modularized doors and lightbridges

This commit is contained in:
Marco 2025-03-03 17:55:53 +01:00
commit 1a5bd1b6d8
27 changed files with 513 additions and 346 deletions

View file

@ -1,21 +1,13 @@
[gd_scene load_steps=27 format=3 uid="uid://b0gpbkxdfbnjh"]
[gd_scene load_steps=28 format=3 uid="uid://b0gpbkxdfbnjh"]
[ext_resource type="Script" uid="uid://b2bpqbfeqi4ge" path="res://Scripts/Activables/ForceField.cs" id="1_yxhr6"]
[ext_resource type="Script" uid="uid://dwry0643yvdiv" path="res://Scripts/Door.cs" id="1_3s51g"]
[ext_resource type="Texture2D" uid="uid://gc24sjyj47x6" path="res://Sprites/Actors/ForceFieldHorizontal.png" id="2_12wxm"]
[ext_resource type="Shader" uid="uid://0ruey5bjl7mh" path="res://Shaders/Blink.gdshader" id="2_q7pky"]
[ext_resource type="Shader" uid="uid://cjdl1m3psohju" path="res://Shaders/scanlines_static.tres" id="2_qbobr"]
[ext_resource type="Material" uid="uid://cdaeormgf78de" path="res://Resources/Materials/Static_Scanlines.tres" id="3_8cguw"]
[ext_resource type="Script" uid="uid://cvsrm74jftau8" path="res://Scripts/Components/Actors/ForceFieldSpriteComponent.cs" id="5_3s51g"]
[ext_resource type="AudioStream" uid="uid://ciuv2acfujlys" path="res://SFX/Artninja_Forcefield_Enable.wav" id="5_8cguw"]
[ext_resource type="AudioStream" uid="uid://ccxjo86nvcl54" path="res://SFX/Artninja_Forcefield_Disable.wav" id="6_3s51g"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fipgw"]
shader = ExtResource("2_q7pky")
shader_parameter/blink_color = Color(0, 0, 0, 1)
shader_parameter/blink_intensity = 0.0
shader_parameter/teleport_progress = 0.0
shader_parameter/scanline_density = 50.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yl7re"]
shader = ExtResource("2_qbobr")
[ext_resource type="Script" uid="uid://crpkvxepkcrir" path="res://Scripts/Components/Actors/ForceFieldCollisionDisabler.cs" id="6_sqafs"]
[sub_resource type="AtlasTexture" id="AtlasTexture_gecst"]
atlas = ExtResource("2_12wxm")
@ -145,6 +137,13 @@ animations = [{
"speed": 5.0
}]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fipgw"]
shader = ExtResource("2_q7pky")
shader_parameter/blink_color = Color(0, 0, 0, 1)
shader_parameter/blink_intensity = 0.0
shader_parameter/teleport_progress = 0.0
shader_parameter/scanline_density = 50.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0wg11"]
size = Vector2(32, 32)
@ -154,28 +153,33 @@ size = Vector2(32, 32)
[node name="HorizontalForceField" type="Area2D" groups=["Solid"]]
collision_layer = 64
collision_mask = 154
script = ExtResource("1_yxhr6")
TurnOffMaterial = SubResource("ShaderMaterial_fipgw")
ActiveMaterial = SubResource("ShaderMaterial_yl7re")
script = ExtResource("1_3s51g")
metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
modulate = Color(1, 1, 1, 0.784314)
sprite_frames = SubResource("SpriteFrames_h2s1d")
animation = &"Closed"
script = ExtResource("5_3s51g")
TurnOffMaterial = SubResource("ShaderMaterial_fipgw")
ActiveMaterial = ExtResource("3_8cguw")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="." node_paths=PackedStringArray("_door")]
visible = false
shape = SubResource("RectangleShape2D_0wg11")
script = ExtResource("6_sqafs")
_door = NodePath("..")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D" node_paths=PackedStringArray("_door")]
visible = false
shape = SubResource("RectangleShape2D_f2rl6")
script = ExtResource("6_sqafs")
_door = NodePath("../..")
[node name="ActivationSound" type="AudioStreamPlayer2D" parent="."]
position = Vector2(0, 1)
@ -185,5 +189,3 @@ max_distance = 200.0
[node name="DeactivationSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_3s51g")
max_distance = 200.0
[connection signal="animation_changed" from="AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_changed"]

View file

@ -0,0 +1,70 @@
[gd_scene load_steps=13 format=3 uid="uid://d0j1bmgbefyp2"]
[ext_resource type="Script" uid="uid://dwry0643yvdiv" path="res://Scripts/Door.cs" id="1_faieq"]
[ext_resource type="Shader" uid="uid://0ruey5bjl7mh" path="res://Shaders/Blink.gdshader" id="2_25105"]
[ext_resource type="Script" uid="uid://crpkvxepkcrir" path="res://Scripts/Components/Actors/ForceFieldCollisionDisabler.cs" id="3_hctcd"]
[ext_resource type="Script" uid="uid://cwnfsmogt11mn" path="res://Scripts/Components/Actors/LightBridgeSpriteComponent.cs" id="3_hg05y"]
[ext_resource type="Material" uid="uid://cdaeormgf78de" path="res://Resources/Materials/Static_Scanlines.tres" id="3_oo6b5"]
[ext_resource type="AudioStream" uid="uid://ciuv2acfujlys" path="res://SFX/Artninja_Forcefield_Enable.wav" id="5_hwweb"]
[ext_resource type="AudioStream" uid="uid://ccxjo86nvcl54" path="res://SFX/Artninja_Forcefield_Disable.wav" id="6_v0863"]
[sub_resource type="Gradient" id="Gradient_cub4j"]
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_hctcd"]
gradient = SubResource("Gradient_cub4j")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_25105"]
shader = ExtResource("2_25105")
shader_parameter/blink_color = Color(0, 0, 0, 1)
shader_parameter/blink_intensity = 0.0
shader_parameter/teleport_progress = 0.0
shader_parameter/scanline_density = 50.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0wg11"]
size = Vector2(32, 32)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_hctcd"]
size = Vector2(21, 178)
[node name="LightBridge" type="Area2D" groups=["Solid"]]
collision_layer = 64
collision_mask = 154
script = ExtResource("1_faieq")
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
modulate = Color(0.686275, 1, 1, 0.529412)
material = ExtResource("3_oo6b5")
position = Vector2(-4.76837e-07, 9.53674e-07)
scale = Vector2(0.125, -32)
texture = SubResource("GradientTexture1D_hctcd")
script = ExtResource("3_hg05y")
TurnOffMaterial = SubResource("ShaderMaterial_25105")
ActiveMaterial = ExtResource("3_oo6b5")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." node_paths=PackedStringArray("_door")]
visible = false
shape = SubResource("RectangleShape2D_0wg11")
script = ExtResource("3_hctcd")
_door = NodePath("..")
[node name="ActivationSound" type="AudioStreamPlayer2D" parent="."]
position = Vector2(0, 1)
stream = ExtResource("5_hwweb")
max_distance = 200.0
[node name="DeactivationSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_v0863")
max_distance = 200.0
[node name="AcidArea" type="Area2D" parent="." groups=["Acid"]]
collision_layer = 256
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="AcidArea" node_paths=PackedStringArray("_door")]
position = Vector2(-0.5, 0)
shape = SubResource("RectangleShape2D_hctcd")
script = ExtResource("3_hctcd")
_door = NodePath("../..")
Invert = true

View file

@ -219,7 +219,7 @@ sprite_frames = SubResource("SpriteFrames_5qlss")
[node name="DamageReceiver" type="Area2D" parent="." node_paths=PackedStringArray("_healthProvider", "_shieldProvider")]
collision_layer = 2
collision_mask = 136
collision_mask = 392
script = ExtResource("14_igu66")
_healthProvider = NodePath("HealthProvider")
_shieldProvider = NodePath("ShieldProvider")