From b54f784d51e4b67cd8de2912c7fe53510cc009af Mon Sep 17 00:00:00 2001 From: kziolkowski Date: Fri, 31 Oct 2025 12:36:08 +0100 Subject: [PATCH] :art: Replaced pickup animation group call with event --- prefabs/Interactables/trash_object.tscn | 12 ++++++++---- prefabs/characters/Player2D.tscn | 8 +++++++- prefabs/interactions/generic_item_on_ground_2d.tscn | 8 +++++++- project.godot | 5 +---- .../interactables/event_PickedUpInteractable.tres | 7 +++++++ scripts/CSharp/Common/Items/NonInventoryPickup.cs | 13 ------------- .../CSharp/Common/Items/NonInventoryPickup.cs.uid | 1 - 7 files changed, 30 insertions(+), 24 deletions(-) create mode 100644 resources/low code/interactables/event_PickedUpInteractable.tres delete mode 100644 scripts/CSharp/Common/Items/NonInventoryPickup.cs delete mode 100644 scripts/CSharp/Common/Items/NonInventoryPickup.cs.uid diff --git a/prefabs/Interactables/trash_object.tscn b/prefabs/Interactables/trash_object.tscn index 190183e..fc5f532 100644 --- a/prefabs/Interactables/trash_object.tscn +++ b/prefabs/Interactables/trash_object.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=16 format=3 uid="uid://sbf12hin4kes"] +[gd_scene load_steps=17 format=3 uid="uid://sbf12hin4kes"] [ext_resource type="Texture2D" uid="uid://bylgmr0skwtrs" path="res://art/farm/farming/farmobjekte/broken tools atlas.png" id="1_k4ca3"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_gcgfd"] -[ext_resource type="Script" uid="uid://dkk1vjijvgrd7" path="res://scripts/CSharp/Common/Items/NonInventoryPickup.cs" id="2_ic616"] [ext_resource type="AudioStream" uid="uid://be6g8b3v3u1ai" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PickUp_01.wav" id="3_ktmp7"] [ext_resource type="AudioStream" uid="uid://cgjsajsdrrn0j" path="res://audio/sfx/Kitchen/SFX_Cooking_Knife_PutDown_01.wav" id="4_ic616"] [ext_resource type="AudioStream" uid="uid://br4drgupled6c" path="res://audio/sfx/Kitchen/SFX_Cooking_Pot_01.wav" id="5_dx175"] @@ -14,6 +13,8 @@ [ext_resource type="AudioStream" uid="uid://bc216pfieuc8h" path="res://audio/sfx/Kitchen/SFX_Cutlery_04.wav" id="11_kb03l"] [ext_resource type="AudioStream" uid="uid://dp6qen84ptlvx" path="res://audio/sfx/Kitchen/SFX_Cutlery_05.wav" id="12_kka6u"] [ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer2D.cs" id="13_wswkg"] +[ext_resource type="Script" uid="uid://b5dotkx17gvxg" path="res://scripts/CSharp/Low Code/Events/EventRaiser.cs" id="14_dx175"] +[ext_resource type="Resource" uid="uid://78t0o27g6aq6" path="res://resources/low code/interactables/event_PickedUpInteractable.tres" id="15_u7jgg"] [sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_dich4"] streams_count = 10 @@ -35,7 +36,6 @@ texture = ExtResource("1_k4ca3") offset = Vector2(1, -215) region_enabled = true region_rect = Rect2(44, 479, 356, 503) -script = ExtResource("2_ic616") [node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_gcgfd")] position = Vector2(0, -172) @@ -47,6 +47,10 @@ bus = &"SFX" playback_type = 2 script = ExtResource("13_wswkg") +[node name="PickupAnimationEventRaiser" type="Node" parent="."] +script = ExtResource("14_dx175") +_eventResources = Array[Object]([ExtResource("15_u7jgg")]) + [connection signal="Interacted" from="InteractionArea" to="." method="queue_free"] -[connection signal="Interacted" from="InteractionArea" to="." method="PlayPickupAnimation"] [connection signal="Interacted" from="InteractionArea" to="AudioStreamPlayer2D" method="PlayOneShot"] +[connection signal="Interacted" from="InteractionArea" to="PickupAnimationEventRaiser" method="RaiseEvents"] diff --git a/prefabs/characters/Player2D.tscn b/prefabs/characters/Player2D.tscn index 5ce1757..fc8ae04 100644 --- a/prefabs/characters/Player2D.tscn +++ b/prefabs/characters/Player2D.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=484 format=3 uid="uid://c25udixd5m6l0"] +[gd_scene load_steps=485 format=3 uid="uid://c25udixd5m6l0"] [ext_resource type="Script" uid="uid://b05uyj001ehwi" path="res://scripts/CSharp/Common/Farming/VesnaBehaviour2D.cs" id="1_yd5ep"] [ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/PlayerMovement.cs" id="2_1vqmv"] @@ -276,6 +276,7 @@ [ext_resource type="Script" uid="uid://er03dkj8axlr" path="res://scripts/CSharp/Common/UI/WateringCanUi.cs" id="467_j4m0f"] [ext_resource type="Texture2D" uid="uid://oi11ax6tml6j" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0012.png" id="468_08021"] [ext_resource type="Resource" uid="uid://b4hawvsc7cmkn" path="res://resources/low code/farming/event_newPlantCreated.tres" id="468_t1d6r"] +[ext_resource type="Resource" uid="uid://78t0o27g6aq6" path="res://resources/low code/interactables/event_PickedUpInteractable.tres" id="469_t1d6r"] [ext_resource type="Texture2D" uid="uid://dsjj23763pej5" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0014.png" id="470_bmmei"] [ext_resource type="AudioStream" uid="uid://ce5mxs2yrwgrh" path="res://audio/sfx/Footsteps/Single/Gravel/Reverb/SFX_Footstep_Gravel_01_R.wav" id="470_dnm27"] [ext_resource type="Script" uid="uid://dx25g14a7xi4w" path="res://scripts/CSharp/Common/Audio/AudioPlayer.cs" id="471_2f15g"] @@ -2148,6 +2149,10 @@ position = Vector2(0, -200) script = ExtResource("467_8hbu5") _eventResources = Array[Object]([ExtResource("468_t1d6r")]) +[node name="PickedUpInteractableListener" type="Node" parent="CharacterBody2D"] +script = ExtResource("467_8hbu5") +_eventResources = Array[Object]([ExtResource("469_t1d6r")]) + [node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer", "_wateringParticles")] script = ExtResource("817_6nrw3") _fieldPrefab = ExtResource("818_16w6h") @@ -2199,6 +2204,7 @@ wait_time = 0.5 [connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"] [connection signal="LookDirection" from="CharacterBody2D/visuals" to="CharacterBody2D/DetectionCross" method="SetDirection"] [connection signal="EventRaised" from="CharacterBody2D/PlantCreatedEventListener" to="CharacterBody2D/visuals" method="PlayFarmingAnimation"] +[connection signal="EventRaised" from="CharacterBody2D/PickedUpInteractableListener" to="CharacterBody2D/visuals" method="PlayPickUpAnimation"] [connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/visuals" method="PlayWateringAnimation"] [connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/WateringCanUI" method="Water"] [connection signal="timelineEnded" from="dialogic toggle" to="." method="EnableMovement"] diff --git a/prefabs/interactions/generic_item_on_ground_2d.tscn b/prefabs/interactions/generic_item_on_ground_2d.tscn index 574dac0..5282bd1 100644 --- a/prefabs/interactions/generic_item_on_ground_2d.tscn +++ b/prefabs/interactions/generic_item_on_ground_2d.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://dpbbroif2tnil"] +[gd_scene load_steps=17 format=3 uid="uid://dpbbroif2tnil"] [ext_resource type="Script" uid="uid://btusf04xnywhm" path="res://scripts/CSharp/Common/Inventory/ItemOnGround2D.cs" id="1_tlhp6"] [ext_resource type="Script" uid="uid://c8suoi3i6kqai" path="res://scripts/CSharp/Common/Inventory/ItemOnGroundSpawnWith.cs" id="3_xu8me"] @@ -10,6 +10,8 @@ [ext_resource type="AudioStream" uid="uid://bqm6rchwtelxj" path="res://audio/sfx/UI/SFX_ItemPickUp_03.wav" id="8_kflfw"] [ext_resource type="AudioStream" uid="uid://brsufnpmig5fv" path="res://audio/sfx/UI/SFX_ItemPickUp_04.wav" id="9_dltn0"] [ext_resource type="Script" uid="uid://dx25g14a7xi4w" path="res://scripts/CSharp/Common/Audio/AudioPlayer.cs" id="10_clbey"] +[ext_resource type="Script" uid="uid://b5dotkx17gvxg" path="res://scripts/CSharp/Low Code/Events/EventRaiser.cs" id="11_kflfw"] +[ext_resource type="Resource" uid="uid://78t0o27g6aq6" path="res://resources/low code/interactables/event_PickedUpInteractable.tres" id="12_dltn0"] [sub_resource type="Theme" id="Theme_tlhp6"] default_font_size = 80 @@ -74,6 +76,10 @@ bus = &"SFX" playback_type = 2 script = ExtResource("10_clbey") +[node name="PickUpEventRaiser" type="Node" parent="."] +script = ExtResource("11_kflfw") +_eventResources = Array[Object]([ExtResource("12_dltn0")]) + [connection signal="Interacted" from="PickupInteractionArea" to="." method="TryPickUp"] [connection signal="Interacted" from="PickupInteractionArea" to="SFX/PickUpSound" method="PlayOneShot"] diff --git a/project.godot b/project.godot index 30e30a1..b456426 100644 --- a/project.godot +++ b/project.godot @@ -144,6 +144,7 @@ directories/tres_directory={ "default_bus_layout": "res://audio/default_bus_layout.tres", "default_stylebox": "res://addons/dialogic/Modules/DefaultLayoutParts/Layer_SpeakerPortraitTextbox/default_stylebox.tres", "default_vn_style": "res://addons/dialogic/Modules/DefaultLayoutParts/Style_VN_Default/default_vn_style.tres", +"event_PickedUpInteractable": "res://resources/low code/interactables/event_PickedUpInteractable.tres", "event_colorButtonClicked": "res://resources/low code/test/event_colorButtonClicked.tres", "event_newPlantCreated": "res://resources/low code/farming/event_newPlantCreated.tres", "event_textLabelClicked": "res://resources/low code/test/event_textLabelClicked.tres", @@ -214,10 +215,6 @@ folder_colors={ "res://shader/": "pink" } -[global_group] - -Pickup="" - [input] move_left={ diff --git a/resources/low code/interactables/event_PickedUpInteractable.tres b/resources/low code/interactables/event_PickedUpInteractable.tres new file mode 100644 index 0000000..9865d84 --- /dev/null +++ b/resources/low code/interactables/event_PickedUpInteractable.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" script_class="EventResource" load_steps=2 format=3 uid="uid://78t0o27g6aq6"] + +[ext_resource type="Script" uid="uid://ci3t5mvnopntg" path="res://scripts/CSharp/Low Code/Events/EventResource.cs" id="1_acx84"] + +[resource] +script = ExtResource("1_acx84") +metadata/_custom_type_script = "uid://ci3t5mvnopntg" diff --git a/scripts/CSharp/Common/Items/NonInventoryPickup.cs b/scripts/CSharp/Common/Items/NonInventoryPickup.cs deleted file mode 100644 index 1124923..0000000 --- a/scripts/CSharp/Common/Items/NonInventoryPickup.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Babushka.scripts.CSharp.Common.Animation; -using Godot; - -namespace Babushka.scripts.CSharp.Common.Items; - -public partial class NonInventoryPickup : Node2D -{ - public void PlayPickupAnimation() - { - // todo: replace with EventBus implementation as soon as this is possible - GetTree().CallGroup("Pickup", VesnaAnimations.MethodName.PlayPickUpAnimation); - } -} \ No newline at end of file diff --git a/scripts/CSharp/Common/Items/NonInventoryPickup.cs.uid b/scripts/CSharp/Common/Items/NonInventoryPickup.cs.uid deleted file mode 100644 index 699a9ee..0000000 --- a/scripts/CSharp/Common/Items/NonInventoryPickup.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dkk1vjijvgrd7