🐛 added preset fields to main outdoor scene and made them farmable

feature/farming_bugfixes_and_magic_word
kziolkowski 2 months ago
parent 554a319428
commit 443741f5f1

@ -32,21 +32,29 @@ radius = 325.2599
script = ExtResource("1_4mg73") script = ExtResource("1_4mg73")
Payload = 0 Payload = 0
[node name="OutlineSprite" type="Sprite2D" parent="."]
self_modulate = Color(1, 1, 1, 0)
z_index = 1
scale = Vector2(1.3499999, 1.5)
texture = ExtResource("9_wx561")
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "PlantingPlaceholder", "FieldInteractionArea", "_fieldIndex", "_wateringParticles")] [node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_outlineSprite", "PlantingInteraction", "PlantingPlaceholder", "FieldInteractionArea", "_fieldIndex", "_wateringParticles")]
visible = false
z_index = -1 z_index = -1
scale = Vector2(0.9, 1) scale = Vector2(0.9, 1)
script = ExtResource("1_qa01x") script = ExtResource("1_qa01x")
_fieldSprite = NodePath("MaskedField/FieldTexture") _fieldSprite = NodePath("MaskedField/FieldTexture")
_maskSprite = NodePath("MaskedField") _maskSprite = NodePath("MaskedField")
_outlineSprite = NodePath("OutlineSprite") _outlineSprite = NodePath("../OutlineSprite")
_maskOutlineTextures = Array[Texture2D]([ExtResource("9_wx561"), ExtResource("3_2eegd"), ExtResource("4_svbd7")]) _maskOutlineTextures = Array[Texture2D]([ExtResource("9_wx561"), ExtResource("3_2eegd"), ExtResource("4_svbd7")])
_maskTexture = Array[Texture2D]([ExtResource("2_w8caw"), ExtResource("3_c014y"), ExtResource("4_teirr")]) _maskTexture = Array[Texture2D]([ExtResource("2_w8caw"), ExtResource("3_c014y"), ExtResource("4_teirr")])
Tilled = ExtResource("5_wx561") Tilled = ExtResource("5_wx561")
Watered = ExtResource("6_7m4xq") Watered = ExtResource("6_7m4xq")
PlantingInteraction = NodePath("../InteractionArea") FieldState = 0
PlantingInteraction = NodePath("InteractionArea")
PlantingPlaceholder = NodePath("PlantPlaceholder") PlantingPlaceholder = NodePath("PlantPlaceholder")
ItemRepository = ExtResource("7_w8caw") ItemRepository = ExtResource("7_w8caw")
FieldInteractionArea = NodePath("../InteractionArea") FieldInteractionArea = NodePath("InteractionArea")
_sceneKeyProvider = ExtResource("11_cjahb") _sceneKeyProvider = ExtResource("11_cjahb")
_fieldIndex = NodePath("..") _fieldIndex = NodePath("..")
_wateringParticles = NodePath("../pouring water vfx") _wateringParticles = NodePath("../pouring water vfx")
@ -62,16 +70,11 @@ texture = ExtResource("5_wx561")
[node name="PlantPlaceholder" type="Node2D" parent="FieldBehaviour"] [node name="PlantPlaceholder" type="Node2D" parent="FieldBehaviour"]
[node name="OutlineSprite" type="Sprite2D" parent="FieldBehaviour"] [node name="InteractionArea" parent="FieldBehaviour" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
self_modulate = Color(1, 1, 1, 0) position = Vector2(-28.88889, -57)
z_index = 1 scale = Vector2(1.1111112, 1)
scale = Vector2(1.5, 1.5)
texture = ExtResource("9_wx561")
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
position = Vector2(-26, -57)
_active = false _active = false
_spritesToOutline = [NodePath("../FieldBehaviour/OutlineSprite")] _spritesToOutline = [NodePath("../../OutlineSprite")]
_showLabel = false _showLabel = false
[node name="PlantCreationEventRaiser" type="Node" parent="."] [node name="PlantCreationEventRaiser" type="Node" parent="."]
@ -109,22 +112,26 @@ scale_amount_max = 0.8
color = Color(0.400601, 0.62444, 0.791217, 1) color = Color(0.400601, 0.62444, 0.791217, 1)
hue_variation_max = 0.4 hue_variation_max = 0.4
[node name="FieldActivator" type="Node2D" parent="." node_paths=PackedStringArray("_field")] [node name="FieldActivator" type="Node2D" parent="." node_paths=PackedStringArray("_field", "_activatorArea")]
script = ExtResource("22_57jmp") script = ExtResource("22_57jmp")
_field = NodePath("../FieldBehaviour") _field = NodePath("../FieldBehaviour")
_activatorArea = NodePath("InteractionArea")
[node name="InteractionArea" parent="FieldActivator" instance=ExtResource("7_2eegd")] [node name="InteractionArea" parent="FieldActivator" node_paths=PackedStringArray("_spritesToOutline") instance=ExtResource("7_2eegd")]
_useOutline = false _spritesToOutline = [NodePath("../../OutlineSprite")]
[node name="CollisionShape3D" parent="FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_57jmp") shape = SubResource("CircleShape2D_57jmp")
[node name="Marker2D" type="Marker2D" parent="."]
gizmo_extents = 157.0
[connection signal="Planted" from="FieldBehaviour" to="PlantCreationEventRaiser" method="RaiseEvents"] [connection signal="Planted" from="FieldBehaviour" to="PlantCreationEventRaiser" method="RaiseEvents"]
[connection signal="Interacted" from="InteractionArea" to="FieldBehaviour" method="Farm"] [connection signal="Interacted" from="FieldBehaviour/InteractionArea" to="FieldBehaviour" method="Farm"]
[connection signal="ItemInstanceActivated" from="InventoryListener Seeds" to="FieldBehaviour" method="ActivatedSeedInInventory"] [connection signal="ItemInstanceActivated" from="InventoryListener Seeds" to="FieldBehaviour" method="ActivatedSeedInInventory"]
[connection signal="ItemInstanceActivated" from="InventoryListener watering can" to="FieldBehaviour" method="ActivateWateringCanInInventory"] [connection signal="ItemInstanceActivated" from="InventoryListener watering can" to="FieldBehaviour" method="ActivateWateringCanInInventory"]
[connection signal="ItemInstanceActivated" from="InventoryListener rake" to="FieldActivator" method="RakeActivated"] [connection signal="ItemInstanceActivated" from="InventoryListener rake" to="FieldActivator" method="RakeActivated"]
[connection signal="Interacted" from="FieldActivator/InteractionArea" to="FieldActivator/InteractionArea" method="ToggleActive"]
[connection signal="Interacted" from="FieldActivator/InteractionArea" to="FieldActivator" method="ActivateField"] [connection signal="Interacted" from="FieldActivator/InteractionArea" to="FieldActivator" method="ActivateField"]
[connection signal="Interacted" from="FieldActivator/InteractionArea" to="FieldActivator/InteractionArea" method="ToggleActive"]
[editable path="FieldActivator/InteractionArea"] [editable path="FieldActivator/InteractionArea"]

@ -1,4 +1,4 @@
[gd_scene load_steps=115 format=3 uid="uid://gigb28qk8t12"] [gd_scene load_steps=116 format=3 uid="uid://gigb28qk8t12"]
[ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="1_7wfwe"] [ext_resource type="PackedScene" uid="uid://c25udixd5m6l0" path="res://prefabs/characters/Player2D.tscn" id="1_7wfwe"]
[ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_7b2ri"] [ext_resource type="Texture2D" uid="uid://8sr11ex30n0m" path="res://art/mockups/Kenney_Backgrounds/Samples/uncolored_hills.png" id="2_7b2ri"]
@ -77,6 +77,7 @@
[ext_resource type="Resource" uid="uid://byjqeukpibkvi" path="res://resources/quests/demo/7_talk_yeli_inside_1.tres" id="76_xcwle"] [ext_resource type="Resource" uid="uid://byjqeukpibkvi" path="res://resources/quests/demo/7_talk_yeli_inside_1.tres" id="76_xcwle"]
[ext_resource type="Script" uid="uid://dih1b0opgc3f7" path="res://scripts/GdScript/dialogic_start_specific.gd" id="77_l7ekk"] [ext_resource type="Script" uid="uid://dih1b0opgc3f7" path="res://scripts/GdScript/dialogic_start_specific.gd" id="77_l7ekk"]
[ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="77_xcwle"] [ext_resource type="Resource" uid="uid://tt3d166mntmi" path="res://resources/low code/farming/var_sceneNameProvider.tres" id="77_xcwle"]
[ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/base_field.tscn" id="78_xcwle"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_wtdui"]
shader = ExtResource("13_7p0hq") shader = ExtResource("13_7p0hq")
@ -1116,6 +1117,61 @@ scale = Vector2(1, 1)
[node name="FieldParent" type="Node2D" parent="YSorted"] [node name="FieldParent" type="Node2D" parent="YSorted"]
position = Vector2(0, -200) position = Vector2(0, -200)
[node name="BaseField" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(8807, 3061)
[node name="BaseField2" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(9335, 3562)
Payload = 1
[node name="BaseField3" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(9854, 3061)
Payload = 2
[node name="BaseField4" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(10499, 3536)
Payload = 3
[node name="BaseField5" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(11027, 3035)
Payload = 4
[node name="BaseField6" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(11394, 3617)
Payload = 5
[node name="BaseField7" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(11869, 3026)
Payload = 6
[node name="BaseField8" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(12353, 3554)
Payload = 7
[node name="BaseField9" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(12828, 2999)
Payload = 8
[node name="BaseField10" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(13285, 3536)
Payload = 9
[node name="BaseField11" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(13733, 2990)
Payload = 10
[node name="BaseField12" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(14261, 3474)
Payload = 11
[node name="BaseField13" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(14753, 2982)
Payload = 12
[node name="BaseField14" parent="YSorted/FieldParent" instance=ExtResource("78_xcwle")]
position = Vector2(15201, 3519)
Payload = 13
[node name="Farm visuals" type="Node2D" parent="YSorted"] [node name="Farm visuals" type="Node2D" parent="YSorted"]
position = Vector2(-60, 122) position = Vector2(-60, 122)
@ -2400,7 +2456,6 @@ _variableResource = ExtResource("77_xcwle")
_payloadToSet = "farmOutside" _payloadToSet = "farmOutside"
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"] [connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
[connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"]
[connection signal="InteractedTool" from="YSorted/Well/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"] [connection signal="InteractedTool" from="YSorted/Well/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"] [connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"] [connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]

@ -2248,7 +2248,6 @@ playback_type = 2
script = ExtResource("59_0knno") script = ExtResource("59_0knno")
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"] [connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
[connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"]
[connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"] [connection signal="InteractedTool" from="YSorted/Brünnen/InteractionArea" to="YSorted/Vesna" method="TryFillWateringCan"]
[connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"] [connection signal="SuccessfulPickUp" from="YSorted/CanGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]
[connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"] [connection signal="SuccessfulPickUp" from="YSorted/RakeGenericPickup" to="YSorted/Vesna" method="HandlePickUp"]

@ -2202,7 +2202,6 @@ makeActive = true
[connection signal="FightStarted" from="Fight2/FightBaseScene" to="YSorted/Vesna" method="DisableMovement"] [connection signal="FightStarted" from="Fight2/FightBaseScene" to="YSorted/Vesna" method="DisableMovement"]
[connection signal="timelineEnded" from="YSorted/Chuga/Dialogic starter/DialogicToggle" to="YSorted/Chuga" method="set_position" binds= [Vector2(14579, 2951)]] [connection signal="timelineEnded" from="YSorted/Chuga/Dialogic starter/DialogicToggle" to="YSorted/Chuga" method="set_position" binds= [Vector2(14579, 2951)]]
[connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"] [connection signal="FilledWateringCan" from="YSorted/Vesna" to="Audio/SFX/FillWater SFX2" method="PlayOneShot"]
[connection signal="WateringField" from="YSorted/Vesna/FarmingControls" to="Audio/SFX/Watering SFX" method="PlayOneShot"]
[connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"] [connection signal="finished" from="Audio/Background Music Ramp up" to="Audio/Background Music loop" method="PlayFromOffset"]
[connection signal="ready" from="SpecialQuestNodes/InstantStartQuest" to="SpecialQuestNodes/InstantStartQuest" method="Trigger"] [connection signal="ready" from="SpecialQuestNodes/InstantStartQuest" to="SpecialQuestNodes/InstantStartQuest" method="Trigger"]

@ -246,7 +246,7 @@ stream_0/stream = ExtResource("61_wy1mx")
stream_1/stream = ExtResource("62_kmjnt") stream_1/stream = ExtResource("62_kmjnt")
stream_2/stream = ExtResource("63_td2xu") stream_2/stream = ExtResource("63_td2xu")
[node name="BabushkaSceneFarmOutside2d" type="Node2D"] [node name="BabushkaSceneBeets" type="Node2D"]
script = ExtResource("1_6krrk") script = ExtResource("1_6krrk")
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn") _sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn")
@ -1750,10 +1750,16 @@ scale = Vector2(1, 0.993819)
position = Vector2(651, 2630.26) position = Vector2(651, 2630.26)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField" index="1"]
visible = true
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 2 _state = 2
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_qavgq") shape = SubResource("CircleShape2D_qavgq")
@ -1762,10 +1768,16 @@ position = Vector2(1226, 3098.15)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 1 Payload = 1
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="1"]
visible = true
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 2 _state = 2
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField2" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField2/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_njxly") shape = SubResource("CircleShape2D_njxly")
@ -1774,10 +1786,16 @@ position = Vector2(1782, 2606.11)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 2 Payload = 2
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="1"]
visible = true
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 2 _state = 2
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField3" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField3/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_54ty3") shape = SubResource("CircleShape2D_54ty3")
@ -1786,13 +1804,17 @@ position = Vector2(2559, 2624.22)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 3 Payload = 3
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="0"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="1"]
visible = true
FieldState = 3 FieldState = 3
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 2 _state = 2
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField4" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField4/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_gbxtf") shape = SubResource("CircleShape2D_gbxtf")
@ -1801,13 +1823,17 @@ position = Vector2(3305, 2624.22)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 4 Payload = 4
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="0"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="1"]
visible = true
FieldState = 3 FieldState = 3
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 2 _state = 2
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField5" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField5/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_6krrk") shape = SubResource("CircleShape2D_6krrk")
@ -1816,13 +1842,17 @@ position = Vector2(4033, 2618.18)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 5 Payload = 5
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="0"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="1"]
visible = true
FieldState = 3 FieldState = 3
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 1 _state = 1
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField6" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField6/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_4ktoi") shape = SubResource("CircleShape2D_4ktoi")
@ -1831,13 +1861,17 @@ position = Vector2(4755, 2630.26)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 6 Payload = 6
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="0"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="1"]
visible = true
FieldState = 3 FieldState = 3
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 2 _state = 2
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField7" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField7/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_aaup4") shape = SubResource("CircleShape2D_aaup4")
@ -1846,13 +1880,17 @@ position = Vector2(4418, 3226.95)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 7 Payload = 7
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="0"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="1"]
visible = true
FieldState = 3 FieldState = 3
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")]
_state = 2 _state = 2
_field = NodePath("../..") _field = NodePath("../..")
[node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField8" index="8"]
visible = false
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField8/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_v10dc") shape = SubResource("CircleShape2D_v10dc")
@ -1861,13 +1899,11 @@ position = Vector2(5317, 3208.83)
scale = Vector2(1, 1.00622) scale = Vector2(1, 1.00622)
Payload = 8 Payload = 8
[node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="0"] [node name="FieldBehaviour" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="1"]
visible = false visible = true
FieldState = 3
[node name="Beet2" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldBehaviour/PlantPlaceholder" index="0" node_paths=PackedStringArray("_field") instance=ExtResource("41_vyqmy")] [node name="FieldActivator" parent="YSorted/Farm visuals/FieldParent/BaseField9" index="8"]
_state = 1 visible = false
_field = NodePath("../..")
[node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldActivator/InteractionArea/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Farm visuals/FieldParent/BaseField9/FieldActivator/InteractionArea/Area2D" index="0"]
shape = SubResource("CircleShape2D_4pibb") shape = SubResource("CircleShape2D_4pibb")
@ -1880,6 +1916,7 @@ _spritesToOutline = [NodePath("Fence Door2")]
_id = 0 _id = 0
[node name="CollisionShape3D" parent="YSorted/Blocker/BackToFarm/Area2D" index="0"] [node name="CollisionShape3D" parent="YSorted/Blocker/BackToFarm/Area2D" index="0"]
position = Vector2(-37, -208)
shape = SubResource("CircleShape2D_dr6bm") shape = SubResource("CircleShape2D_dr6bm")
[node name="Fence Door2" type="Sprite2D" parent="YSorted/Blocker/BackToFarm"] [node name="Fence Door2" type="Sprite2D" parent="YSorted/Blocker/BackToFarm"]

@ -112,7 +112,6 @@ public partial class InteractionArea2D : Node2D
public void SetSpriteActiveState(bool success, int id) // TODO: remove public void SetSpriteActiveState(bool success, int id) // TODO: remove
{ {
GD.PrintErr("SetSpriteActiveState is being called.");
if (!_active) if (!_active)
return; return;
} }

@ -1,27 +1,51 @@
using Babushka.scripts.CSharp.Common.CharacterControls;
using Godot; using Godot;
namespace Babushka.scripts.CSharp.Common.Farming; namespace Babushka.scripts.CSharp.Common.Farming;
/// <summary>
/// Enables a preset field in the scene sothat it can be used for farming.
/// </summary>
public partial class FieldActivator : Node public partial class FieldActivator : Node
{ {
[Export] private Node2D _field; [Export] private FieldBehaviour2D _field;
[Export] private InteractionArea2D _activatorArea;
private bool _activated = false; private bool _used = false;
private bool _rakeInHand; private bool _rakeInHand;
public override void _Ready()
{
ToggleInteractionArea();
}
/// <summary>
/// Activates the fieldbehaviour node and sets it to the tilled state.
/// </summary>
public void ActivateField() public void ActivateField()
{ {
if (!_activated && _rakeInHand) if (!_used && _rakeInHand)
{ {
GD.Print("Tryina activate this field right here....");
_field.Visible = true; _field.Visible = true;
_activated = true; _field.UpdateFieldState(FieldState.Tilled);
_used = true;
} }
} }
/// <summary>
/// Reacts to changes in the inventory.
/// If setup correctly, the field activator interactable should only trigger when using the rake.
/// </summary>
/// <param name="activated"></param>
public void RakeActivated(bool activated) public void RakeActivated(bool activated)
{ {
_rakeInHand = activated; _rakeInHand = activated;
ToggleInteractionArea();
}
private void ToggleInteractionArea()
{
_activatorArea.IsActive = !_used && _rakeInHand;
} }
} }

@ -43,7 +43,7 @@ public partial class FieldBehaviour2D : Sprite2D
// fieldstate == tilled / watered && samen im Inventar // fieldstate == tilled / watered && samen im Inventar
_canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive; _canPlant = (FieldState == FieldState.Tilled || FieldState == FieldState.Watered) && _seedsActive;
// fieldstate == tilled && watering can ausgewählt // fieldstate == tilled && watering can ausgewählt
_canWater = FieldState == FieldState.Tilled && _wateringCanActive; _canWater = (FieldState == FieldState.Tilled || FieldState == FieldState.Planted) && _wateringCanActive;
FieldInteractionArea.IsActive = _canPlant || _canWater; FieldInteractionArea.IsActive = _canPlant || _canWater;
} }
@ -116,7 +116,7 @@ public partial class FieldBehaviour2D : Sprite2D
/// </summary> /// </summary>
public void Farm() public void Farm()
{ {
if (_canPlant || TryPlant()) if (_canPlant && TryPlant())
{ {
EmitSignal(SignalName.Planted); EmitSignal(SignalName.Planted);
UpdateFieldState(FieldState.Planted); UpdateFieldState(FieldState.Planted);

@ -24,7 +24,6 @@ public partial class FieldService : Node
//Create //Create
public bool TryAddEntry(string sceneName, int fieldIndex, FieldBehaviour2D field) public bool TryAddEntry(string sceneName, int fieldIndex, FieldBehaviour2D field)
{ {
GD.Print("Trying to add a field at: " + fieldIndex);
if (_outerDict != null ) if (_outerDict != null )
{ {
FieldsInScene innerDict; FieldsInScene innerDict;

@ -67,7 +67,6 @@ public partial class PlantBehaviour2D : Node2D
return; return;
} }
GD.Print("Growing plant.");
switch (_state) switch (_state)
{ {
case PlantState.None: case PlantState.None:

Loading…
Cancel
Save