Compare commits
5 Commits
ce2d7eb773
...
283caf282b
| Author | SHA1 | Date | |
|---|---|---|---|
| 283caf282b | |||
| 7c03964d33 | |||
| 36c948f116 | |||
| d0ba4076b3 | |||
| 7fd26ffed3 |
@@ -1,7 +1,9 @@
|
|||||||
[gd_scene load_steps=480 format=3 uid="uid://c25udixd5m6l0"]
|
[gd_scene load_steps=475 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://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"]
|
[ext_resource type="Script" uid="uid://cjbclkxesh3hc" path="res://scripts/CSharp/Common/CharacterControls/PlayerMovement.cs" id="2_1vqmv"]
|
||||||
|
[ext_resource type="Resource" uid="uid://c5yg3lx756v4v" path="res://resources/items/hoe.tres" id="2_dnm27"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="3_e04c3"]
|
||||||
[ext_resource type="Script" uid="uid://n7oihifvqp23" path="res://scripts/CSharp/Common/Animation/VesnaAnimations.cs" id="3_f6xmn"]
|
[ext_resource type="Script" uid="uid://n7oihifvqp23" path="res://scripts/CSharp/Common/Animation/VesnaAnimations.cs" id="3_f6xmn"]
|
||||||
[ext_resource type="Texture2D" uid="uid://7jrac5ii3ah3" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0001.png" id="3_tb2wl"]
|
[ext_resource type="Texture2D" uid="uid://7jrac5ii3ah3" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0001.png" id="3_tb2wl"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c06b551t2qlo6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0002.png" id="4_dy5kt"]
|
[ext_resource type="Texture2D" uid="uid://c06b551t2qlo6" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0002.png" id="4_dy5kt"]
|
||||||
@@ -271,12 +273,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://b37lpqrsjjuc0" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0010.png" id="466_pw1ip"]
|
[ext_resource type="Texture2D" uid="uid://b37lpqrsjjuc0" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0010.png" id="466_pw1ip"]
|
||||||
[ext_resource type="Script" uid="uid://er03dkj8axlr" path="res://scripts/CSharp/Common/UI/WateringCanUi.cs" id="467_j4m0f"]
|
[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="Texture2D" uid="uid://oi11ax6tml6j" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0012.png" id="468_08021"]
|
||||||
[ext_resource type="Texture2D" uid="uid://l0k3vh3kdprp" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-1.png" id="468_f6xmn"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://t4w7axbof7bq" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-2.png" id="469_nxglm"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://di2npqkvvst6x" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-3.png" id="470_8fyd7"]
|
|
||||||
[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="Texture2D" uid="uid://dsjj23763pej5" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0014.png" id="470_bmmei"]
|
||||||
[ext_resource type="Texture2D" uid="uid://clti3basli30" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-4.png" id="471_dnm27"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://n1v4hgd467wp" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-5.png" id="472_e04c3"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://blh0t2ofqj2uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png" id="472_wdxsr"]
|
[ext_resource type="Texture2D" uid="uid://blh0t2ofqj2uq" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png" id="472_wdxsr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://l5ym7gi82l1b" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png" id="473_g32y8"]
|
[ext_resource type="Texture2D" uid="uid://l5ym7gi82l1b" path="res://art/ui/UI/Watercan-ui/Tropfen-ui-6.png" id="473_g32y8"]
|
||||||
[ext_resource type="Texture2D" uid="uid://3t1m2xi4ks75" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0018.png" id="474_tu801"]
|
[ext_resource type="Texture2D" uid="uid://3t1m2xi4ks75" path="res://art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0018.png" id="474_tu801"]
|
||||||
@@ -470,8 +467,6 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://ds2y033vahyi5" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0016.png" id="810_224qh"]
|
[ext_resource type="Texture2D" uid="uid://ds2y033vahyi5" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0016.png" id="810_224qh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b0v61all3tsny" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0018.png" id="812_sf8kv"]
|
[ext_resource type="Texture2D" uid="uid://b0v61all3tsny" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0018.png" id="812_sf8kv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cao7vqax8cblo" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0020.png" id="814_3uq4g"]
|
[ext_resource type="Texture2D" uid="uid://cao7vqax8cblo" path="res://art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0020.png" id="814_3uq4g"]
|
||||||
[ext_resource type="Texture2D" uid="uid://3pj2q7wtuion" path="res://art/farm/farming/farmobjekte/hoe.png" id="815_1ia2b"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://x8hr8287ff2n" path="res://art/farm/farming/farmobjekte/tools atlas.png" id="816_1a3c1"]
|
|
||||||
[ext_resource type="Script" uid="uid://bcskt5ckh3rqa" path="res://scripts/CSharp/Common/Farming/FarmingControls2D.cs" id="817_6nrw3"]
|
[ext_resource type="Script" uid="uid://bcskt5ckh3rqa" path="res://scripts/CSharp/Common/Farming/FarmingControls2D.cs" id="817_6nrw3"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/base_field.tscn" id="818_16w6h"]
|
[ext_resource type="PackedScene" uid="uid://b1d2e7ely6hyw" path="res://prefabs/farm/base_field.tscn" id="818_16w6h"]
|
||||||
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"]
|
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="819_4na52"]
|
||||||
@@ -2079,6 +2074,8 @@ script = ExtResource("1_yd5ep")
|
|||||||
_farmingControls = NodePath("FarmingControls")
|
_farmingControls = NodePath("FarmingControls")
|
||||||
_player2d = NodePath("CharacterBody2D")
|
_player2d = NodePath("CharacterBody2D")
|
||||||
_vesnaAnimations = NodePath("CharacterBody2D/visuals")
|
_vesnaAnimations = NodePath("CharacterBody2D/visuals")
|
||||||
|
_hoe = ExtResource("2_dnm27")
|
||||||
|
_wateringCan = ExtResource("3_e04c3")
|
||||||
|
|
||||||
[node name="CharacterBody2D" type="CharacterBody2D" parent="." groups=["PlantGrowing"]]
|
[node name="CharacterBody2D" type="CharacterBody2D" parent="." groups=["PlantGrowing"]]
|
||||||
position = Vector2(0, 374)
|
position = Vector2(0, 374)
|
||||||
@@ -2108,72 +2105,27 @@ frame = 7
|
|||||||
frame_progress = 0.229832
|
frame_progress = 0.229832
|
||||||
offset = Vector2(0, -450)
|
offset = Vector2(0, -450)
|
||||||
|
|
||||||
[node name="Hoe" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
[node name="WateringCanUI" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_slider")]
|
||||||
visible = false
|
|
||||||
position = Vector2(-35, -596)
|
|
||||||
rotation = 0.74351
|
|
||||||
scale = Vector2(0.24, 0.24)
|
|
||||||
texture = ExtResource("815_1ia2b")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(980, 179, 374, 1233)
|
|
||||||
|
|
||||||
[node name="WateringCanEmpty" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(-38, -603)
|
|
||||||
scale = Vector2(0.5, 0.5)
|
|
||||||
texture = ExtResource("816_1a3c1")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(-1, 1128, 417, 299)
|
|
||||||
|
|
||||||
[node name="WateringCanFull" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
|
||||||
visible = false
|
|
||||||
modulate = Color(0.286, 0.16, 1, 1)
|
|
||||||
position = Vector2(-38, -603)
|
|
||||||
scale = Vector2(0.5, 0.5)
|
|
||||||
texture = ExtResource("816_1a3c1")
|
|
||||||
region_enabled = true
|
|
||||||
region_rect = Rect2(-1, 1128, 417, 299)
|
|
||||||
|
|
||||||
[node name="WateringCanUI" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_stages")]
|
|
||||||
position = Vector2(0, -929)
|
position = Vector2(0, -929)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
script = ExtResource("467_j4m0f")
|
script = ExtResource("467_j4m0f")
|
||||||
_stages = [NodePath("6"), NodePath("5"), NodePath("4"), NodePath("3"), NodePath("2"), NodePath("1")]
|
_slider = NodePath("HSlider")
|
||||||
|
|
||||||
[node name="1" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
[node name="HSlider" type="HSlider" parent="CharacterBody2D/WateringCanUI"]
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(1, 0)
|
modulate = Color(0.3515, 0.780425, 0.95, 1)
|
||||||
scale = Vector2(1.8, 1.8)
|
custom_minimum_size = Vector2(150, 50)
|
||||||
texture = ExtResource("468_f6xmn")
|
anchors_preset = 5
|
||||||
|
anchor_left = 0.5
|
||||||
[node name="2" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
anchor_right = 0.5
|
||||||
visible = false
|
offset_left = -43.0
|
||||||
position = Vector2(2, 2)
|
offset_right = 57.0
|
||||||
scale = Vector2(1.6, 1.6)
|
offset_bottom = 64.0
|
||||||
texture = ExtResource("469_nxglm")
|
grow_horizontal = 2
|
||||||
|
max_value = 1.0
|
||||||
[node name="3" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
step = 0.0
|
||||||
visible = false
|
editable = false
|
||||||
position = Vector2(3, 5)
|
scrollable = false
|
||||||
scale = Vector2(1.4, 1.4)
|
|
||||||
texture = ExtResource("470_8fyd7")
|
|
||||||
|
|
||||||
[node name="4" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(3, 7)
|
|
||||||
scale = Vector2(1.2, 1.2)
|
|
||||||
texture = ExtResource("471_dnm27")
|
|
||||||
|
|
||||||
[node name="5" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(2, 7)
|
|
||||||
scale = Vector2(1.1, 1.1)
|
|
||||||
texture = ExtResource("472_e04c3")
|
|
||||||
|
|
||||||
[node name="6" type="Sprite2D" parent="CharacterBody2D/WateringCanUI"]
|
|
||||||
visible = false
|
|
||||||
position = Vector2(3, 12)
|
|
||||||
texture = ExtResource("473_g32y8")
|
|
||||||
|
|
||||||
[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer", "_wateringParticles")]
|
[node name="FarmingControls" type="Node2D" parent="." node_paths=PackedStringArray("_movingPlayer", "_wateringParticles")]
|
||||||
script = ExtResource("817_6nrw3")
|
script = ExtResource("817_6nrw3")
|
||||||
@@ -2221,7 +2173,7 @@ script = ExtResource("475_nxglm")
|
|||||||
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
|
||||||
[connection signal="PickedUpTool" from="." to="CharacterBody2D/visuals" method="ActivateTool"]
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D/visuals" method="ActivateTool"]
|
||||||
[connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
||||||
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D" method="PlayWateringAnimation"]
|
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/visuals" method="PlayWateringAnimation"]
|
||||||
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/WateringCanUI" method="Water"]
|
[connection signal="WateringField" from="FarmingControls" to="CharacterBody2D/WateringCanUI" method="Water"]
|
||||||
[connection signal="timelineEnded" from="dialogic toggle" to="." method="EnableMovement"]
|
[connection signal="timelineEnded" from="dialogic toggle" to="." method="EnableMovement"]
|
||||||
[connection signal="timelineStarted" from="dialogic toggle" to="." method="DisableMovement"]
|
[connection signal="timelineStarted" from="dialogic toggle" to="." method="DisableMovement"]
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ _bigPlants = [NodePath("BigPlant/01"), NodePath("BigPlant/02"), NodePath("BigPla
|
|||||||
_readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03"), NodePath("ReadyPlantInventoryItem/ReadyPlant/04")]
|
_readyPlants = [NodePath("ReadyPlantInventoryItem/ReadyPlant/01"), NodePath("ReadyPlantInventoryItem/ReadyPlant/02"), NodePath("ReadyPlantInventoryItem/ReadyPlant/03"), NodePath("ReadyPlantInventoryItem/ReadyPlant/04")]
|
||||||
_harvestablePlant = NodePath("ReadyPlantInventoryItem")
|
_harvestablePlant = NodePath("ReadyPlantInventoryItem")
|
||||||
_magicEffect = NodePath("magic vfx")
|
_magicEffect = NodePath("magic vfx")
|
||||||
|
_magicWordNeeded = false
|
||||||
|
|
||||||
[node name="Seeds" type="Node2D" parent="."]
|
[node name="Seeds" type="Node2D" parent="."]
|
||||||
position = Vector2(0, 0.5)
|
position = Vector2(0, 0.5)
|
||||||
@@ -225,6 +226,7 @@ color = Color(0.400601, 0.62444, 0.791217, 1)
|
|||||||
hue_variation_max = 0.4
|
hue_variation_max = 0.4
|
||||||
|
|
||||||
[connection signal="Interacted" from="GrowingInteractionArea" to="." method="Grow"]
|
[connection signal="Interacted" from="GrowingInteractionArea" to="." method="Grow"]
|
||||||
|
[connection signal="SuccessfulPickUp" from="ReadyPlantInventoryItem" to="." method="queue_free"]
|
||||||
|
|
||||||
[editable path="GrowingInteractionArea"]
|
[editable path="GrowingInteractionArea"]
|
||||||
[editable path="ReadyPlantInventoryItem"]
|
[editable path="ReadyPlantInventoryItem"]
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://bqjx3luofm6yi"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://coqch6yjvjuc0" path="res://scripts/CSharp/Common/Farming/SeedRepository.cs" id="1_i7nvs"]
|
|
||||||
[ext_resource type="Resource" uid="uid://d1uuxp1lp4aro" path="res://resources/items/tomato_seed.tres" id="2_jetk1"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://gishbn0a8eke" path="res://prefabs/farm/tomato_plant.tscn" id="3_ulp3m"]
|
|
||||||
|
|
||||||
[node name="SeedRepository" type="Node2D"]
|
|
||||||
script = ExtResource("1_i7nvs")
|
|
||||||
seedToPlantRepository = Dictionary[Object, Node]({
|
|
||||||
ExtResource("2_jetk1"): ExtResource("3_ulp3m")
|
|
||||||
})
|
|
||||||
+1
-2
@@ -28,11 +28,10 @@ buses/default_bus_layout="uid://b6dwkmkyb0axk"
|
|||||||
SceneTransition="*res://scenes/SceneTransition.tscn"
|
SceneTransition="*res://scenes/SceneTransition.tscn"
|
||||||
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
|
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
|
||||||
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
|
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
|
||||||
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
|
|
||||||
QuestManager="*res://prefabs/quests/quest_manager_autoload.tscn"
|
QuestManager="*res://prefabs/quests/quest_manager_autoload.tscn"
|
||||||
FightManagerAutoload="*res://prefabs/fight/fight_manager_autoload.tscn"
|
FightManagerAutoload="*res://prefabs/fight/fight_manager_autoload.tscn"
|
||||||
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
|
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
|
||||||
SeedRepository="*res://prefabs/seed_repository.tscn"
|
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
|
||||||
|
|
||||||
[dialogic]
|
[dialogic]
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_resource type="Resource" script_class="ItemResource" load_steps=3 format=3 uid="uid://d1uuxp1lp4aro"]
|
[gd_resource type="Resource" script_class="ItemResource" load_steps=4 format=3 uid="uid://d1uuxp1lp4aro"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cbskymrxs6ksu" path="res://scripts/CSharp/Common/Inventory/ItemResource.cs" id="1_dustj"]
|
[ext_resource type="Script" uid="uid://cbskymrxs6ksu" path="res://scripts/CSharp/Common/Inventory/ItemResource.cs" id="1_dustj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ce04nexh36uwe" path="res://art/ui/UI/icons/icon-seed-tomatoe.png" id="1_u15c2"]
|
[ext_resource type="Texture2D" uid="uid://ce04nexh36uwe" path="res://art/ui/UI/icons/icon-seed-tomatoe.png" id="1_u15c2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://gishbn0a8eke" path="res://prefabs/farm/tomato_plant.tscn" id="2_xhgqu"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_dustj")
|
script = ExtResource("1_dustj")
|
||||||
@@ -9,4 +10,5 @@ name = "Tomato Seed"
|
|||||||
color = Color(0.135039, 0.307214, 0.333128, 1)
|
color = Color(0.135039, 0.307214, 0.333128, 1)
|
||||||
icon = ExtResource("1_u15c2")
|
icon = ExtResource("1_u15c2")
|
||||||
maxStack = 20
|
maxStack = 20
|
||||||
|
itemPrefab = ExtResource("2_xhgqu")
|
||||||
metadata/_custom_type_script = "uid://cbskymrxs6ksu"
|
metadata/_custom_type_script = "uid://cbskymrxs6ksu"
|
||||||
|
|||||||
@@ -1036,7 +1036,6 @@ z_index = 1
|
|||||||
position = Vector2(9322, 2018)
|
position = Vector2(9322, 2018)
|
||||||
_fieldParent = NodePath("../Farm visuals/FieldParent")
|
_fieldParent = NodePath("../Farm visuals/FieldParent")
|
||||||
_hoe = ExtResource("28_6b2nr")
|
_hoe = ExtResource("28_6b2nr")
|
||||||
_wateringCan = ExtResource("28_ipqaa")
|
|
||||||
|
|
||||||
[node name="FarmingControls" parent="YSorted/Vesna" index="1" node_paths=PackedStringArray("_camera")]
|
[node name="FarmingControls" parent="YSorted/Vesna" index="1" node_paths=PackedStringArray("_camera")]
|
||||||
_camera = NodePath("../../../Camera2D")
|
_camera = NodePath("../../../Camera2D")
|
||||||
|
|||||||
@@ -77,16 +77,26 @@ public partial class InteractionArea2D : Node2D
|
|||||||
|
|
||||||
if (@event.IsAction("interact") && @event.IsPressed())
|
if (@event.IsAction("interact") && @event.IsPressed())
|
||||||
{
|
{
|
||||||
if (_area.HasOverlappingBodies())
|
TryInteract();
|
||||||
{
|
}
|
||||||
_label.Hide();
|
|
||||||
|
if (@event.IsActionPressed("click") && @event.IsPressed())
|
||||||
|
{
|
||||||
|
TryInteract();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TryInteract()
|
||||||
|
{
|
||||||
|
if (_area.HasOverlappingBodies())
|
||||||
|
{
|
||||||
|
_label.Hide();
|
||||||
|
|
||||||
if (_useSprite && _useOutline)
|
if (_useSprite && _useOutline)
|
||||||
_spriteToOutline.Material = _backupMaterial;
|
_spriteToOutline.Material = _backupMaterial;
|
||||||
|
|
||||||
EmitSignal(SignalName.InteractedTool, _id);
|
EmitSignal(SignalName.InteractedTool, _id);
|
||||||
EmitSignal(SignalName.Interacted);
|
EmitSignal(SignalName.Interacted);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
[Export] private Texture2D Watered;
|
[Export] private Texture2D Watered;
|
||||||
[Export] public FieldState FieldState = FieldState.Tilled;
|
[Export] public FieldState FieldState = FieldState.Tilled;
|
||||||
[Export] public InteractionArea2D PlantingInteraction;
|
[Export] public InteractionArea2D PlantingInteraction;
|
||||||
[Export] public Node PlantingPlaceholder;
|
[Export] public Node2D PlantingPlaceholder;
|
||||||
|
|
||||||
|
|
||||||
public Vector2 FieldPosition;
|
public Vector2 FieldPosition;
|
||||||
@@ -39,7 +39,7 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
case FieldState.Tilled:
|
case FieldState.Tilled:
|
||||||
FieldState = FieldState.Tilled;
|
FieldState = FieldState.Tilled;
|
||||||
_fieldSprite.Texture = Tilled;
|
_fieldSprite.Texture = Tilled;
|
||||||
PlantingInteraction.IsActive = false;
|
PlantingInteraction.IsActive = true;
|
||||||
break;
|
break;
|
||||||
case FieldState.Watered:
|
case FieldState.Watered:
|
||||||
FieldState = FieldState.Watered;
|
FieldState = FieldState.Watered;
|
||||||
@@ -48,6 +48,7 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
break;
|
break;
|
||||||
case FieldState.Planted:
|
case FieldState.Planted:
|
||||||
FieldState = FieldState.Planted;
|
FieldState = FieldState.Planted;
|
||||||
|
_fieldSprite.Texture = Tilled;
|
||||||
PlantingInteraction.IsActive = false;
|
PlantingInteraction.IsActive = false;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -67,12 +68,9 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void Farm()
|
public void Farm()
|
||||||
{
|
{
|
||||||
if (FieldState == FieldState.Watered)
|
if (TryPlant())
|
||||||
{
|
{
|
||||||
if (TryPlant())
|
UpdateFieldState(FieldState.Planted);
|
||||||
{
|
|
||||||
UpdateFieldState(FieldState.Planted);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,10 +80,10 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
int currentSlotIndex = InventoryManager.Instance.CurrentSelectedSlotIndex;
|
int currentSlotIndex = InventoryManager.Instance.CurrentSelectedSlotIndex;
|
||||||
ItemInstance? item = InventoryManager.Instance.playerInventory.Slots[currentSlotIndex].itemInstance;
|
ItemInstance? item = InventoryManager.Instance.playerInventory.Slots[currentSlotIndex].itemInstance;
|
||||||
|
|
||||||
if (item == null)
|
if (item == null || PlantingPlaceholder.GetChildCount() > 0)
|
||||||
return success;
|
return success;
|
||||||
|
|
||||||
PackedScene? plantPrefab = SeedRepository.Instance.GetPlant(item.blueprint);
|
PackedScene? plantPrefab = item.blueprint.itemPrefab;
|
||||||
|
|
||||||
if (plantPrefab != null)
|
if (plantPrefab != null)
|
||||||
{
|
{
|
||||||
@@ -93,6 +91,14 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
if (plantInstance is Node2D plant2d)
|
if (plantInstance is Node2D plant2d)
|
||||||
{
|
{
|
||||||
PlantingPlaceholder.AddChild(plant2d);
|
PlantingPlaceholder.AddChild(plant2d);
|
||||||
|
plant2d.GlobalPosition = PlantingPlaceholder.GlobalPosition;
|
||||||
|
PlantBehaviour2D? plantBehaviour = plant2d as PlantBehaviour2D;
|
||||||
|
|
||||||
|
if (plantBehaviour != null)
|
||||||
|
{
|
||||||
|
plantBehaviour.Field = this;
|
||||||
|
}
|
||||||
|
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using Babushka.scripts.CSharp.Common.Animation;
|
||||||
using Babushka.scripts.CSharp.Common.Inventory;
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
@@ -24,6 +25,22 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
private string _magicWordDialogicEventName = "MagicWord";
|
private string _magicWordDialogicEventName = "MagicWord";
|
||||||
private Sprite2D _currentPlantSprite = null;
|
private Sprite2D _currentPlantSprite = null;
|
||||||
private bool _magicWordSaid = false;
|
private bool _magicWordSaid = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// public accessor for the field reference
|
||||||
|
/// </summary>
|
||||||
|
public FieldBehaviour2D Field
|
||||||
|
{
|
||||||
|
get => _field;
|
||||||
|
set => _field = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
_state = PlantState.Planted;
|
||||||
|
_currentPlantSprite = GetRandomSprite(_seeds);
|
||||||
|
_currentPlantSprite.Visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -34,9 +51,7 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
|
if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//GetTree().CallGroup("PlantGrowing", PlayerMovement.MethodName.PlayFarmingAnimation);
|
GetTree().CallGroup("PlantGrowing", VesnaAnimations.MethodName.PlayFarmingAnimation);
|
||||||
// todo:
|
|
||||||
// find out why the last plant stage is being skipped the second time around
|
|
||||||
switch (_state)
|
switch (_state)
|
||||||
{
|
{
|
||||||
case PlantState.None:
|
case PlantState.None:
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
using Babushka.scripts.CSharp.Common.Inventory;
|
|
||||||
using Godot;
|
|
||||||
using Godot.Collections;
|
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Farming;
|
|
||||||
|
|
||||||
public partial class SeedRepository : Node
|
|
||||||
{
|
|
||||||
public static SeedRepository Instance { get; private set; } = null!;
|
|
||||||
|
|
||||||
// todo: Find out how to not use PackedScene here because it does not inherit from Node
|
|
||||||
[Export] private Dictionary<ItemResource, PackedScene> seedToPlantRepository;
|
|
||||||
|
|
||||||
public override void _EnterTree()
|
|
||||||
{
|
|
||||||
Instance = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PackedScene? GetPlant(ItemResource resource)
|
|
||||||
{
|
|
||||||
if (seedToPlantRepository.ContainsKey(resource))
|
|
||||||
{
|
|
||||||
return seedToPlantRepository[resource];
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://coqch6yjvjuc0
|
|
||||||
@@ -15,11 +15,15 @@ public partial class ItemResource : Resource
|
|||||||
|
|
||||||
[Export]
|
[Export]
|
||||||
public int maxStack;
|
public int maxStack;
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public PackedScene? itemPrefab;
|
||||||
|
|
||||||
public ItemResource()
|
public ItemResource()
|
||||||
{
|
{
|
||||||
name = "";
|
name = "";
|
||||||
color = Colors.Red;
|
color = Colors.Red;
|
||||||
maxStack = 1;
|
maxStack = 1;
|
||||||
|
itemPrefab = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ namespace Babushka.scripts.CSharp.Common.UI;
|
|||||||
|
|
||||||
public partial class WateringCanUi : Node2D
|
public partial class WateringCanUi : Node2D
|
||||||
{
|
{
|
||||||
[Export] private Sprite2D[] _stages;
|
[Export] private Slider _slider;
|
||||||
|
|
||||||
private const int WATERING_CAN_ID = 1;
|
private const int WATERING_CAN_ID = 1;
|
||||||
|
|
||||||
@@ -35,10 +35,8 @@ public partial class WateringCanUi : Node2D
|
|||||||
|
|
||||||
private void UpdateSprites()
|
private void UpdateSprites()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < _stages.Length; i++)
|
_slider.Visible = WateringCanState.Active;
|
||||||
{
|
_slider.Value = (float)WateringCanState.GetFillState() / WateringCanState.MAX_FILLSTATE;
|
||||||
_stages[i].Visible = WateringCanState.Active && i < WateringCanState.GetFillState();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user