Destroyable movement sensors

This commit is contained in:
MaddoScientisto 2025-03-12 23:32:33 +01:00
commit ea7deaa774
8 changed files with 187 additions and 15 deletions

View file

@ -0,0 +1,104 @@
[gd_scene load_steps=7 format=3 uid="uid://u1y4m0jv2y1w"]
[ext_resource type="Script" uid="uid://c4guoqofndn2c" path="res://VFEZ/vfez_material_2d.gd" id="1_dnx2p"]
[ext_resource type="Texture2D" uid="uid://ddwhrlrgj6i00" path="res://Sprites/Actors/Cirno.png" id="2_y8svl"]
[sub_resource type="Shader" id="Shader_up8dk"]
resource_name = "VFEZ2DPreview"
code = "
// This shader was dynamically generated by the VFEZ material.
// **********************************
// Every change to the VFEZ material Render Options or
// Include Options generates a new shader. After every change
// you can click on the new exported shader in the editor to view
// the latest changes. Only the definitions (#define) actually change.
// **********************************
shader_type canvas_item;
#define BLEND_MIX
#define UV_PIXELATE
#include \"res://VFEZ/Shaders/vfez_2d_template.gdshaderinc\"
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4st2o"]
shader = SubResource("Shader_up8dk")
shader_parameter/texture_scale = Vector2(1, 1)
shader_parameter/texture_offset = Vector2(0, 0)
shader_parameter/texture_scroll_speed = Vector2(0, 0)
shader_parameter/replicate_on_scale = true
shader_parameter/texture_color = Color(1, 1, 1, 1)
shader_parameter/texture_alpha = 1.0
shader_parameter/texture_red_as_alpha = false
shader_parameter/premultiply_color = false
shader_parameter/premultiply_alpha = false
shader_parameter/contrast = 1.0
shader_parameter/brightness = 0.0
shader_parameter/rect_size_ratio = 1.0
shader_parameter/use_uv_polar = false
shader_parameter/use_uv_distortion = false
shader_parameter/use_uv_rotation = false
shader_parameter/use_uv_pixelate = true
shader_parameter/uv_pixelate_size = 256
shader_parameter/use_uv_twist = false
shader_parameter/use_uv_fisheye = false
shader_parameter/use_uv_pinch = false
shader_parameter/use_uv_handrawn = false
shader_parameter/use_uv_shake = false
shader_parameter/use_uv_wave = false
shader_parameter/use_uv_round_wave = false
shader_parameter/use_uv_wind = false
shader_parameter/use_uv_wrap = false
shader_parameter/use_uv_zoom = false
shader_parameter/use_color_single = false
shader_parameter/use_color_overlay_texture = false
shader_parameter/use_outline = false
shader_parameter/use_outline_inner = false
shader_parameter/use_alpha_disolve = false
shader_parameter/use_chromatic_aberration = false
shader_parameter/use_motion_blur = false
shader_parameter/use_glitch = false
shader_parameter/use_color_gradient = false
shader_parameter/use_color_radial_gradient = false
shader_parameter/use_color_toning = false
shader_parameter/use_color_ramp = false
shader_parameter/use_color_change = false
shader_parameter/use_color_ghost = false
shader_parameter/use_color_hologram = false
shader_parameter/use_color_posterize = false
shader_parameter/use_color_negative = false
shader_parameter/use_color_glow = false
shader_parameter/use_color_hsv_shift = false
shader_parameter/use_color_shadow = false
shader_parameter/use_color_greyscale = false
shader_parameter/use_color_shine = false
shader_parameter/use_alpha_mask = false
shader_parameter/use_alpha_remap = false
shader_parameter/use_alpha_cutoff = false
shader_parameter/use_alpha_clip = false
shader_parameter/use_alpha_radial_clip = false
shader_parameter/use_alpha_flicker = false
shader_parameter/use_particle_anim = false
script = ExtResource("1_dnx2p")
BlendMode = 0
LightMode = 0
metadata/_custom_type_script = "uid://c4guoqofndn2c"
[sub_resource type="AtlasTexture" id="AtlasTexture_466kw"]
atlas = ExtResource("2_y8svl")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_c6gab"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_466kw")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="ShaderActorTest" type="Node2D"]
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
material = SubResource("ShaderMaterial_4st2o")
sprite_frames = SubResource("SpriteFrames_c6gab")

View file

@ -0,0 +1,21 @@
[gd_scene load_steps=4 format=3 uid="uid://dbd7pmoevm787"]
[ext_resource type="Texture2D" uid="uid://bs5fsrx07bolj" path="res://Sprites/Actors/MovementSensor.png" id="1_cegkl"]
[sub_resource type="AtlasTexture" id="AtlasTexture_kaq0i"]
atlas = ExtResource("1_cegkl")
region = Rect2(16, 0, 8, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_us36d"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_kaq0i")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="DestroyedMovementSensor" type="AnimatedSprite2D"]
sprite_frames = SubResource("SpriteFrames_us36d")

View file

@ -1,8 +1,11 @@
[gd_scene load_steps=8 format=3 uid="uid://oi8svqsspcsj"]
[gd_scene load_steps=12 format=3 uid="uid://oi8svqsspcsj"]
[ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="1_cpf8e"]
[ext_resource type="Script" uid="uid://dmo0pw7natoja" path="res://Scripts/Interactables/AreaTrigger.cs" id="2_xybrs"]
[ext_resource type="Texture2D" uid="uid://bs5fsrx07bolj" path="res://Sprites/Actors/MovementSensor.png" id="3_xybrs"]
[ext_resource type="Script" uid="uid://cq3hkweplldbr" path="res://Scripts/Components/Actors/GenericDamageReceiver.cs" id="4_hqdqa"]
[ext_resource type="PackedScene" uid="uid://dbd7pmoevm787" path="res://Scenes/Interactable/DestroyedMovementSensor.tscn" id="5_hqdqa"]
[ext_resource type="Script" uid="uid://cqwvssstkrdmw" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="6_58ipm"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1nht3"]
size = Vector2(4, 30)
@ -29,6 +32,9 @@ animations = [{
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_5j6xs"]
radius = 3.0
[node name="MovementSensor" type="Node2D"]
script = ExtResource("1_cpf8e")
@ -46,5 +52,21 @@ shape = SubResource("RectangleShape2D_1nht3")
sprite_frames = SubResource("SpriteFrames_hqdqa")
autoplay = "default"
[node name="DamageReceiver" type="Area2D" parent="." node_paths=PackedStringArray("HealthProvider")]
collision_layer = 64
collision_mask = 136
script = ExtResource("4_hqdqa")
HealthProvider = NodePath("Health")
Debris = ExtResource("5_hqdqa")
[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageReceiver"]
shape = SubResource("CircleShape2D_5j6xs")
[node name="Health" type="Node2D" parent="DamageReceiver"]
script = ExtResource("6_58ipm")
ResourceName = "Health"
MaxResource = 1.0
[connection signal="Activated" from="AreaTrigger" to="." method="Start"]
[connection signal="area_entered" from="AreaTrigger" to="AreaTrigger" method="_on_area_entered"]
[connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"]

View file

@ -1,8 +1,11 @@
[gd_scene load_steps=8 format=3 uid="uid://dqr6myj0yaqvd"]
[gd_scene load_steps=12 format=3 uid="uid://dqr6myj0yaqvd"]
[ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="1_48f0r"]
[ext_resource type="Script" uid="uid://dmo0pw7natoja" path="res://Scripts/Interactables/AreaTrigger.cs" id="2_ms26s"]
[ext_resource type="Texture2D" uid="uid://bs5fsrx07bolj" path="res://Sprites/Actors/MovementSensor.png" id="3_7s6mr"]
[ext_resource type="Script" uid="uid://cq3hkweplldbr" path="res://Scripts/Components/Actors/GenericDamageReceiver.cs" id="4_l4cg8"]
[ext_resource type="PackedScene" uid="uid://dbd7pmoevm787" path="res://Scenes/Interactable/DestroyedMovementSensor.tscn" id="5_uvcq0"]
[ext_resource type="Script" uid="uid://cqwvssstkrdmw" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="6_mjf1a"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1nht3"]
size = Vector2(4, 62)
@ -29,6 +32,9 @@ animations = [{
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_qy7he"]
radius = 3.0
[node name="MovementSensorLonger" type="Node2D"]
script = ExtResource("1_48f0r")
@ -46,5 +52,21 @@ shape = SubResource("RectangleShape2D_1nht3")
sprite_frames = SubResource("SpriteFrames_hqdqa")
autoplay = "default"
[node name="DamageReceiver" type="Area2D" parent="." node_paths=PackedStringArray("HealthProvider")]
collision_layer = 64
collision_mask = 136
script = ExtResource("4_l4cg8")
HealthProvider = NodePath("Health")
Debris = ExtResource("5_uvcq0")
[node name="CollisionShape2D" type="CollisionShape2D" parent="DamageReceiver"]
shape = SubResource("CircleShape2D_qy7he")
[node name="Health" type="Node2D" parent="DamageReceiver"]
script = ExtResource("6_mjf1a")
ResourceName = "Health"
MaxResource = 1.0
[connection signal="Activated" from="AreaTrigger" to="." method="Start"]
[connection signal="area_entered" from="AreaTrigger" to="AreaTrigger" method="_on_area_entered"]
[connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"]

View file

@ -1,8 +1,7 @@
[gd_scene load_steps=39 format=4 uid="uid://6a6tjohypmmb"]
[gd_scene load_steps=37 format=4 uid="uid://6a6tjohypmmb"]
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_t2k72"]
[ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_2jsgm"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_6w05j"]
[ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="3_mqt4u"]
[ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_s1vkf"]
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_06rc0"]
@ -16,7 +15,6 @@
[ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="9_mnq21"]
[ext_resource type="Script" uid="uid://bdshph801ac2i" path="res://Scenes/CameraTarget.gd" id="10_4nd4a"]
[ext_resource type="Script" uid="uid://cnkipcolyj61w" path="res://Scripts/AlarmManager.cs" id="11_7an4p"]
[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="14_hw1so"]
[ext_resource type="Script" uid="uid://bwox5lmgiijcs" path="res://Scripts/Resources/Events/ActivateEvent.cs" id="14_s23f3"]
[ext_resource type="PackedScene" uid="uid://oi8svqsspcsj" path="res://Scenes/Interactable/ScriptableMovementSensor.tscn" id="16_ehuec"]
[ext_resource type="PackedScene" uid="uid://crph24e6e0v0q" path="res://Scenes/Interactable/Control_Pad.tscn" id="16_s23f3"]
@ -39,7 +37,7 @@
[sub_resource type="Resource" id="Resource_6wo78"]
script = ExtResource("4_s1vkf")
EggIndex = 0
StartingEquipment = Array[ExtResource("3_6w05j")]([ExtResource("3_mqt4u")])
StartingEquipment = [ExtResource("3_mqt4u")]
[sub_resource type="Resource" id="Resource_s23f3"]
script = ExtResource("14_s23f3")
@ -61,7 +59,7 @@ PlayerTemplate = ExtResource("2_2jsgm")
SpawnMarkers = Dictionary[int, NodePath]({
0: NodePath("PlayerStartPosition")
})
StartingEquipment = Array[ExtResource("3_6w05j")]([ExtResource("3_mqt4u")])
StartingEquipment = [ExtResource("3_mqt4u")]
MapStartData = SubResource("Resource_6wo78")
[node name="Tilemaps" type="Node2D" parent="."]
@ -82,7 +80,7 @@ tile_map_data = PackedByteArray("AAACAA0AAAAAAAgAAAADAA0AAAABAAcAAAAEAA0AAAABAAc
tile_set = ExtResource("5_06rc0")
metadata/_edit_lock_ = true
[node name="Props" type="TileMapLayer" parent="Tilemaps"]
[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]]
y_sort_enabled = true
tile_map_data = PackedByteArray("AAARABEAAQAAAAAAAgASABEAAQAAAAAAAgAVABQAAQAAAAAAAgAVABEAAQAAAAAADAAVABIAAQAAAAAADAAUABEAAQAAAAAADQAKABAAAAAGAAAAAAALABAAAAAHAAAAAAAHABAAAAAGAAAAAAAIABAAAAAHAAAAAAAFABAAAQAAAAAAAgAGABAAAQAAAAAAAgADABUAAQAAAAAAAQADABYAAQAAAAAAAQAEABcAAQAAAAAADgADABcAAQAAAAAAAQATABEAAQAAAAAADwAVABMAAQAAAAAADwADABgAAQAAAAAADgAEABgAAQAAAAAADgALABgAAQAAAAAACQAKABgAAQAAAAAADwALABcAAQAAAAAAAQAJABgAAQAAAAAAEAAIABgAAQAAAAAAEAADABMAAQAAAAAAEAADABQAAQAAAAAAEAAKAB4AAQAAAAAAEAALAB4AAQAAAAAAEAACAB4AAQAAAAAAEAADAB4AAQAAAAAAAQALAB8AAQAAAAAAAQAJACMAAQAAAAAAAgAKACMAAQAAAAAAAgALACMAAQAAAAAACQAIACMAAQAAAAAADAAEACMAAQAAAAAADAAHACMAAQAAAAAAEAADACMAAQAAAAAADQAFACMAAQAAAAAADgAGACMAAQAAAAAAEAAJABAAAQAAAAAAEQACACAAAAAGAAMAAAANAB8AAQAAAAAACQAUACEAAQAAAAAAEAANACEAAQAAAAAAEAAGABMAAAAIAAYAAAAGABQAAAAIAAYAAAAHABUAAAAHAAUAAAAIABUAAAAHAAUAAAAJABMAAAAGAAYAAAAJABQAAAAGAAYAAAAHABIAAAAHAAcAAAAIABIAAAAHAAcAAAAHABMAAQAAAAAAAQAHABQAAQAAAAAAAQAIABMAAQAAAAAAAQAIABQAAQAAAAAAAQAVACAAAAAIAAYAAAAXAB8AAAAIAAYAAAAXACAAAAAIAAYAAAAXACEAAAAIAAYAAAAXACIAAAAIAAYAAAAYACMAAAAHAAUAAAAZACMAAAAHAAUAAAAaACMAAAAHAAUAAAAbACMAAAAHAAUAAAAcACMAAAAHAAUAAAAdACMAAAAHAAUAAAAeAB8AAAAGAAYAAAAeACAAAAAGAAYAAAAeACEAAAAGAAYAAAAeACIAAAAGAAYAAAAYAB4AAAAHAAcAAAAZAB4AAAAHAAcAAAAaAB4AAAAHAAcAAAAbAB4AAAAHAAcAAAAcAB4AAAAHAAcAAAAdAB4AAAAHAAcAAAAfAB0AAQAAAAAADgAVAB4AAAAKAA4AAAAcABsAAAAKAAQAAAAZABsAAAAKAAQAAAAHABwAAAAJAAwAAAAHAB0AAAAJAA0AAAAMABEAAAAJAAwAAAAMABIAAAAJAA0AAAAEABwAAAAKAAwAAAAEAB0AAAAKAA0AAAABAB8AAAAKAAwAAAABACAAAAAKAA0AAAAQABEAAAAKAAwAAAAQABIAAAAKAA0AAAD7/x0AAAAKAAwAAAD7/x4AAAAKAA0AAAD+/x0AAAAJAAwAAAD+/x4AAAAJAA0AAAD//x8AAAAJAAwAAAD//yAAAAAJAA0AAAAMAB4AAAAKAA4AAAAMAB8AAAAKAA8AAAAVAB8AAAAKAA8AAAD6/yAAAAAMAAQAAAD9/yMAAAAGAAwAAAD9/yQAAAAGAAwAAAD9/yUAAAAHAAsAAAD+/yUAAAAHAAsAAADz/yAAAAAHAAsAAAD0/yAAAAAHAAsAAAD1/yAAAAAHAAsAAAD2/yAAAAAHAAsAAAD3/yAAAAAHAAsAAAD4/yAAAAAHAAsAAAD5/yAAAAAHAAsAAADz/x8AAAAGAAwAAADz/x4AAAAGAAwAAAD9/yEAAAAGAAYAAAD9/yIAAAAGAAYAAAD7/yAAAAAHAAcAAAD8/yAAAAAHAAcAAAAKABMAAAANAAgAAAAKABQAAAANAAkAAAALABMAAAAOAAgAAAALABQAAAAOAAkAAAAXACMAAAAEAA8AAAAeAB4AAAAFAA4AAAAeACMAAAAFAA8AAAAXAB4AAAAEAA4AAAD9/yAAAAAFAA4AAAAJABIAAAAFAA4AAAAGABIAAAAEAA4AAAAGABUAAAAEAA8AAAAJABUAAAAFAA8AAAA=")
tile_set = ExtResource("5_06rc0")
@ -110,7 +108,7 @@ position = Vector2(196, 296)
[node name="MotionSensor" parent="Tilemaps/Actors" instance=ExtResource("16_ehuec")]
position = Vector2(254, 296)
Events = Array[ExtResource("14_hw1so")]([SubResource("Resource_s23f3")])
Events = [SubResource("Resource_s23f3")]
[node name="ControlPad" parent="Tilemaps/Actors" node_paths=PackedStringArray("Targets") instance=ExtResource("16_s23f3")]
position = Vector2(205, 292)
@ -131,7 +129,7 @@ position = Vector2(504, 468)
[node name="MovementSensorLonger" parent="Tilemaps/Actors" instance=ExtResource("20_fdi4d")]
position = Vector2(226, 486)
Events = Array[ExtResource("14_hw1so")]([SubResource("Resource_qi6uc")])
Events = [SubResource("Resource_qi6uc")]
[node name="WallEmitter" parent="Tilemaps/Actors" instance=ExtResource("21_qi6uc")]
position = Vector2(264, 482)

BIN
Sprites/Actors/MovementSensor.aseprite (Stored with Git LFS)

Binary file not shown.

BIN
Sprites/Actors/MovementSensor.png (Stored with Git LFS)

Binary file not shown.

View file

@ -1,4 +1,4 @@
[gd_resource type="TileSet" load_steps=53 format=3 uid="uid://6k28roiljylj"]
[gd_resource type="TileSet" load_steps=54 format=3 uid="uid://6k28roiljylj"]
[ext_resource type="Texture2D" uid="uid://tphqodqyere1" path="res://Tilesets/factory.png" id="1_70kxh"]
[ext_resource type="PackedScene" uid="uid://bj28qiai2x2ar" path="res://Scenes/Props/Barrel.tscn" id="2_cxg4b"]
@ -16,6 +16,7 @@
[ext_resource type="PackedScene" uid="uid://crmwuwhltmdq7" path="res://Scenes/Props/MediumTank.tscn" id="8_vuaww"]
[ext_resource type="PackedScene" uid="uid://bx2h6niaxi6mv" path="res://Scenes/Props/Box_Wood.tscn" id="9_ipvrl"]
[ext_resource type="PackedScene" uid="uid://bnhck5eh0tqxf" path="res://Scenes/Props/MediumTerminal.tscn" id="9_wc4jy"]
[ext_resource type="PackedScene" uid="uid://cqrkisw6jg24w" path="res://Scenes/Props/MainFrame1.tscn" id="10_7u0cp"]
[ext_resource type="PackedScene" uid="uid://e80xujqyjoh" path="res://Scenes/Props/Box_Vertical.tscn" id="10_hg2bp"]
[ext_resource type="Texture2D" uid="uid://df8t3kan5qgjb" path="res://Tilesets/Space.png" id="12_fb37q"]
[ext_resource type="Texture2D" uid="uid://v310x6wx801b" path="res://Tilesets/Beams2.png" id="19_hupu0"]
@ -846,6 +847,7 @@ texture = ExtResource("1_70kxh")
8:12/0/terrains_peering_bit/bottom_side = 4
8:12/0/terrains_peering_bit/top_side = 4
9:12/0 = 0
9:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3.07197, -8, -3.17106, 8, -8, 8)
0:13/0 = 0
0:13/0/z_index = 1
0:13/0/terrain_set = 0
@ -979,9 +981,11 @@ texture = ExtResource("1_70kxh")
10:11/0 = 0
10:11/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
10:12/0 = 0
10:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(3.27016, -8, 8, -8, 8, 8, 3.17106, 8)
10:13/0 = 0
10:4/0 = 0
10:14/0 = 0
10:14/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
10:15/0 = 0
6:14/0 = 0
6:14/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
@ -1120,6 +1124,7 @@ scenes/13/scene = ExtResource("6_fudr4")
scenes/14/scene = ExtResource("7_k5ppi")
scenes/15/scene = ExtResource("8_ubrnc")
scenes/16/scene = ExtResource("9_ipvrl")
scenes/17/scene = ExtResource("10_7u0cp")
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_wgdjv"]
texture = ExtResource("12_fb37q")