From e2bbbccfeaddda3869a92d9f2625e98ca68fb7f8 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 20 Apr 2024 03:49:32 +0200 Subject: [PATCH] Reimplement dragging detection --- behaviours/draggable.tscn | 3 ++- entities/sheep.gd | 7 +++++++ entities/sheep.tscn | 12 +++++++++++- scenes/game/cursor.tscn | 2 +- scenes/game/main_game.tscn | 2 ++ 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/behaviours/draggable.tscn b/behaviours/draggable.tscn index 05758af..659366f 100644 --- a/behaviours/draggable.tscn +++ b/behaviours/draggable.tscn @@ -3,7 +3,8 @@ [ext_resource type="Script" path="res://behaviours/draggable.gd" id="1_hdedq"] [node name="Draggable" type="Area2D"] -collision_layer = 0 +collision_layer = 8 collision_mask = 0 input_pickable = false +monitoring = false script = ExtResource("1_hdedq") diff --git a/entities/sheep.gd b/entities/sheep.gd index 8d3a888..a8ba3e3 100644 --- a/entities/sheep.gd +++ b/entities/sheep.gd @@ -12,3 +12,10 @@ func _ready() -> void: func _on_move(movement: Vector2) -> void: move_and_collide(movement) sprite.handle_move(movement) + + +func _on_draggable_dragged() -> void: + collision_layer = 16 + +func _on_draggable_dropped() -> void: + collision_layer = 8 diff --git a/entities/sheep.tscn b/entities/sheep.tscn index a3a324d..cd39098 100644 --- a/entities/sheep.tscn +++ b/entities/sheep.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=3 uid="uid://bc2bm8lbol18w"] +[gd_scene load_steps=21 format=3 uid="uid://bc2bm8lbol18w"] [ext_resource type="Script" path="res://entities/sheep.gd" id="1_4dmll"] [ext_resource type="Texture2D" uid="uid://iljp5yn3ehfk" path="res://entities/sheep_left.png" id="2_t13f5"] @@ -12,6 +12,7 @@ [ext_resource type="PackedScene" uid="uid://cml7rqvyfuagx" path="res://behaviours/move_towards.tscn" id="12_x2g3x"] [ext_resource type="PackedScene" uid="uid://cbg5kgwxusvxf" path="res://behaviours/cursor_detector.tscn" id="13_5fkdr"] [ext_resource type="PackedScene" uid="uid://dti7l0d40hhgt" path="res://behaviours/target_picker.tscn" id="13_jf6em"] +[ext_resource type="PackedScene" uid="uid://dijcjahkddudv" path="res://behaviours/draggable.tscn" id="14_0b1hs"] [ext_resource type="PackedScene" uid="uid://c5pyp5hvthdof" path="res://behaviours/tracker_tracker.tscn" id="14_eqowb"] [sub_resource type="CircleShape2D" id="CircleShape2D_c5tcn"] @@ -161,6 +162,13 @@ debug_color = Color(1, 1, 0, 0) [node name="TargetPicker" parent="MovementRunFromHunter/HunterSense" node_paths=PackedStringArray("tracker") instance=ExtResource("13_jf6em")] tracker = NodePath("..") +[node name="Draggable" parent="." instance=ExtResource("14_0b1hs")] + +[node name="Shape" type="CollisionShape2D" parent="Draggable"] +scale = Vector2(3, 3) +shape = SubResource("CircleShape2D_c5tcn") +debug_color = Color(1, 1, 1, 0) + [connection signal="ready" from="MovementSampler" to="MovementSampler" method="enable"] [connection signal="move" from="MovementIdle" to="." method="_on_move"] [connection signal="move_disabled" from="MovementIdle" to="MovementIdle/BoredTimer" method="stop"] @@ -186,3 +194,5 @@ tracker = NodePath("..") [connection signal="tracked" from="MovementRunFromHunter/HunterSense" to="MovementRunFromHunter/HunterSense/TargetPicker" method="set_target_if_null"] [connection signal="untracked" from="MovementRunFromHunter/HunterSense" to="MovementRunFromHunter/HunterSense/TargetPicker" method="clear_if_target"] [connection signal="target_changed" from="MovementRunFromHunter/HunterSense/TargetPicker" to="MovementRunFromHunter" method="set_target" unbinds=1] +[connection signal="dragged" from="Draggable" to="." method="_on_draggable_dragged"] +[connection signal="dropped" from="Draggable" to="." method="_on_draggable_dropped"] diff --git a/scenes/game/cursor.tscn b/scenes/game/cursor.tscn index 4a4dfbf..01422ec 100644 --- a/scenes/game/cursor.tscn +++ b/scenes/game/cursor.tscn @@ -7,7 +7,7 @@ radius = 4.0 [node name="Cursor" type="Area2D" groups=["cursor"]] collision_layer = 64 -collision_mask = 0 +collision_mask = 8 script = ExtResource("1_1og6v") [node name="Shape" type="CollisionShape2D" parent="."] diff --git a/scenes/game/main_game.tscn b/scenes/game/main_game.tscn index cfd6081..91b2b5c 100644 --- a/scenes/game/main_game.tscn +++ b/scenes/game/main_game.tscn @@ -893,4 +893,6 @@ max_secs = 9.0 shape = SubResource("CircleShape2D_h5qsh") debug_color = Color(0, 1, 0, 0.152941) +[connection signal="dragged" from="Cursor" to="Cursor" method="log_dragging" unbinds=1] +[connection signal="dropped" from="Cursor" to="Cursor" method="log_dragging" unbinds=1] [connection signal="timeout" from="Spawner/TimerStddev" to="Spawner" method="spawn"]