From 37d74f488065ab3973feccd41f5448a27d889489 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=91=D0=B4=D0=BE=D1=80=20=D0=92=D0=B5=D1=81=D0=B5?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2?= Date: Wed, 25 Sep 2024 10:01:05 +0500 Subject: [PATCH] Collision layer rework --- project.godot | 6 ++++-- scenes/entities/Zombies/zombie.tscn | 2 +- scenes/entities/plants/peashooter.tscn | 2 +- scenes/entities/plants/potato_mine.tscn | 4 ++-- scenes/entities/plants/spikeweed.tscn | 18 ++++++++++++++++++ .../components/plants/ExplosionComponent.cs | 5 ++--- 6 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 scenes/entities/plants/spikeweed.tscn diff --git a/project.godot b/project.godot index 63a5de3..9fa09f0 100644 --- a/project.godot +++ b/project.godot @@ -53,8 +53,10 @@ primary_action={ [layer_names] 2d_physics/layer_1="Reserved" -2d_physics/layer_2="Plants" -2d_physics/layer_3="Zombies" +2d_physics/layer_2="Plants LD" +2d_physics/layer_3="Plants Full" +2d_physics/layer_4="Zombies LD" +2d_physics/layer_5="Zombies Full" [rendering] diff --git a/scenes/entities/Zombies/zombie.tscn b/scenes/entities/Zombies/zombie.tscn index 04416de..c560cac 100644 --- a/scenes/entities/Zombies/zombie.tscn +++ b/scenes/entities/Zombies/zombie.tscn @@ -156,7 +156,7 @@ position = Vector2(0, -44) texture = ExtResource("2_4pdxh") [node name="Hitbox" type="Area2D" parent="."] -collision_layer = 4 +collision_layer = 8 collision_mask = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] diff --git a/scenes/entities/plants/peashooter.tscn b/scenes/entities/plants/peashooter.tscn index 15b9923..36968c8 100644 --- a/scenes/entities/plants/peashooter.tscn +++ b/scenes/entities/plants/peashooter.tscn @@ -108,7 +108,7 @@ _sight = NodePath("../Eyesight") [node name="Eyesight" type="Area2D" parent="."] collision_layer = 0 -collision_mask = 4 +collision_mask = 8 script = ExtResource("7_fdkt2") [node name="CollisionShape2D" type="CollisionShape2D" parent="Eyesight"] diff --git a/scenes/entities/plants/potato_mine.tscn b/scenes/entities/plants/potato_mine.tscn index 14e8c30..8078e22 100644 --- a/scenes/entities/plants/potato_mine.tscn +++ b/scenes/entities/plants/potato_mine.tscn @@ -123,7 +123,7 @@ disabled = true [node name="Detectionbox" type="Area2D" parent="." index="3"] collision_layer = 0 -collision_mask = 4 +collision_mask = 8 [node name="CollisionShape2D" type="CollisionShape2D" parent="Detectionbox" index="0"] position = Vector2(0, 9) @@ -131,7 +131,7 @@ shape = SubResource("CircleShape2D_v0g5b") [node name="ExplosionBox" type="Area2D" parent="." index="4"] collision_layer = 0 -collision_mask = 4 +collision_mask = 8 [node name="CollisionShape2D" type="CollisionShape2D" parent="ExplosionBox" index="0"] position = Vector2(0, 9) diff --git a/scenes/entities/plants/spikeweed.tscn b/scenes/entities/plants/spikeweed.tscn new file mode 100644 index 0000000..4dc888f --- /dev/null +++ b/scenes/entities/plants/spikeweed.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=3 uid="uid://bdhod5c6o53ha"] + +[ext_resource type="PackedScene" uid="uid://b1hjjbdwf1rtc" path="res://scenes/entities/plants/plant_template.tscn" id="1_vmbvr"] +[ext_resource type="Texture2D" uid="uid://coafh3mjharxo" path="res://assets/sprites/atlases/plants/spikeweed.png" id="2_ffrjr"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1di76"] +size = Vector2(49, 38) + +[node name="Spikeweed" instance=ExtResource("1_vmbvr")] + +[node name="Sprite2D" parent="." index="0"] +texture = ExtResource("2_ffrjr") +hframes = 2 +vframes = 10 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox" index="0"] +position = Vector2(0.5, 9) +shape = SubResource("RectangleShape2D_1di76") diff --git a/scripts/components/plants/ExplosionComponent.cs b/scripts/components/plants/ExplosionComponent.cs index 0c2ff2f..0cd5a5a 100644 --- a/scripts/components/plants/ExplosionComponent.cs +++ b/scripts/components/plants/ExplosionComponent.cs @@ -1,13 +1,12 @@ using Godot; -public partial class ExplosionComponent : Node +public partial class ExplosionComponent : Area2D { [Export] private int damage; - [Export] private Area2D explosionArea; public void Explode() { - foreach(var zombie in explosionArea.GetOverlappingAreas()) + foreach(var zombie in GetOverlappingAreas()) { var zombieData = zombie.GetParent(); if (zombieData != null)