Merge pull request 'feature/showcase_bugfixing_kathi' (#14) from feature/showcase_bugfixing_kathi into develop
Reviewed-on: #14
This commit was merged in pull request #14.
This commit is contained in:
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ccy6bwunhfvrf"
|
||||||
|
path="res://.godot/imported/Babushka_house_frontDoor.png-345830acb7ae8cbbb97011f89455fd91.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://art/farm/Babushka_house_frontDoor.png"
|
||||||
|
dest_files=["res://.godot/imported/Babushka_house_frontDoor.png-345830acb7ae8cbbb97011f89455fd91.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://bv3m12duf0dj6"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://dsa3lv2as7q3b" path="res://shader/outline.gdshader" id="1_fxlom"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
shader = ExtResource("1_fxlom")
|
||||||
|
shader_parameter/allow_out_of_bounds = true
|
||||||
|
shader_parameter/outline_thickness = 8.0
|
||||||
|
shader_parameter/outline_color = Color(0.88, 0.54208, 0.4576, 1)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://blch5kdhkbj75"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" uid="uid://dsa3lv2as7q3b" path="res://shader/outline.gdshader" id="1_ovtva"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
shader = ExtResource("1_ovtva")
|
||||||
|
shader_parameter/allow_out_of_bounds = true
|
||||||
|
shader_parameter/outline_thickness = 8.0
|
||||||
|
shader_parameter/outline_color = Color(0.88, 0.79684, 0.3256, 1)
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
script = ExtResource("1_0jwhi")
|
script = ExtResource("1_0jwhi")
|
||||||
overrides = {
|
overrides = {
|
||||||
"global_bg_color": "Color(0.898375, 0.917922, 0.835355, 1)",
|
"global_bg_color": "Color(0.898375, 0.917922, 0.835355, 1)",
|
||||||
"global_font_color": "Color(0.242786, 0.16463, 0.180255, 1)",
|
"global_font_color": "Color(0.257812, 0.125248, 0.0533752, 1)",
|
||||||
"global_font_size": "20.0"
|
"global_font_size": "30.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_uxnk3"]
|
[sub_resource type="Resource" id="Resource_uxnk3"]
|
||||||
@@ -44,10 +44,10 @@ overrides = {
|
|||||||
"name_label_alignment": "2",
|
"name_label_alignment": "2",
|
||||||
"name_label_box_modulate": "Color(1, 1, 1, 1)",
|
"name_label_box_modulate": "Color(1, 1, 1, 1)",
|
||||||
"name_label_box_panel": "\"res://dialog/Babushka_NPC_Namebox_background.tres\"",
|
"name_label_box_panel": "\"res://dialog/Babushka_NPC_Namebox_background.tres\"",
|
||||||
|
"name_label_custom_font_size": "30.0",
|
||||||
"name_label_use_global_color": "false",
|
"name_label_use_global_color": "false",
|
||||||
"next_indicator_enabled": "false",
|
"next_indicator_enabled": "false",
|
||||||
"text_alignment": "1",
|
"text_size": "40.0",
|
||||||
"text_size": "20.0",
|
|
||||||
"typing_sounds_end_sound": "\"res://audio/sfx/UI/Dialog/SFX_Dialog_Open_01.wav\""
|
"typing_sounds_end_sound": "\"res://audio/sfx/UI/Dialog/SFX_Dialog_Open_01.wav\""
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +59,14 @@ overrides = {}
|
|||||||
[sub_resource type="Resource" id="Resource_umvdi"]
|
[sub_resource type="Resource" id="Resource_umvdi"]
|
||||||
script = ExtResource("1_0jwhi")
|
script = ExtResource("1_0jwhi")
|
||||||
scene = ExtResource("7_rg32j")
|
scene = ExtResource("7_rg32j")
|
||||||
overrides = {}
|
overrides = {
|
||||||
|
"font_size_custom": "30.0",
|
||||||
|
"text_color_disabled": "Color(0.605469, 0.605469, 0.605469, 1)",
|
||||||
|
"text_color_focused": "Color(1, 0.628906, 0.628906, 1)",
|
||||||
|
"text_color_hovered": "Color(0.882353, 0.572549, 0.572549, 1)",
|
||||||
|
"text_color_pressed": "Color(1, 0.882812, 0.53125, 1)",
|
||||||
|
"text_color_use_global": "false"
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_ci2ul"]
|
[sub_resource type="Resource" id="Resource_ci2ul"]
|
||||||
script = ExtResource("1_0jwhi")
|
script = ExtResource("1_0jwhi")
|
||||||
@@ -94,4 +101,4 @@ layer_info = {
|
|||||||
}
|
}
|
||||||
base_overrides = {}
|
base_overrides = {}
|
||||||
layers = Array[ExtResource("1_0jwhi")]([])
|
layers = Array[ExtResource("1_0jwhi")]([])
|
||||||
metadata/_latest_layer = "14"
|
metadata/_latest_layer = "15"
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
join Yeli center
|
join Yeli center
|
||||||
join Vesna2 center
|
join vesna center
|
||||||
Everyone: Smachnoho!
|
Everyone: Smachnoho!
|
||||||
Vesna2: Lovely soup, Yeli!
|
vesna: Lovely soup, Yeli!
|
||||||
Yeli (_part_side): God bless you, my child! That’s also thanks to you.
|
Yeli (_part_side): God bless you, my child! That’s also thanks to you.
|
||||||
Vesna2: So, how do you like it in Lasnoye so far?
|
vesna: So, how do you like it in Lasnoye so far?
|
||||||
- It feels different from when Vasily and I used to live here.
|
- It feels different from when Vasily and I used to live here.
|
||||||
- It’s just as I remembered it.
|
- It’s just as I remembered it.
|
||||||
Yeli (_part_side): Indeed, it is.
|
Yeli (_part_side): Indeed, it is.
|
||||||
Yeli (_part_side): Since the evacuation, Lasnoye and its people had to adapt to…new circumstances.
|
Yeli (_part_side): Since the evacuation, Lasnoye and its people had to adapt to…new circumstances.
|
||||||
Yeli (_part_side): But at its core, it’s still our motherland from back then.
|
Yeli (_part_side): But at its core, it’s still our motherland from back then.
|
||||||
Vesna2: …And the forest? Has anyone tried to go back and--
|
vesna: …And the forest? Has anyone tried to go back and--
|
||||||
Yeli (_part_side): The forest is strictly off-limits!
|
Yeli (_part_side): The forest is strictly off-limits!
|
||||||
Yeli (_part_side): Dragana forbids it.
|
Yeli (_part_side): Dragana forbids it.
|
||||||
Yeli (_part_side): The grime turned the forest into a dangerous place.
|
Yeli (_part_side): The grime turned the forest into a dangerous place.
|
||||||
Yeli (_part_side): But here you’re safe. After all, you can always count on your Yeli!
|
Yeli (_part_side): But here you’re safe. After all, you can always count on your Yeli!
|
||||||
Vesna2: In that case, pass me some more soup!
|
vesna: In that case, pass me some more soup!
|
||||||
[end_timeline]
|
[end_timeline]
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"@path": "res://addons/dialogic/Resources/character.gd",
|
|
||||||
"@subpath": NodePath(""),
|
|
||||||
&"_translation_id": "",
|
|
||||||
&"color": Color(1, 1, 1, 1),
|
|
||||||
&"custom_info": {
|
|
||||||
"sound_mood_default": "",
|
|
||||||
"sound_moods": {},
|
|
||||||
"style": "NPC_narrative"
|
|
||||||
},
|
|
||||||
&"default_portrait": "",
|
|
||||||
&"description": "Main character",
|
|
||||||
&"display_name": "Vesna2",
|
|
||||||
&"mirror": false,
|
|
||||||
&"nicknames": [""],
|
|
||||||
&"offset": Vector2(0, 0),
|
|
||||||
&"portraits": {},
|
|
||||||
&"scale": 1.0
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://c0vfdx7xal0py
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
join Vesna2 center
|
|
||||||
Vesna2: I just wish I liked tomatoes more.
|
|
||||||
Vesna2: Well…Yeli probably started with the cooking. I should go inside.
|
|
||||||
[end_timeline]
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
join Yeli center
|
join Yeli center
|
||||||
join Vesna2 center
|
join vesna center
|
||||||
Yeli (_part_side): Wow! So many?
|
Yeli (_part_side): Wow! So many?
|
||||||
Yeli (_part_side): Good job! Put it in the kettle!
|
Yeli (_part_side): Good job! Put it in the kettle!
|
||||||
[wait_input]
|
[wait_input]
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
join Vesna2 center
|
join vesna center
|
||||||
join Domovoi center
|
join Domovoi center
|
||||||
Vesna2: Oh no, most of the beets aren’t ripe yet.
|
vesna: Oh no, most of the beets aren’t ripe yet.
|
||||||
Domovoi: Pssss!
|
Domovoi: Pssss!
|
||||||
Domovoi: Yeah, you!
|
Domovoi: Yeah, you!
|
||||||
Domovoi: The code word is “Rosty Rosty”
|
Domovoi: The code word is “Rosty Rosty”
|
||||||
Vesna2: What?
|
vesna: What?
|
||||||
Domovoi: Just say it!
|
Domovoi: Just say it!
|
||||||
Vesna2: Rosty…rosty?
|
vesna: Rosty…rosty?
|
||||||
# Hier wächst die rote Beete magisch. Mit einem Signal/Ereignis?
|
# Hier wächst die rote Beete magisch. Mit einem Signal/Ereignis?
|
||||||
[signal arg="MagicWord"]
|
[signal arg="MagicWord"]
|
||||||
Vesna2: It worked! How did it work?
|
vesna: It worked! How did it work?
|
||||||
Vesna2: Thank y…and he’s gone.
|
vesna: Thank y…and he’s gone.
|
||||||
What a truly quirky individual.
|
vesna: What a truly quirky individual.
|
||||||
[end_timeline]
|
[end_timeline]
|
||||||
@@ -2,7 +2,7 @@ join Yeli right
|
|||||||
join vesna left
|
join vesna left
|
||||||
Yeli (_part_side): Come here, you little quacking beast!
|
Yeli (_part_side): Come here, you little quacking beast!
|
||||||
- What a mess!
|
- What a mess!
|
||||||
- You haven’t called me that way yet.
|
- How did you call me?
|
||||||
Yeli (_part_side): Vesna, oh, thank goodness!
|
Yeli (_part_side): Vesna, oh, thank goodness!
|
||||||
Yeli (_part_side): Please could you get the runner ducks back into their coop?
|
Yeli (_part_side): Please could you get the runner ducks back into their coop?
|
||||||
[end_timeline]
|
[end_timeline]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
join Chuga center
|
join Chuga center
|
||||||
Chuga: I believe you’ve seen enough for today.
|
Chuga: I believe you’ve seen enough for today.
|
||||||
Chuga: And yes, you too.
|
Chuga: And yes, you too.
|
||||||
Thank you for playing!
|
vesna: Thank you for playing!
|
||||||
do SceneTransition.ChangeSceneToFileThreaded("res://scenes/Babushka_scene_credits.tscn")
|
do SceneTransition.ChangeSceneToFileThreaded("res://scenes/Babushka_scene_credits.tscn")
|
||||||
[end_timeline]
|
[end_timeline]
|
||||||
@@ -1,21 +1,21 @@
|
|||||||
join Vesna2 center
|
join vesna center
|
||||||
join Chuga center
|
join Chuga center
|
||||||
Chuga: Look who it is!
|
Chuga: Look who it is!
|
||||||
Vesna2: Your name was Chuga, right? I want to go to the forest!
|
vesna: Your name was Chuga, right? I want to go to the forest!
|
||||||
Chuga: To the forest? After everything the others told you?
|
Chuga: To the forest? After everything the others told you?
|
||||||
Vesna2: Will you let me through?
|
vesna: Will you let me through?
|
||||||
Chuga: Will I?
|
Chuga: Will I?
|
||||||
Chuga: Let us have a riddle!
|
Chuga: Let us have a riddle!
|
||||||
Chuga: If you answer correctly, I let you through.
|
Chuga: If you answer correctly, I let you through.
|
||||||
Chuga: If not, I let you through anyway.
|
Chuga: If not, I let you through anyway.
|
||||||
Vesna2: So, what’s the point of answering?
|
vesna: So, what’s the point of answering?
|
||||||
Chuga: You give me an answer, and I give you something to see in the dark.
|
Chuga: You give me an answer, and I give you something to see in the dark.
|
||||||
Chuga: Or are you planning to return with bumps and bruises?
|
Chuga: Or are you planning to return with bumps and bruises?
|
||||||
Chuga: So, listen\: “I wear a crown, but I’m no king.” Vesna, what am I?
|
Chuga: So, listen\: “I wear a crown, but I’m no king.” Vesna, what am I?
|
||||||
- Queen
|
- Queen
|
||||||
Chuga: What a boring answer.
|
Chuga: What a boring answer.
|
||||||
- Tree
|
- Tree
|
||||||
That’s it!
|
Chuga: That’s it!
|
||||||
- Soup
|
- Soup
|
||||||
Chuga: Hate the player, not the game.
|
Chuga: Hate the player, not the game.
|
||||||
Chuga: Here you go!
|
Chuga: Here you go!
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
join vesna center
|
||||||
|
vesna: I just wish I liked tomatoes more.
|
||||||
|
vesna: Well…Yeli probably started with the cooking. I should go inside.
|
||||||
|
[end_timeline]
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
join Yeli center
|
join Yeli center
|
||||||
join Vesna2 center
|
join vesna center
|
||||||
Yeli (_part_side): Great! Now I need you to plant some tomatoes!
|
Yeli (_part_side): Great! Now I need you to plant some tomatoes!
|
||||||
label plant tomatoes
|
label plant tomatoes
|
||||||
Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields.
|
Yeli (_part_side): Use the hoe to break up the soil. Then plant the seeds and water the fields.
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
join Yeli center
|
join Yeli center
|
||||||
join Vesna2 center
|
join vesna center
|
||||||
Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore.
|
Yeli (_part_side): Thank you, my child! Your Yeli is not so agile anymore.
|
||||||
Vesna2: But you’re diligent! You’ve started with the preparation for dinner.
|
vesna: But you’re diligent! You’ve started with the preparation for dinner.
|
||||||
Yeli (_part_side): Indeed, I have.
|
Yeli (_part_side): Indeed, I have.
|
||||||
Yeli (_part_side): But, oh my, those ducks messed up the tomatos.
|
Yeli (_part_side): But, oh my, those ducks messed up the tomatos.
|
||||||
Yeli (_part_side): Oh, would you like to assist me?
|
Yeli (_part_side): Oh, would you like to assist me?
|
||||||
Vesna2: What do I have to do?
|
vesna: What do I have to do?
|
||||||
Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me!
|
Yeli (_part_side): First, take the hoe and watering can over there! Then come back to me!
|
||||||
[end_timeline]
|
[end_timeline]
|
||||||
+2
-2
@@ -9,7 +9,7 @@ custom_features=""
|
|||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="_builds/Babushka_win_0_3/Babushka.exe"
|
export_path="_builds/Babushka_showcase_win_04/Babushka.exe"
|
||||||
patches=PackedStringArray()
|
patches=PackedStringArray()
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
@@ -79,7 +79,7 @@ custom_features=""
|
|||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="_builds/Babushka_linux_0_2/Babushka.x86_64"
|
export_path="_builds/Babushka_showcase_lux_04/Babushka.x86_64"
|
||||||
patches=PackedStringArray()
|
patches=PackedStringArray()
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
|
|||||||
@@ -28,11 +28,16 @@ stream_8/stream = ExtResource("11_kb03l")
|
|||||||
stream_9/stream = ExtResource("12_kka6u")
|
stream_9/stream = ExtResource("12_kka6u")
|
||||||
|
|
||||||
[node name="trashObject" type="Sprite2D"]
|
[node name="trashObject" type="Sprite2D"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
texture = ExtResource("1_k4ca3")
|
texture = ExtResource("1_k4ca3")
|
||||||
|
offset = Vector2(1, -215)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(57, 493, 334, 475)
|
region_rect = Rect2(44, 479, 356, 503)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." instance=ExtResource("2_gcgfd")]
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_gcgfd")]
|
||||||
|
position = Vector2(0, -172)
|
||||||
|
_spriteToOutline = NodePath("..")
|
||||||
|
|
||||||
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
|
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
|
||||||
stream = SubResource("AudioStreamRandomizer_dich4")
|
stream = SubResource("AudioStreamRandomizer_dich4")
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
[gd_scene load_steps=8 format=3 uid="uid://ddpl8cbck7e6s"]
|
[gd_scene load_steps=9 format=3 uid="uid://ddpl8cbck7e6s"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://d0kgxh4ykuv23" path="res://scripts/CSharp/Common/NPC/TalkingCharacter.cs" id="1_xix7p"]
|
[ext_resource type="Script" uid="uid://d0kgxh4ykuv23" path="res://scripts/CSharp/Common/NPC/TalkingCharacter.cs" id="1_xix7p"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_udjjv"]
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="2_udjjv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bgba1uv0muxat" path="res://art/characters/chugeist_tmp.png" id="3_42og6"]
|
[ext_resource type="Texture2D" uid="uid://bgba1uv0muxat" path="res://art/characters/chugeist_tmp.png" id="3_42og6"]
|
||||||
|
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="3_kd44q"]
|
||||||
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="43_xooq4"]
|
[ext_resource type="Script" uid="uid://d2486x6upmwqq" path="res://scripts/GdScript/dialogic_starter.gd" id="43_xooq4"]
|
||||||
[ext_resource type="Script" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_v6w16"]
|
[ext_resource type="Script" uid="uid://cvkw4qd2hxksi" path="res://scripts/GdScript/dialogic_toggle.gd" id="44_v6w16"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_at1n1"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
@@ -20,24 +21,16 @@ z_index = 1
|
|||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_xix7p")
|
script = ExtResource("1_xix7p")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." instance=ExtResource("2_udjjv")]
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("2_udjjv")]
|
||||||
position = Vector2(0, -450)
|
position = Vector2(0, -450)
|
||||||
scale = Vector2(2.805, 2.805)
|
scale = Vector2(2.805, 2.805)
|
||||||
|
_outlineMaterial = ExtResource("3_kd44q")
|
||||||
|
_spriteToOutline = NodePath("../TalkingControl/Visual")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
|
||||||
position = Vector2(-4.99109, 63.4581)
|
position = Vector2(-4.99109, 63.4581)
|
||||||
shape = SubResource("CircleShape2D_at1n1")
|
shape = SubResource("CircleShape2D_at1n1")
|
||||||
|
|
||||||
[node name="Label" parent="InteractionArea" index="1"]
|
|
||||||
z_index = 5
|
|
||||||
custom_minimum_size = Vector2(10, 10)
|
|
||||||
offset_left = -131.194
|
|
||||||
offset_top = -157.219
|
|
||||||
offset_right = 115.806
|
|
||||||
offset_bottom = -54.2193
|
|
||||||
theme_override_font_sizes/font_size = 60
|
|
||||||
text = "[E] talk"
|
|
||||||
|
|
||||||
[node name="TalkingControl" type="Node2D" parent="."]
|
[node name="TalkingControl" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="Visual" type="Sprite2D" parent="TalkingControl"]
|
[node name="Visual" type="Sprite2D" parent="TalkingControl"]
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=476 format=3 uid="uid://c25udixd5m6l0"]
|
[gd_scene load_steps=477 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/Player2D.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="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"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bj2ssu0ixr0p1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0004.png" id="6_3sina"]
|
[ext_resource type="Texture2D" uid="uid://bj2ssu0ixr0p1" path="res://art/animation/Vesna2D/Vesna Anims Sequences/B01-Idle/0004.png" id="6_3sina"]
|
||||||
@@ -744,7 +745,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"back walking",
|
"name": &"back walking",
|
||||||
"speed": 15.0
|
"speed": 20.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -824,7 +825,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"back walking backpack",
|
"name": &"back walking backpack",
|
||||||
"speed": 25.0
|
"speed": 45.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -862,7 +863,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"back walking rake",
|
"name": &"back walking rake",
|
||||||
"speed": 5.0
|
"speed": 20.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -900,7 +901,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"back walking wateringcan",
|
"name": &"back walking wateringcan",
|
||||||
"speed": 15.0
|
"speed": 20.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -1471,7 +1472,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"front walking",
|
"name": &"front walking",
|
||||||
"speed": 15.0
|
"speed": 20.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -1551,7 +1552,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"front walking backpack",
|
"name": &"front walking backpack",
|
||||||
"speed": 25.0
|
"speed": 42.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -1589,7 +1590,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"front walking rake",
|
"name": &"front walking rake",
|
||||||
"speed": 15.0
|
"speed": 20.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -1627,7 +1628,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"front walking wateringcan",
|
"name": &"front walking wateringcan",
|
||||||
"speed": 15.0
|
"speed": 20.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -1948,7 +1949,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"side walking",
|
"name": &"side walking",
|
||||||
"speed": 25.0
|
"speed": 38.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -1986,7 +1987,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"side walking rake",
|
"name": &"side walking rake",
|
||||||
"speed": 15.0
|
"speed": 16.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -2024,7 +2025,7 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"side walking simplified",
|
"name": &"side walking simplified",
|
||||||
"speed": 15.0
|
"speed": 16.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 1.0,
|
"duration": 1.0,
|
||||||
@@ -2062,38 +2063,41 @@ animations = [{
|
|||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": &"side walking wateringcan",
|
"name": &"side walking wateringcan",
|
||||||
"speed": 11.0
|
"speed": 16.0
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[node name="Player2d" type="Node2D" node_paths=PackedStringArray("_farmingControls", "_player2d")]
|
[node name="Vesna" type="Node2D" node_paths=PackedStringArray("_farmingControls", "_player2d", "_vesnaAnimations")]
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_yd5ep")
|
script = ExtResource("1_yd5ep")
|
||||||
_farmingControls = NodePath("FarmingControls")
|
_farmingControls = NodePath("FarmingControls")
|
||||||
_player2d = NodePath("CharacterBody2D")
|
_player2d = NodePath("CharacterBody2D")
|
||||||
|
_vesnaAnimations = NodePath("CharacterBody2D/visuals/Animated Sprites")
|
||||||
|
|
||||||
[node name="CharacterBody2D" type="CharacterBody2D" parent="." node_paths=PackedStringArray("_sprite", "_wateringParticles") groups=["PlantGrowing"]]
|
[node name="CharacterBody2D" type="CharacterBody2D" parent="." groups=["PlantGrowing"]]
|
||||||
position = Vector2(0, 374)
|
position = Vector2(0, 374)
|
||||||
collision_layer = 4
|
collision_layer = 4
|
||||||
collision_mask = 3
|
collision_mask = 3
|
||||||
script = ExtResource("2_1vqmv")
|
script = ExtResource("2_1vqmv")
|
||||||
_speed = 1500.0
|
|
||||||
_sprite = NodePath("visuals/Animated Sprites")
|
|
||||||
_wateringParticles = NodePath("../pouring water vfx")
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"]
|
||||||
|
visible = false
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-24, -13)
|
position = Vector2(-24, -13)
|
||||||
shape = SubResource("CircleShape2D_ssqtd")
|
shape = SubResource("CircleShape2D_ssqtd")
|
||||||
debug_color = Color(0.923708, 0.202722, 0.475262, 0.42)
|
debug_color = Color(0.923708, 0.202722, 0.475262, 0.42)
|
||||||
|
|
||||||
[node name="visuals" type="Node2D" parent="CharacterBody2D"]
|
[node name="visuals" type="Node2D" parent="CharacterBody2D" node_paths=PackedStringArray("_sprite", "_wateringParticles")]
|
||||||
position = Vector2(0, -374)
|
position = Vector2(0, -374)
|
||||||
|
script = ExtResource("3_f6xmn")
|
||||||
|
_sprite = NodePath("Animated Sprites")
|
||||||
|
_wateringParticles = NodePath("../../pouring water vfx")
|
||||||
|
|
||||||
[node name="Animated Sprites" type="AnimatedSprite2D" parent="CharacterBody2D/visuals"]
|
[node name="Animated Sprites" type="AnimatedSprite2D" parent="CharacterBody2D/visuals"]
|
||||||
position = Vector2(0, 450)
|
position = Vector2(0, 450)
|
||||||
sprite_frames = SubResource("SpriteFrames_4yiyq")
|
sprite_frames = SubResource("SpriteFrames_4yiyq")
|
||||||
animation = &"front walking backpack"
|
animation = &"side walking wateringcan"
|
||||||
|
frame_progress = 0.130831
|
||||||
offset = Vector2(0, -450)
|
offset = Vector2(0, -450)
|
||||||
|
|
||||||
[node name="Hoe" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
[node name="Hoe" type="Sprite2D" parent="CharacterBody2D/visuals"]
|
||||||
@@ -2193,6 +2197,11 @@ 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="DialogicToggle" type="Node2D" parent="." node_paths=PackedStringArray("itemToToggle")]
|
||||||
|
scale = Vector2(0.7, 0.7)
|
||||||
|
script = ExtResource("819_4na52")
|
||||||
|
itemToToggle = NodePath("../CharacterBody2D/visuals/Animated Sprites")
|
||||||
|
|
||||||
[connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"]
|
[connection signal="FilledWateringCan" from="." to="CharacterBody2D/WateringCanUI" method="Refill"]
|
||||||
[connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
[connection signal="InventorySelectionChanged" from="." to="CharacterBody2D/WateringCanUI" method="IsWateringCanActive"]
|
||||||
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
|
[connection signal="PickedUpTool" from="." to="CharacterBody2D" method="ActivateTool"]
|
||||||
|
|||||||
@@ -192,22 +192,14 @@ y_sort_enabled = true
|
|||||||
script = ExtResource("1_hn8at")
|
script = ExtResource("1_hn8at")
|
||||||
_sprite = NodePath("TalkingControl/AnimatedSprite")
|
_sprite = NodePath("TalkingControl/AnimatedSprite")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." instance=ExtResource("42_ahrat")]
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("42_ahrat")]
|
||||||
position = Vector2(0, -450)
|
position = Vector2(0, -450)
|
||||||
scale = Vector2(2.805, 2.805)
|
scale = Vector2(2.805, 2.805)
|
||||||
|
_spriteToOutline = NodePath("../TalkingControl/AnimatedSprite")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_at1n1")
|
shape = SubResource("CircleShape2D_at1n1")
|
||||||
|
|
||||||
[node name="Label" parent="InteractionArea" index="1"]
|
|
||||||
custom_minimum_size = Vector2(10, 10)
|
|
||||||
offset_left = -127.273
|
|
||||||
offset_top = -245.633
|
|
||||||
offset_right = 119.727
|
|
||||||
offset_bottom = -142.633
|
|
||||||
theme_override_font_sizes/font_size = 60
|
|
||||||
text = "[E] talk"
|
|
||||||
|
|
||||||
[node name="TalkingControl" type="Node2D" parent="."]
|
[node name="TalkingControl" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"]
|
[node name="AnimatedSprite" type="AnimatedSprite2D" parent="TalkingControl"]
|
||||||
@@ -230,6 +222,11 @@ position = Vector2(0, -172)
|
|||||||
position = Vector2(0, 94)
|
position = Vector2(0, 94)
|
||||||
shape = SubResource("CapsuleShape2D_aqu1t")
|
shape = SubResource("CapsuleShape2D_aqu1t")
|
||||||
|
|
||||||
|
[node name="DialogicToggle" type="Node2D" parent="." node_paths=PackedStringArray("itemToToggle")]
|
||||||
|
scale = Vector2(0.7, 0.7)
|
||||||
|
script = ExtResource("44_aqu1t")
|
||||||
|
itemToToggle = NodePath("../TalkingControl/AnimatedSprite")
|
||||||
|
|
||||||
[connection signal="Talking" from="." to="Dialogic starter" method="open"]
|
[connection signal="Talking" from="." to="Dialogic starter" method="open"]
|
||||||
[connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"]
|
[connection signal="Interacted" from="InteractionArea" to="." method="ToggleTalking"]
|
||||||
[connection signal="timelineEnded" from="Dialogic starter/DialogicToggle" to="." method="ToggleTalking"]
|
[connection signal="timelineEnded" from="Dialogic starter/DialogicToggle" to="." method="ToggleTalking"]
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=13 format=3 uid="uid://d4m5iy5mwqpq3"]
|
[gd_scene load_steps=14 format=3 uid="uid://d4m5iy5mwqpq3"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_tp1yj"]
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_tp1yj"]
|
||||||
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_c6u1a"]
|
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_c6u1a"]
|
||||||
|
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="2_pdgar"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_b5av1"]
|
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_b5av1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_yav45"]
|
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_yav45"]
|
||||||
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_pdgar"]
|
[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_pdgar"]
|
||||||
@@ -12,16 +13,18 @@
|
|||||||
[ext_resource type="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="10_yav45"]
|
[ext_resource type="Script" uid="uid://dnipeibppjirs" path="res://scripts/CSharp/Common/NPC/DialogicOverlayStarter.cs" id="10_yav45"]
|
||||||
[ext_resource type="Script" uid="uid://drle5aies8ye4" path="res://scripts/GdScript/dialogic_event_forward.gd" id="11_yav45"]
|
[ext_resource type="Script" uid="uid://drle5aies8ye4" path="res://scripts/GdScript/dialogic_event_forward.gd" id="11_yav45"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_tp1yj"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_a35l4"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
[node name="BaseField" type="Node2D"]
|
[node name="BaseField" type="Node2D"]
|
||||||
|
|
||||||
[node name="InteractionArea2" parent="." instance=ExtResource("1_tp1yj")]
|
[node name="InteractionArea2" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("1_tp1yj")]
|
||||||
visible = false
|
visible = false
|
||||||
z_index = 1
|
z_index = 1
|
||||||
scale = Vector2(2.225, 2.225)
|
scale = Vector2(2.225, 2.225)
|
||||||
|
_outlineMaterial = ExtResource("2_pdgar")
|
||||||
|
_spriteToOutline = NodePath("../FieldBehaviour/MaskedField")
|
||||||
|
|
||||||
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
|
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
|
||||||
z_index = -1
|
z_index = -1
|
||||||
@@ -50,8 +53,8 @@ _field = NodePath("..")
|
|||||||
[node name="01" parent="FieldBehaviour/BeetRoot/BigPlant" index="0"]
|
[node name="01" parent="FieldBehaviour/BeetRoot/BigPlant" index="0"]
|
||||||
visible = true
|
visible = true
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_tp1yj")
|
shape = SubResource("CircleShape2D_a35l4")
|
||||||
|
|
||||||
[node name="01" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="0"]
|
[node name="01" parent="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/ReadyPlant" index="0"]
|
||||||
scale = Vector2(3, 3)
|
scale = Vector2(3, 3)
|
||||||
@@ -84,4 +87,4 @@ eventName = "MagicWord"
|
|||||||
|
|
||||||
[editable path="FieldBehaviour/BeetRoot"]
|
[editable path="FieldBehaviour/BeetRoot"]
|
||||||
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem"]
|
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem"]
|
||||||
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/InteractionArea2"]
|
[editable path="FieldBehaviour/BeetRoot/ReadyPlantInventoryItem/PickupInteractionArea"]
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ shader_parameter/distortion = 0.0
|
|||||||
shader_parameter/heightOffset = 0.635
|
shader_parameter/heightOffset = 0.635
|
||||||
shader_parameter/offset = 0.0
|
shader_parameter/offset = 0.0
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_2tt5u"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_rvwu0"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
@@ -126,6 +126,8 @@ region_rect = Rect2(18, 311, 129, 142)
|
|||||||
|
|
||||||
[node name="InteractionArea" parent="." instance=ExtResource("4_cfgyx")]
|
[node name="InteractionArea" parent="." instance=ExtResource("4_cfgyx")]
|
||||||
position = Vector2(0, 2.3)
|
position = Vector2(0, 2.3)
|
||||||
|
_useOutline = false
|
||||||
|
_useSprite = false
|
||||||
|
|
||||||
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("5_25lcb")]
|
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("5_25lcb")]
|
||||||
position = Vector2(0, 2.3)
|
position = Vector2(0, 2.3)
|
||||||
@@ -140,8 +142,8 @@ visible = false
|
|||||||
[node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"]
|
[node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_2tt5u")
|
shape = SubResource("CircleShape2D_rvwu0")
|
||||||
|
|
||||||
[node name="Icon" parent="ReadyPlantInventoryItem" index="4"]
|
[node name="Icon" parent="ReadyPlantInventoryItem" index="4"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -202,4 +204,4 @@ hue_variation_max = 0.4
|
|||||||
[connection signal="Interacted" from="InteractionArea" to="." method="Grow"]
|
[connection signal="Interacted" from="InteractionArea" to="." method="Grow"]
|
||||||
|
|
||||||
[editable path="ReadyPlantInventoryItem"]
|
[editable path="ReadyPlantInventoryItem"]
|
||||||
[editable path="ReadyPlantInventoryItem/InteractionArea2"]
|
[editable path="ReadyPlantInventoryItem/PickupInteractionArea"]
|
||||||
|
|||||||
+50
-64
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=23 format=3 uid="uid://muuxxgvx33fp"]
|
[gd_scene load_steps=25 format=3 uid="uid://muuxxgvx33fp"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"]
|
[ext_resource type="Script" uid="uid://7m1rt7agb6rm" path="res://scripts/CSharp/Common/Temp/MVPDuck.cs" id="1_54k4r"]
|
||||||
[ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"]
|
[ext_resource type="Texture2D" uid="uid://hvchk6t0xe7j" path="res://art/animals/Ente.png" id="1_cgxhx"]
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
[ext_resource type="Animation" uid="uid://b3dwd88uvfk1k" path="res://art/animals/duck_flapFlap.res" id="14_uo3dh"]
|
[ext_resource type="Animation" uid="uid://b3dwd88uvfk1k" path="res://art/animals/duck_flapFlap.res" id="14_uo3dh"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bsr5m8u2sle5k" path="res://audio/sfx/Animals/SFX_Duck_Wings_07.wav" id="14_xhefb"]
|
[ext_resource type="AudioStream" uid="uid://bsr5m8u2sle5k" path="res://audio/sfx/Animals/SFX_Duck_Wings_07.wav" id="14_xhefb"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="15_uo3dh"]
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="15_uo3dh"]
|
||||||
|
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="16_nxoeu"]
|
||||||
|
|
||||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sot7i"]
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_sot7i"]
|
||||||
streams_count = 4
|
streams_count = 4
|
||||||
@@ -39,7 +40,7 @@ length = 0.001
|
|||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/path = NodePath("bodyLookingRight/wingR:rotation")
|
tracks/0/path = NodePath("SubViewport/bodyLookingRight/wingR:rotation")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
@@ -51,7 +52,7 @@ tracks/0/keys = {
|
|||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/path = NodePath("bodyLookingRight/wingL:rotation")
|
tracks/1/path = NodePath("SubViewport/bodyLookingRight/wingL:rotation")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
@@ -63,7 +64,7 @@ tracks/1/keys = {
|
|||||||
tracks/2/type = "value"
|
tracks/2/type = "value"
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
tracks/2/enabled = true
|
tracks/2/enabled = true
|
||||||
tracks/2/path = NodePath("bodyLookingRight/head:rotation")
|
tracks/2/path = NodePath("SubViewport/bodyLookingRight/head:rotation")
|
||||||
tracks/2/interp = 1
|
tracks/2/interp = 1
|
||||||
tracks/2/loop_wrap = true
|
tracks/2/loop_wrap = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
@@ -75,7 +76,7 @@ tracks/2/keys = {
|
|||||||
tracks/3/type = "value"
|
tracks/3/type = "value"
|
||||||
tracks/3/imported = false
|
tracks/3/imported = false
|
||||||
tracks/3/enabled = true
|
tracks/3/enabled = true
|
||||||
tracks/3/path = NodePath("bodyLookingRight/head/beak upper:rotation")
|
tracks/3/path = NodePath("SubViewport/bodyLookingRight/head/beak upper:rotation")
|
||||||
tracks/3/interp = 1
|
tracks/3/interp = 1
|
||||||
tracks/3/loop_wrap = true
|
tracks/3/loop_wrap = true
|
||||||
tracks/3/keys = {
|
tracks/3/keys = {
|
||||||
@@ -87,7 +88,7 @@ tracks/3/keys = {
|
|||||||
tracks/4/type = "value"
|
tracks/4/type = "value"
|
||||||
tracks/4/imported = false
|
tracks/4/imported = false
|
||||||
tracks/4/enabled = true
|
tracks/4/enabled = true
|
||||||
tracks/4/path = NodePath("bodyLookingRight/head/beak lower:rotation")
|
tracks/4/path = NodePath("SubViewport/bodyLookingRight/head/beak lower:rotation")
|
||||||
tracks/4/interp = 1
|
tracks/4/interp = 1
|
||||||
tracks/4/loop_wrap = true
|
tracks/4/loop_wrap = true
|
||||||
tracks/4/keys = {
|
tracks/4/keys = {
|
||||||
@@ -135,6 +136,9 @@ _data = {
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 443.041
|
radius = 443.041
|
||||||
|
|
||||||
|
[sub_resource type="ViewportTexture" id="ViewportTexture_4830j"]
|
||||||
|
viewport_path = NodePath("SubViewport")
|
||||||
|
|
||||||
[node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer")]
|
[node name="Duck" type="Node2D" node_paths=PackedStringArray("_animationPlayer")]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
@@ -157,16 +161,28 @@ libraries = {
|
|||||||
&"": SubResource("AnimationLibrary_54k4r")
|
&"": SubResource("AnimationLibrary_54k4r")
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="bodyLookingRight" type="Node2D" parent="."]
|
[node name="InteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("15_uo3dh")]
|
||||||
z_index = 1
|
position = Vector2(18, -250)
|
||||||
y_sort_enabled = true
|
_outlineMaterial = ExtResource("16_nxoeu")
|
||||||
position = Vector2(-5, -537)
|
_spriteToOutline = NodePath("../Duck rendered")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_uo3dh")
|
||||||
|
|
||||||
|
[node name="Duck rendered" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(0, -250)
|
||||||
|
texture = SubResource("ViewportTexture_4830j")
|
||||||
|
|
||||||
|
[node name="SubViewport" type="SubViewport" parent="."]
|
||||||
|
transparent_bg = true
|
||||||
|
size = Vector2i(400, 600)
|
||||||
|
|
||||||
|
[node name="bodyLookingRight" type="Node2D" parent="SubViewport"]
|
||||||
|
position = Vector2(200, 550)
|
||||||
rotation = 0.0135349
|
rotation = 0.0135349
|
||||||
|
|
||||||
[node name="head" type="Sprite2D" parent="bodyLookingRight"]
|
[node name="head" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
|
||||||
z_index = 1
|
position = Vector2(45.706, -451.714)
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(46.9624, 76.1606)
|
|
||||||
rotation = 0.284615
|
rotation = 0.284615
|
||||||
scale = Vector2(1, 0.997)
|
scale = Vector2(1, 0.997)
|
||||||
skew = 0.024546
|
skew = 0.024546
|
||||||
@@ -175,9 +191,8 @@ offset = Vector2(25.2328, -23.0689)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(45, 24, 87, 82)
|
region_rect = Rect2(45, 24, 87, 82)
|
||||||
|
|
||||||
[node name="beak upper" type="Sprite2D" parent="bodyLookingRight/head"]
|
[node name="beak upper" type="Sprite2D" parent="SubViewport/bodyLookingRight/head"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(50.669, -7.16257)
|
position = Vector2(50.669, -7.16257)
|
||||||
rotation = -0.0427724
|
rotation = -0.0427724
|
||||||
scale = Vector2(0.62715, 0.62715)
|
scale = Vector2(0.62715, 0.62715)
|
||||||
@@ -186,9 +201,7 @@ offset = Vector2(57.1263, -7.47815)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(292, 37, 152, 98)
|
region_rect = Rect2(292, 37, 152, 98)
|
||||||
|
|
||||||
[node name="beak lower" type="Sprite2D" parent="bodyLookingRight/head"]
|
[node name="beak lower" type="Sprite2D" parent="SubViewport/bodyLookingRight/head"]
|
||||||
z_index = 1
|
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(47.9076, -15.7341)
|
position = Vector2(47.9076, -15.7341)
|
||||||
rotation = 0.0364142
|
rotation = 0.0364142
|
||||||
scale = Vector2(0.58615, 0.58615)
|
scale = Vector2(0.58615, 0.58615)
|
||||||
@@ -197,30 +210,24 @@ offset = Vector2(60.4601, 37.8134)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(295, 170, 145, 39)
|
region_rect = Rect2(295, 170, 145, 39)
|
||||||
|
|
||||||
[node name="torso" type="Sprite2D" parent="bodyLookingRight"]
|
[node name="torso" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
|
||||||
z_index = 1
|
position = Vector2(4.65357, -172.523)
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(5.90997, 355.352)
|
|
||||||
scale = Vector2(1.07526, 1.01724)
|
scale = Vector2(1.07526, 1.01724)
|
||||||
texture = ExtResource("1_cgxhx")
|
texture = ExtResource("1_cgxhx")
|
||||||
offset = Vector2(2.87376, -131.092)
|
offset = Vector2(2.87376, -131.092)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(30, 168, 125, 326)
|
region_rect = Rect2(30, 168, 125, 326)
|
||||||
|
|
||||||
[node name="wingR" type="Sprite2D" parent="bodyLookingRight"]
|
[node name="wingR" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
|
||||||
z_index = 1
|
position = Vector2(-29.2564, -265.875)
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-28, 262)
|
|
||||||
rotation = -0.371117
|
rotation = -0.371117
|
||||||
texture = ExtResource("1_cgxhx")
|
texture = ExtResource("1_cgxhx")
|
||||||
offset = Vector2(-50, 50)
|
offset = Vector2(-50, 50)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(196, 231, 180, 164)
|
region_rect = Rect2(196, 231, 180, 164)
|
||||||
|
|
||||||
[node name="wingL" type="Sprite2D" parent="bodyLookingRight"]
|
[node name="wingL" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
|
||||||
z_index = 1
|
position = Vector2(45.8131, -281.97)
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(47.0695, 245.905)
|
|
||||||
rotation = -0.0925884
|
rotation = -0.0925884
|
||||||
skew = -0.0345086
|
skew = -0.0345086
|
||||||
texture = ExtResource("1_cgxhx")
|
texture = ExtResource("1_cgxhx")
|
||||||
@@ -228,10 +235,8 @@ offset = Vector2(-59.5924, 55.37)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(196, 231, 180, 164)
|
region_rect = Rect2(196, 231, 180, 164)
|
||||||
|
|
||||||
[node name="underbelly" type="Sprite2D" parent="bodyLookingRight"]
|
[node name="underbelly" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
|
||||||
z_index = 1
|
position = Vector2(-12.6602, -88.6718)
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-11.4038, 439.203)
|
|
||||||
rotation = -2.98225
|
rotation = -2.98225
|
||||||
scale = Vector2(0.672245, 0.955267)
|
scale = Vector2(0.672245, 0.955267)
|
||||||
skew = 0.0185422
|
skew = 0.0185422
|
||||||
@@ -240,8 +245,8 @@ offset = Vector2(26.4135, 70.6083)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(196, 231, 180, 164)
|
region_rect = Rect2(196, 231, 180, 164)
|
||||||
|
|
||||||
[node name="leg left" type="Sprite2D" parent="bodyLookingRight"]
|
[node name="leg left" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
|
||||||
position = Vector2(36.2887, 300.645)
|
position = Vector2(35.0323, -227.23)
|
||||||
rotation = 2.42655
|
rotation = 2.42655
|
||||||
scale = Vector2(1.05221, 1.04106)
|
scale = Vector2(1.05221, 1.04106)
|
||||||
skew = -0.0544101
|
skew = -0.0544101
|
||||||
@@ -249,7 +254,7 @@ texture = ExtResource("1_cgxhx")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(196, 231, 177, 161)
|
region_rect = Rect2(196, 231, 177, 161)
|
||||||
|
|
||||||
[node name="left thigh" type="Sprite2D" parent="bodyLookingRight/leg left"]
|
[node name="left thigh" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(73.353, -69.771)
|
position = Vector2(73.353, -69.771)
|
||||||
@@ -259,7 +264,7 @@ texture = ExtResource("1_cgxhx")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(368, 263, 81, 89)
|
region_rect = Rect2(368, 263, 81, 89)
|
||||||
|
|
||||||
[node name="left shin" type="Sprite2D" parent="bodyLookingRight/leg left/left thigh"]
|
[node name="left shin" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left/left thigh"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(-5.71882, 19.9984)
|
position = Vector2(-5.71882, 19.9984)
|
||||||
@@ -271,7 +276,7 @@ offset = Vector2(10, -50)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(360, 361, 68, 126)
|
region_rect = Rect2(360, 361, 68, 126)
|
||||||
|
|
||||||
[node name="left foot" type="Sprite2D" parent="bodyLookingRight/leg left/left thigh/left shin"]
|
[node name="left foot" type="Sprite2D" parent="SubViewport/bodyLookingRight/leg left/left thigh/left shin"]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
position = Vector2(15.1289, -77.6075)
|
position = Vector2(15.1289, -77.6075)
|
||||||
@@ -282,19 +287,15 @@ offset = Vector2(40, 40)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(246, 393, 111, 111)
|
region_rect = Rect2(246, 393, 111, 111)
|
||||||
|
|
||||||
[node name="right leg" type="Sprite2D" parent="bodyLookingRight"]
|
[node name="right leg" type="Sprite2D" parent="SubViewport/bodyLookingRight"]
|
||||||
z_index = 1
|
position = Vector2(-25.2564, -163.875)
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-24, 364)
|
|
||||||
rotation = -0.463741
|
rotation = -0.463741
|
||||||
scale = Vector2(1.07492, 1.01762)
|
scale = Vector2(1.07492, 1.01762)
|
||||||
texture = ExtResource("1_cgxhx")
|
texture = ExtResource("1_cgxhx")
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(196, 231, 177, 161)
|
region_rect = Rect2(196, 231, 177, 161)
|
||||||
|
|
||||||
[node name="right thigh" type="Sprite2D" parent="bodyLookingRight/right leg"]
|
[node name="right thigh" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg"]
|
||||||
z_index = 1
|
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-29.7603, 44.2374)
|
position = Vector2(-29.7603, 44.2374)
|
||||||
rotation = 0.249342
|
rotation = 0.249342
|
||||||
scale = Vector2(0.625107, 0.655894)
|
scale = Vector2(0.625107, 0.655894)
|
||||||
@@ -303,9 +304,7 @@ texture = ExtResource("1_cgxhx")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(368, 263, 81, 89)
|
region_rect = Rect2(368, 263, 81, 89)
|
||||||
|
|
||||||
[node name="right shin" type="Sprite2D" parent="bodyLookingRight/right leg/right thigh"]
|
[node name="right shin" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg/right thigh"]
|
||||||
z_index = 1
|
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-2.78734, 11.5692)
|
position = Vector2(-2.78734, 11.5692)
|
||||||
rotation = 0.0689206
|
rotation = 0.0689206
|
||||||
scale = Vector2(1.12016, 1.07128)
|
scale = Vector2(1.12016, 1.07128)
|
||||||
@@ -315,9 +314,7 @@ offset = Vector2(-14.163, 37.0936)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(360, 361, 68, 126)
|
region_rect = Rect2(360, 361, 68, 126)
|
||||||
|
|
||||||
[node name="right foot" type="Sprite2D" parent="bodyLookingRight/right leg/right thigh/right shin"]
|
[node name="right foot" type="Sprite2D" parent="SubViewport/bodyLookingRight/right leg/right thigh/right shin"]
|
||||||
z_index = 1
|
|
||||||
y_sort_enabled = true
|
|
||||||
position = Vector2(-20.0986, 67.7507)
|
position = Vector2(-20.0986, 67.7507)
|
||||||
rotation = 0.14855
|
rotation = 0.14855
|
||||||
scale = Vector2(1.212, 1.212)
|
scale = Vector2(1.212, 1.212)
|
||||||
@@ -326,17 +323,6 @@ offset = Vector2(40, 40)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(246, 393, 111, 111)
|
region_rect = Rect2(246, 393, 111, 111)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." instance=ExtResource("15_uo3dh")]
|
|
||||||
position = Vector2(-3, -274)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="InteractionArea/Area2D" index="0"]
|
|
||||||
shape = SubResource("CircleShape2D_uo3dh")
|
|
||||||
|
|
||||||
[node name="Label" parent="InteractionArea" index="1"]
|
|
||||||
modulate = Color(0, 0, 0, 1)
|
|
||||||
z_index = 1
|
|
||||||
y_sort_enabled = true
|
|
||||||
|
|
||||||
[connection signal="Interacted" from="InteractionArea" to="." method="TransferToTargetAfterDelay"]
|
[connection signal="Interacted" from="InteractionArea" to="." method="TransferToTargetAfterDelay"]
|
||||||
[connection signal="Interacted" from="InteractionArea" to="Audio/NakNak" method="PlayOneShot"]
|
[connection signal="Interacted" from="InteractionArea" to="Audio/NakNak" method="PlayOneShot"]
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
[gd_scene load_steps=10 format=3 uid="uid://b1d2e7ely6hyw"]
|
[gd_scene load_steps=10 format=3 uid="uid://b1d2e7ely6hyw"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_jrdc4"]
|
|
||||||
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_vl3uw"]
|
[ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_vl3uw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_uqkef"]
|
[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_uqkef"]
|
||||||
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_di17a"]
|
[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_di17a"]
|
||||||
@@ -9,17 +8,16 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_f504p"]
|
[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_f504p"]
|
||||||
[ext_resource type="PackedScene" uid="uid://gishbn0a8eke" path="res://prefabs/farm/tomato_plant.tscn" id="8_jrdc4"]
|
[ext_resource type="PackedScene" uid="uid://gishbn0a8eke" path="res://prefabs/farm/tomato_plant.tscn" id="8_jrdc4"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_vl3uw"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_jrdc4"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_l0vvv"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
[node name="BaseField" type="Node2D"]
|
[node name="BaseField" type="Node2D"]
|
||||||
|
|
||||||
[node name="InteractionArea2" parent="." instance=ExtResource("1_jrdc4")]
|
|
||||||
visible = false
|
|
||||||
z_index = 1
|
|
||||||
scale = Vector2(2.225, 2.225)
|
|
||||||
|
|
||||||
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
|
[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")]
|
||||||
z_index = -1
|
z_index = -1
|
||||||
scale = Vector2(0.9, 1)
|
scale = Vector2(0.9, 1)
|
||||||
@@ -29,13 +27,18 @@ _maskSprite = NodePath("MaskedField")
|
|||||||
_maskTexture = Array[Texture2D]([ExtResource("3_uqkef"), ExtResource("4_di17a"), ExtResource("5_4a8nv")])
|
_maskTexture = Array[Texture2D]([ExtResource("3_uqkef"), ExtResource("4_di17a"), ExtResource("5_4a8nv")])
|
||||||
Tilled = ExtResource("6_l7j4c")
|
Tilled = ExtResource("6_l7j4c")
|
||||||
Watered = ExtResource("7_f504p")
|
Watered = ExtResource("7_f504p")
|
||||||
_growingCollider = NodePath("BasePlant2/InteractionArea")
|
_growingCollider = NodePath("BasePlant2/GrowingInteractionArea")
|
||||||
|
|
||||||
[node name="BasePlant2" parent="FieldBehaviour" node_paths=PackedStringArray("_field") groups=["PlantGrowing"] instance=ExtResource("8_jrdc4")]
|
[node name="BasePlant2" parent="FieldBehaviour" node_paths=PackedStringArray("_field") groups=["PlantGrowing"] instance=ExtResource("8_jrdc4")]
|
||||||
|
visible = false
|
||||||
_field = NodePath("..")
|
_field = NodePath("..")
|
||||||
|
_magicWordNeeded = false
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant2/GrowingInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_vl3uw")
|
shape = SubResource("CircleShape2D_jrdc4")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_l0vvv")
|
||||||
|
|
||||||
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
|
[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"]
|
||||||
clip_children = 1
|
clip_children = 1
|
||||||
@@ -46,5 +49,6 @@ texture = ExtResource("4_di17a")
|
|||||||
texture = ExtResource("6_l7j4c")
|
texture = ExtResource("6_l7j4c")
|
||||||
|
|
||||||
[editable path="FieldBehaviour/BasePlant2"]
|
[editable path="FieldBehaviour/BasePlant2"]
|
||||||
|
[editable path="FieldBehaviour/BasePlant2/GrowingInteractionArea"]
|
||||||
[editable path="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem"]
|
[editable path="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem"]
|
||||||
[editable path="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem/InteractionArea2"]
|
[editable path="FieldBehaviour/BasePlant2/ReadyPlantInventoryItem/PickupInteractionArea"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://gishbn0a8eke"]
|
[gd_scene load_steps=13 format=3 uid="uid://gishbn0a8eke"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_66p1c"]
|
[ext_resource type="Script" uid="uid://cms357f23fmfy" path="res://scripts/CSharp/Common/Farming/PlantBehaviour2D.cs" id="1_66p1c"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dtr4uga5uspg" path="res://art/farm/farming/farmobjekte/tomaten/tomaten baby.png" id="2_vjw4j"]
|
[ext_resource type="Texture2D" uid="uid://dtr4uga5uspg" path="res://art/farm/farming/farmobjekte/tomaten/tomaten baby.png" id="2_vjw4j"]
|
||||||
@@ -22,7 +22,11 @@ shader_parameter/distortion = 0.0
|
|||||||
shader_parameter/heightOffset = 0.635
|
shader_parameter/heightOffset = 0.635
|
||||||
shader_parameter/offset = 0.0
|
shader_parameter/offset = 0.0
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_2tt5u"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_vjw4j"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_7hdur"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
@@ -100,7 +104,7 @@ region_enabled = true
|
|||||||
region_rect = Rect2(228, 600, 85, 92)
|
region_rect = Rect2(228, 600, 85, 92)
|
||||||
|
|
||||||
[node name="BigPlant" type="Node2D" parent="."]
|
[node name="BigPlant" type="Node2D" parent="."]
|
||||||
position = Vector2(0, 2)
|
position = Vector2(0, -300)
|
||||||
|
|
||||||
[node name="01" type="Sprite2D" parent="BigPlant"]
|
[node name="01" type="Sprite2D" parent="BigPlant"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -134,8 +138,13 @@ texture = ExtResource("4_hmj2d")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(546, 697, 535, 687)
|
region_rect = Rect2(546, 697, 535, 687)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="." instance=ExtResource("5_3j24b")]
|
[node name="GrowingInteractionArea" parent="." instance=ExtResource("5_3j24b")]
|
||||||
position = Vector2(0, 2.3)
|
position = Vector2(0, 2.3)
|
||||||
|
_useOutline = false
|
||||||
|
_useSprite = false
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="GrowingInteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_vjw4j")
|
||||||
|
|
||||||
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_gdrin")]
|
[node name="ReadyPlantInventoryItem" parent="." instance=ExtResource("6_gdrin")]
|
||||||
position = Vector2(0, 2.3)
|
position = Vector2(0, 2.3)
|
||||||
@@ -146,17 +155,23 @@ _blueprint = ExtResource("7_di4m0")
|
|||||||
|
|
||||||
[node name="ItemLabel" parent="ReadyPlantInventoryItem" index="1"]
|
[node name="ItemLabel" parent="ReadyPlantInventoryItem" index="1"]
|
||||||
visible = false
|
visible = false
|
||||||
|
z_index = 100
|
||||||
|
text = "[E] harvest"
|
||||||
|
|
||||||
[node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"]
|
[node name="PickupErrorLabel" parent="ReadyPlantInventoryItem" index="2"]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"]
|
[node name="PickupInteractionArea" parent="ReadyPlantInventoryItem" index="3"]
|
||||||
shape = SubResource("CircleShape2D_2tt5u")
|
visible = false
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="ReadyPlantInventoryItem/PickupInteractionArea/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_7hdur")
|
||||||
|
|
||||||
[node name="Icon" parent="ReadyPlantInventoryItem" index="4"]
|
[node name="Icon" parent="ReadyPlantInventoryItem" index="4"]
|
||||||
visible = false
|
visible = false
|
||||||
|
|
||||||
[node name="ReadyPlant" type="Node2D" parent="ReadyPlantInventoryItem"]
|
[node name="ReadyPlant" type="Node2D" parent="ReadyPlantInventoryItem"]
|
||||||
|
position = Vector2(0, -400)
|
||||||
|
|
||||||
[node name="01" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
|
[node name="01" type="Sprite2D" parent="ReadyPlantInventoryItem/ReadyPlant"]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -209,7 +224,8 @@ scale_amount_max = 0.1
|
|||||||
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
|
||||||
|
|
||||||
[connection signal="Interacted" from="InteractionArea" to="." method="Grow"]
|
[connection signal="Interacted" from="GrowingInteractionArea" to="." method="Grow"]
|
||||||
|
|
||||||
|
[editable path="GrowingInteractionArea"]
|
||||||
[editable path="ReadyPlantInventoryItem"]
|
[editable path="ReadyPlantInventoryItem"]
|
||||||
[editable path="ReadyPlantInventoryItem/InteractionArea2"]
|
[editable path="ReadyPlantInventoryItem/PickupInteractionArea"]
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
[ext_resource type="Script" uid="uid://btusf04xnywhm" path="res://scripts/CSharp/Common/Inventory/ItemOnGround2D.cs" id="1_tlhp6"]
|
[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"]
|
[ext_resource type="Script" uid="uid://c8suoi3i6kqai" path="res://scripts/CSharp/Common/Inventory/ItemOnGroundSpawnWith.cs" id="3_xu8me"]
|
||||||
|
[ext_resource type="Material" uid="uid://bv3m12duf0dj6" path="res://art/materials/inventory_interactable_outline.tres" id="4_harr4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_xu8me"]
|
[ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="4_xu8me"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cfxibry711o16" path="res://art/ui/UI/icons/icon-scythe.png" id="5_harr4"]
|
[ext_resource type="Texture2D" uid="uid://cfxibry711o16" path="res://art/ui/UI/icons/icon-scythe.png" id="5_harr4"]
|
||||||
|
|
||||||
@@ -15,10 +16,9 @@ default_font_size = 40
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="Theme" id="Theme_xu8me"]
|
|
||||||
default_font_size = 75
|
|
||||||
|
|
||||||
[node name="GenericItemOnGround" type="Node2D"]
|
[node name="GenericItemOnGround" type="Node2D"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_tlhp6")
|
script = ExtResource("1_tlhp6")
|
||||||
|
|
||||||
[node name="SpawnWithItem" type="Node" parent="."]
|
[node name="SpawnWithItem" type="Node" parent="."]
|
||||||
@@ -43,25 +43,18 @@ theme = SubResource("Theme_harr4")
|
|||||||
text = "thewe waf a pwoblem wiph picking up te item UWU"
|
text = "thewe waf a pwoblem wiph picking up te item UWU"
|
||||||
autowrap_mode = 3
|
autowrap_mode = 3
|
||||||
|
|
||||||
[node name="InteractionArea2" parent="." instance=ExtResource("4_xu8me")]
|
[node name="PickupInteractionArea" parent="." node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("4_xu8me")]
|
||||||
|
_outlineMaterial = ExtResource("4_harr4")
|
||||||
|
_spriteToOutline = NodePath("../Icon")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_tlhp6")
|
shape = SubResource("CircleShape2D_tlhp6")
|
||||||
|
|
||||||
[node name="Label" parent="InteractionArea2" index="1"]
|
|
||||||
z_index = 5
|
|
||||||
offset_left = -68.0
|
|
||||||
offset_top = -111.0
|
|
||||||
offset_right = 75.0
|
|
||||||
offset_bottom = -3.0
|
|
||||||
theme = SubResource("Theme_xu8me")
|
|
||||||
vertical_alignment = 1
|
|
||||||
|
|
||||||
[node name="Icon" type="Sprite2D" parent="."]
|
[node name="Icon" type="Sprite2D" parent="."]
|
||||||
position = Vector2(5, -300)
|
position = Vector2(5, -300)
|
||||||
scale = Vector2(0.868852, 0.868852)
|
scale = Vector2(0.868852, 0.868852)
|
||||||
texture = ExtResource("5_harr4")
|
texture = ExtResource("5_harr4")
|
||||||
|
|
||||||
[connection signal="Interacted" from="InteractionArea2" to="." method="TryPickUp"]
|
[connection signal="Interacted" from="PickupInteractionArea" to="." method="TryPickUp"]
|
||||||
|
|
||||||
[editable path="InteractionArea2"]
|
[editable path="PickupInteractionArea"]
|
||||||
|
|||||||
@@ -1,18 +1,20 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://cqc72e4hq6bcd"]
|
[gd_scene load_steps=5 format=3 uid="uid://cqc72e4hq6bcd"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://ckp413wrub5fm" path="res://scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs" id="1_5ajrf"]
|
[ext_resource type="Script" uid="uid://ckp413wrub5fm" path="res://scripts/CSharp/Common/CharacterControls/InteractionArea2D.cs" id="1_5ajrf"]
|
||||||
|
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="2_qoey7"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_npluf"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_npluf"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="Theme" id="Theme_5ajrf"]
|
[sub_resource type="Theme" id="Theme_5ajrf"]
|
||||||
default_font_size = 75
|
default_font_size = 30
|
||||||
|
|
||||||
[node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")]
|
[node name="InteractionArea" type="Node2D" node_paths=PackedStringArray("_area", "_label")]
|
||||||
script = ExtResource("1_5ajrf")
|
script = ExtResource("1_5ajrf")
|
||||||
_area = NodePath("Area2D")
|
_area = NodePath("Area2D")
|
||||||
_label = NodePath("Label")
|
_label = NodePath("Area2D/CanvasLayer/MarginContainer/Label")
|
||||||
|
_outlineMaterial = ExtResource("2_qoey7")
|
||||||
|
|
||||||
[node name="Area2D" type="Area2D" parent="."]
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
collision_mask = 4
|
collision_mask = 4
|
||||||
@@ -20,15 +22,32 @@ collision_mask = 4
|
|||||||
[node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"]
|
[node name="CollisionShape3D" type="CollisionShape2D" parent="Area2D"]
|
||||||
shape = SubResource("CircleShape2D_npluf")
|
shape = SubResource("CircleShape2D_npluf")
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="Area2D"]
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="Area2D/CanvasLayer"]
|
||||||
|
anchors_preset = 3
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = -88.0
|
||||||
|
offset_top = -100.0
|
||||||
|
offset_right = 3.0
|
||||||
|
offset_bottom = 3.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
grow_vertical = 0
|
||||||
|
theme_override_constants/margin_right = 20
|
||||||
|
theme_override_constants/margin_bottom = 20
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Area2D/CanvasLayer/MarginContainer"]
|
||||||
visible = false
|
visible = false
|
||||||
offset_left = -46.0
|
layout_mode = 2
|
||||||
offset_top = -55.0
|
size_flags_horizontal = 8
|
||||||
offset_right = 45.0
|
size_flags_vertical = 8
|
||||||
offset_bottom = 48.0
|
|
||||||
theme = SubResource("Theme_5ajrf")
|
theme = SubResource("Theme_5ajrf")
|
||||||
text = "[E]"
|
text = "[E]"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 2
|
||||||
|
vertical_alignment = 2
|
||||||
|
|
||||||
[connection signal="body_entered" from="Area2D" to="." method="OnPlayerEntered"]
|
[connection signal="body_entered" from="Area2D" to="." method="OnPlayerEntered"]
|
||||||
[connection signal="body_exited" from="Area2D" to="." method="OnPlayerExited"]
|
[connection signal="body_exited" from="Area2D" to="." method="OnPlayerExited"]
|
||||||
|
|||||||
+27
-27
@@ -17,6 +17,7 @@ run/max_fps=120
|
|||||||
boot_splash/fullsize=false
|
boot_splash/fullsize=false
|
||||||
boot_splash/image="uid://utam4axkvutc"
|
boot_splash/image="uid://utam4axkvutc"
|
||||||
config/icon="uid://b2smanpdo1y5e"
|
config/icon="uid://b2smanpdo1y5e"
|
||||||
|
boot_splash/minimum_display_time=1000
|
||||||
|
|
||||||
[audio]
|
[audio]
|
||||||
|
|
||||||
@@ -30,40 +31,40 @@ InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
|
|||||||
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
|
Signal_Debugger="*res://addons/SignalVisualizer/Debugger/SignalDebugger.gd"
|
||||||
QuestManager="*res://scripts/CSharp/Common/Quest/QuestManager.cs"
|
QuestManager="*res://scripts/CSharp/Common/Quest/QuestManager.cs"
|
||||||
FightManagerAutoload="*res://prefabs/fight/fight_manager_autoload.tscn"
|
FightManagerAutoload="*res://prefabs/fight/fight_manager_autoload.tscn"
|
||||||
|
InputService="*res://scripts/CSharp/Common/Services/InputService.cs"
|
||||||
|
|
||||||
[dialogic]
|
[dialogic]
|
||||||
|
|
||||||
directories/dch_directory={
|
directories/dch_directory={
|
||||||
"Chuga": "res://dialog/Chuga.dch",
|
"Chuga": "res://dialog/Characters/Chuga.dch",
|
||||||
"Domovoi": "res://dialog/Domovoi.dch",
|
"Domovoi": "res://dialog/Characters/Domovoi.dch",
|
||||||
"Everyone": "res://dialog/Everyone.dch",
|
"Everyone": "res://dialog/Characters/Everyone.dch",
|
||||||
"Vesna2": "res://dialog/Vesna2.dch",
|
"Yeli": "res://dialog/Characters/Yeli.dch",
|
||||||
"Yeli": "res://dialog/Yeli.dch",
|
"defaulty_the_default_character": "res://dialog/Characters/defaulty_the_default_character.dch",
|
||||||
"defaulty_the_default_character": "res://dialog/defaulty_the_default_character.dch",
|
"semi_cat": "res://dialog/Characters/semi_cat.dch",
|
||||||
"semi_cat": "res://dialog/semi_cat.dch",
|
"vesna": "res://dialog/Characters/vesna.dch"
|
||||||
"vesna": "res://dialog/vesna.dch"
|
|
||||||
}
|
}
|
||||||
directories/dtl_directory={
|
directories/dtl_directory={
|
||||||
"disclaimer": "res://dialog/disclaimer.dtl",
|
"disclaimer": "res://dialog/disclaimer.dtl",
|
||||||
"quest1_ducks_end": "res://dialog/quest1_ducks_end.dtl",
|
"quest1_ducks_end": "res://dialog/quests/ducks/quest1_ducks_end.dtl",
|
||||||
"quest1_ducks_start": "res://dialog/quest1_ducks_start.dtl",
|
"quest1_ducks_start": "res://dialog/quests/ducks/quest1_ducks_start.dtl",
|
||||||
"quest2_tomatoes_end": "res://dialog/quest2_tomatoes_end.dtl",
|
"quest2_tomatoes_end": "res://dialog/quests/tomatoes/quest2_tomatoes_end.dtl",
|
||||||
"quest2_tomatoes_interim": "res://dialog/quest2_tomatoes_interim.dtl",
|
"quest2_tomatoes_interim": "res://dialog/quests/tomatoes/quest2_tomatoes_interim.dtl",
|
||||||
"quest2_tomatoes_start": "res://dialog/quest2_tomatoes_start.dtl",
|
"quest2_tomatoes_start": "res://dialog/quests/tomatoes/quest2_tomatoes_start.dtl",
|
||||||
"quest3_beets_end": "res://dialog/quest3_beets_end.dtl",
|
"quest3_beets_end": "res://dialog/quests/beetroot/quest3_beets_end.dtl",
|
||||||
"quest3_beets_interim": "res://dialog/quest3_beets_interim.dtl",
|
"quest3_beets_interim": "res://dialog/quests/beetroot/quest3_beets_interim.dtl",
|
||||||
"quest3_beets_start": "res://dialog/quest3_beets_start.dtl",
|
"quest3_beets_start": "res://dialog/quests/beetroot/quest3_beets_start.dtl",
|
||||||
"quest4_dinner": "res://dialog/quest4_dinner.dtl",
|
"quest4_dinner": "res://dialog/Scene2_farm_inside/quest4_dinner.dtl",
|
||||||
"quest5_forest_end": "res://dialog/quest5_forest_end.dtl",
|
"quest5_forest_end": "res://dialog/quests/forest/quest5_forest_end.dtl",
|
||||||
"quest5_forest_start": "res://dialog/quest5_forest_start.dtl",
|
"quest5_forest_start": "res://dialog/quests/forest/quest5_forest_start.dtl",
|
||||||
"semi_cat": "res://dialog/semi_cat.dtl",
|
"semi_cat": "res://dialog/semi_cat.dtl",
|
||||||
"talk_to_plant": "res://dialog/talk_to_plant.dtl",
|
"talk_to_plant": "res://dialog/talk_to_plant.dtl",
|
||||||
"test_time_line": "res://dialog/test_time_line.dtl",
|
"test_time_line": "res://dialog/test_time_line.dtl",
|
||||||
"yeli_intro_01": "res://dialog/yeli_intro_01.dtl",
|
"yeli_intro_01": "res://dialog/Scene1_farm_outside/yeli_intro_01.dtl",
|
||||||
"yeli_intro_02": "res://dialog/yeli_intro_02.dtl",
|
"yeli_intro_02": "res://dialog/Scene1_farm_outside/yeli_intro_02.dtl",
|
||||||
"yeli_intro_03": "res://dialog/yeli_intro_03.dtl",
|
"yeli_intro_03": "res://dialog/Scene1_farm_outside/yeli_intro_03.dtl",
|
||||||
"yeli_intro_04": "res://dialog/yeli_intro_04.dtl",
|
"yeli_intro_04": "res://dialog/Scene1_farm_outside/yeli_intro_04.dtl",
|
||||||
"yeli_intro_05": "res://dialog/yeli_intro_05.dtl"
|
"yeli_intro_05": "res://dialog/Scene1_farm_outside/yeli_intro_05.dtl"
|
||||||
}
|
}
|
||||||
variables={
|
variables={
|
||||||
"MAGICWORD": "Hokus Pokus!s",
|
"MAGICWORD": "Hokus Pokus!s",
|
||||||
@@ -108,9 +109,8 @@ glossary/glossary_files=["res://dialog/farming_equipment_glossary.tres"]
|
|||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=2000
|
window/size/viewport_width=1980
|
||||||
window/size/viewport_height=1000
|
window/size/viewport_height=1020
|
||||||
window/size/always_on_top=true
|
|
||||||
window/stretch/mode="viewport"
|
window/stretch/mode="viewport"
|
||||||
window/stretch/aspect="keep_height"
|
window/stretch/aspect="keep_height"
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,6 @@
|
|||||||
[node name="BabushkaSceneBootstrap" type="Node2D"]
|
[node name="BabushkaSceneBootstrap" type="Node2D"]
|
||||||
|
|
||||||
[node name="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")]
|
[node name="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")]
|
||||||
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_disclaimer.tscn")
|
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn")
|
||||||
|
|
||||||
[node name="SceneParent" type="Node" parent="."]
|
[node name="SceneParent" type="Node" parent="."]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=102 format=3 uid="uid://gigb28qk8t12"]
|
[gd_scene load_steps=107 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"]
|
||||||
@@ -37,6 +37,7 @@
|
|||||||
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="28_ipqaa"]
|
[ext_resource type="Resource" uid="uid://cndd64batns31" path="res://resources/items/wateringcan.tres" id="28_ipqaa"]
|
||||||
[ext_resource type="Resource" uid="uid://datee0flk1e84" path="res://resources/items/scythe.tres" id="29_wtdui"]
|
[ext_resource type="Resource" uid="uid://datee0flk1e84" path="res://resources/items/scythe.tres" id="29_wtdui"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="32_2nee2"]
|
[ext_resource type="PackedScene" uid="uid://cgjc4wurbgimy" path="res://prefabs/UI/Inventory/Inventory.tscn" id="32_2nee2"]
|
||||||
|
[ext_resource type="Script" uid="uid://boehox1ydbcnx" path="res://scripts/CSharp/Common/Farming/WellBehaviour.cs" id="32_lbnqo"]
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="34_e5b7x"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="34_e5b7x"]
|
||||||
[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
|
[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
|
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
|
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bq2wojyy4ptva" path="res://art/nature/baum märz 2025/sonnenblume7.png" id="38_2rjny"]
|
[ext_resource type="Texture2D" uid="uid://bq2wojyy4ptva" path="res://art/nature/baum märz 2025/sonnenblume7.png" id="38_2rjny"]
|
||||||
[ext_resource type="AudioStream" uid="uid://fsiypqhql67w" path="res://audio/sfx/Farming/SFX_GettingWater_01.wav" id="39_di1ed"]
|
[ext_resource type="AudioStream" uid="uid://fsiypqhql67w" path="res://audio/sfx/Farming/SFX_GettingWater_01.wav" id="39_di1ed"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ccy6bwunhfvrf" path="res://art/farm/Babushka_house_frontDoor.png" id="39_lbnqo"]
|
||||||
[ext_resource type="AudioStream" uid="uid://foyw26hq1qp5" path="res://audio/sfx/Farming/SFX_GettingWater_02.wav" id="40_ceriq"]
|
[ext_resource type="AudioStream" uid="uid://foyw26hq1qp5" path="res://audio/sfx/Farming/SFX_GettingWater_02.wav" id="40_ceriq"]
|
||||||
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="40_w3jkj"]
|
[ext_resource type="Script" uid="uid://cfnrd5k1k0gxw" path="res://scripts/CSharp/Common/AudioPlayer.cs" id="40_w3jkj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dgavbfci8x178" path="res://art/nature/grass/grass-1.png" id="41_apj51"]
|
[ext_resource type="Texture2D" uid="uid://dgavbfci8x178" path="res://art/nature/grass/grass-1.png" id="41_apj51"]
|
||||||
@@ -153,11 +155,23 @@ size = Vector2(1041, 368)
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 371.058
|
radius = 371.058
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_2nee2"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_ycj14"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_ipqaa"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_2065p"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_tm0yg"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_lbnqo"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_l4wxt"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
@@ -1011,7 +1025,7 @@ _timelinesToPlay = PackedStringArray("quest1_ducks_start", "quest2_tomatoes_star
|
|||||||
|
|
||||||
[node name="Vesna" parent="YSorted" node_paths=PackedStringArray("_fieldParent") instance=ExtResource("1_7wfwe")]
|
[node name="Vesna" parent="YSorted" node_paths=PackedStringArray("_fieldParent") instance=ExtResource("1_7wfwe")]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(-2031, 2949)
|
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")
|
_wateringCan = ExtResource("28_ipqaa")
|
||||||
@@ -1019,7 +1033,7 @@ _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")
|
||||||
|
|
||||||
[node name="Brünnen" type="Sprite2D" parent="YSorted"]
|
[node name="Brünnen" type="Sprite2D" parent="YSorted" node_paths=PackedStringArray("_interactionArea")]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
material = SubResource("ShaderMaterial_2vojv")
|
material = SubResource("ShaderMaterial_2vojv")
|
||||||
@@ -1028,6 +1042,8 @@ texture = ExtResource("21_ualyd")
|
|||||||
offset = Vector2(0, -800)
|
offset = Vector2(0, -800)
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(0, 0, 1504, 1686)
|
region_rect = Rect2(0, 0, 1504, 1686)
|
||||||
|
script = ExtResource("32_lbnqo")
|
||||||
|
_interactionArea = NodePath("InteractionArea")
|
||||||
|
|
||||||
[node name="StaticBody2D" type="StaticBody2D" parent="YSorted/Brünnen"]
|
[node name="StaticBody2D" type="StaticBody2D" parent="YSorted/Brünnen"]
|
||||||
collision_mask = 4
|
collision_mask = 4
|
||||||
@@ -1036,7 +1052,9 @@ collision_mask = 4
|
|||||||
position = Vector2(145.5, -224)
|
position = Vector2(145.5, -224)
|
||||||
shape = SubResource("RectangleShape2D_0sfl7")
|
shape = SubResource("RectangleShape2D_0sfl7")
|
||||||
|
|
||||||
[node name="InteractionArea" parent="YSorted/Brünnen" instance=ExtResource("27_klb81")]
|
[node name="InteractionArea" parent="YSorted/Brünnen" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("27_klb81")]
|
||||||
|
_active = false
|
||||||
|
_spriteToOutline = NodePath("..")
|
||||||
_id = 1
|
_id = 1
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/Brünnen/InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/Brünnen/InteractionArea/Area2D" index="0"]
|
||||||
@@ -1050,8 +1068,8 @@ position = Vector2(6095, 2087)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/HoeGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/HoeGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("26_ipqaa")
|
_blueprint = ExtResource("26_ipqaa")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/HoeGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/HoeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_2nee2")
|
shape = SubResource("CircleShape2D_ycj14")
|
||||||
|
|
||||||
[node name="CanGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
[node name="CanGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
position = Vector2(8192, 3507)
|
position = Vector2(8192, 3507)
|
||||||
@@ -1059,11 +1077,11 @@ position = Vector2(8192, 3507)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("28_ipqaa")
|
_blueprint = ExtResource("28_ipqaa")
|
||||||
|
|
||||||
[node name="InteractionArea2" parent="YSorted/CanGenericPickup" index="3"]
|
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
position = Vector2(0, -159)
|
shape = SubResource("CircleShape2D_2065p")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="Icon" parent="YSorted/CanGenericPickup" index="4"]
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
offset = Vector2(0, -50)
|
||||||
|
|
||||||
[node name="RakeGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
[node name="RakeGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
position = Vector2(8391, 2060)
|
position = Vector2(8391, 2060)
|
||||||
@@ -1071,8 +1089,8 @@ position = Vector2(8391, 2060)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/RakeGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/RakeGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("28_6b2nr")
|
_blueprint = ExtResource("28_6b2nr")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
shape = SubResource("CircleShape2D_tm0yg")
|
||||||
|
|
||||||
[node name="ScytheGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
[node name="ScytheGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1081,8 +1099,8 @@ position = Vector2(15642, 2158)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/ScytheGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/ScytheGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("29_wtdui")
|
_blueprint = ExtResource("29_wtdui")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/ScytheGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/ScytheGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
shape = SubResource("CircleShape2D_lbnqo")
|
||||||
|
|
||||||
[node name="ShovelGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
[node name="ShovelGenericPickup" parent="YSorted" instance=ExtResource("25_hukxv")]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1091,8 +1109,8 @@ position = Vector2(5454, 2049)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/ShovelGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/ShovelGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("27_ipqaa")
|
_blueprint = ExtResource("27_ipqaa")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/ShovelGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/ShovelGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
shape = SubResource("CircleShape2D_l4wxt")
|
||||||
|
|
||||||
[node name="Farm visuals" type="Node2D" parent="YSorted"]
|
[node name="Farm visuals" type="Node2D" parent="YSorted"]
|
||||||
position = Vector2(-60, 122)
|
position = Vector2(-60, 122)
|
||||||
@@ -1115,11 +1133,17 @@ collision_mask = 6
|
|||||||
position = Vector2(-252.56, 231.32)
|
position = Vector2(-252.56, 231.32)
|
||||||
polygon = PackedVector2Array(247.227, 43.5123, 44.7822, 43.5123, -87.2178, 45.123, -104.329, -55.2797, -154.107, -73.5347, -160.107, -380.38, -175.44, -400.783, -63.44, -512.461, 97.8934, -541.991, 261.671, -599.172, 374.782, -526.421, 502.338, -526.421, 637.893, -396.488, 598.56, -360.783, 596.338, -58.2327, 528.782, -58.2327, 501.449, 45.9283)
|
polygon = PackedVector2Array(247.227, 43.5123, 44.7822, 43.5123, -87.2178, 45.123, -104.329, -55.2797, -154.107, -73.5347, -160.107, -380.38, -175.44, -400.783, -63.44, -512.461, 97.8934, -541.991, 261.671, -599.172, 374.782, -526.421, 502.338, -526.421, 637.893, -396.488, 598.56, -360.783, 596.338, -58.2327, 528.782, -58.2327, 501.449, 45.9283)
|
||||||
|
|
||||||
[node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" instance=ExtResource("27_klb81")]
|
[node name="EnterHouseInteraction" parent="YSorted/Farm visuals/Static" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("27_klb81")]
|
||||||
position = Vector2(5839, 2349)
|
position = Vector2(5839, 2349)
|
||||||
scale = Vector2(2.425, 2.425)
|
scale = Vector2(2.425, 2.425)
|
||||||
|
_spriteToOutline = NodePath("DoorSprite")
|
||||||
_id = 0
|
_id = 0
|
||||||
|
|
||||||
|
[node name="DoorSprite" type="Sprite2D" parent="YSorted/Farm visuals/Static/EnterHouseInteraction"]
|
||||||
|
position = Vector2(0.412364, -33.1959)
|
||||||
|
scale = Vector2(1.8649, 1.54554)
|
||||||
|
texture = ExtResource("39_lbnqo")
|
||||||
|
|
||||||
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
|
[node name="greenery" type="Node2D" parent="YSorted/Farm visuals/Static"]
|
||||||
|
|
||||||
[node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"]
|
[node name="left side" type="Node2D" parent="YSorted/Farm visuals/Static/greenery"]
|
||||||
@@ -2071,10 +2095,12 @@ rotation = 1.5708
|
|||||||
scale = Vector2(0.1, 10.8)
|
scale = Vector2(0.1, 10.8)
|
||||||
texture = ExtResource("21_if5vh")
|
texture = ExtResource("21_if5vh")
|
||||||
|
|
||||||
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals"]
|
[node name="FieldParent" type="Node2D" parent="YSorted/Farm visuals" node_paths=PackedStringArray("fields", "_allowedArea")]
|
||||||
position = Vector2(53, 20)
|
position = Vector2(53, 20)
|
||||||
scale = Vector2(1, 0.993819)
|
scale = Vector2(1, 0.993819)
|
||||||
script = ExtResource("25_0qu0h")
|
script = ExtResource("25_0qu0h")
|
||||||
|
fields = {}
|
||||||
|
_allowedArea = NodePath("Area2D")
|
||||||
metadata/_custom_type_script = "uid://dhxtdhfqx3bte"
|
metadata/_custom_type_script = "uid://dhxtdhfqx3bte"
|
||||||
|
|
||||||
[node name="Area2D" type="Area2D" parent="YSorted/Farm visuals/FieldParent"]
|
[node name="Area2D" type="Area2D" parent="YSorted/Farm visuals/FieldParent"]
|
||||||
@@ -2123,34 +2149,48 @@ position = Vector2(-106.663, 182.891)
|
|||||||
shape = SubResource("RectangleShape2D_ycj14")
|
shape = SubResource("RectangleShape2D_ycj14")
|
||||||
|
|
||||||
[node name="ducks" type="Node2D" parent="YSorted"]
|
[node name="ducks" type="Node2D" parent="YSorted"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
script = ExtResource("49_uxa2m")
|
script = ExtResource("49_uxa2m")
|
||||||
_goal = 6
|
_goal = 6
|
||||||
|
|
||||||
[node name="Duck2" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
[node name="Duck2" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(4374, 2652)
|
position = Vector2(4374, 2652)
|
||||||
_penTarget = NodePath("../../pen/penSlot1")
|
_penTarget = NodePath("../../pen/penSlot1")
|
||||||
|
|
||||||
[node name="Duck3" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
[node name="Duck3" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(9259, 3194)
|
position = Vector2(9259, 3194)
|
||||||
_penTarget = NodePath("../../pen/penSlot2")
|
_penTarget = NodePath("../../pen/penSlot2")
|
||||||
|
|
||||||
[node name="Duck4" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
[node name="Duck4" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(13441, 3612)
|
position = Vector2(13441, 3612)
|
||||||
rotation = 3.14159
|
rotation = 3.14159
|
||||||
scale = Vector2(1, -1)
|
scale = Vector2(1, -1)
|
||||||
_penTarget = NodePath("../../pen/penSlot3")
|
_penTarget = NodePath("../../pen/penSlot3")
|
||||||
|
|
||||||
[node name="Duck5" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
[node name="Duck5" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(15330, 2487)
|
position = Vector2(15330, 2487)
|
||||||
rotation = 3.14159
|
rotation = 3.14159
|
||||||
scale = Vector2(1, -1)
|
scale = Vector2(1, -1)
|
||||||
_penTarget = NodePath("../../pen/penSlot4")
|
_penTarget = NodePath("../../pen/penSlot4")
|
||||||
|
|
||||||
[node name="Duck6" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
[node name="Duck6" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(232, 2862)
|
position = Vector2(232, 2862)
|
||||||
_penTarget = NodePath("../../pen/penSlot5")
|
_penTarget = NodePath("../../pen/penSlot5")
|
||||||
|
|
||||||
[node name="Duck7" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
[node name="Duck7" parent="YSorted/ducks" node_paths=PackedStringArray("_penTarget") instance=ExtResource("62_i36hd")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(2409, 3958)
|
position = Vector2(2409, 3958)
|
||||||
rotation = 3.14159
|
rotation = 3.14159
|
||||||
scale = Vector2(1, -1)
|
scale = Vector2(1, -1)
|
||||||
@@ -2185,41 +2225,67 @@ position = Vector2(-4659, 2897)
|
|||||||
position = Vector2(-5016, 3361)
|
position = Vector2(-5016, 3361)
|
||||||
|
|
||||||
[node name="trash" type="Node2D" parent="YSorted"]
|
[node name="trash" type="Node2D" parent="YSorted"]
|
||||||
|
z_index = 1
|
||||||
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="trashObject" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(1269, 3170)
|
position = Vector2(1269, 3170)
|
||||||
|
|
||||||
[node name="trashObject2" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject2" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(3183, 2369)
|
position = Vector2(3183, 2369)
|
||||||
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(207, 1184, 149, 142)
|
region_rect = Rect2(207, 1184, 149, 142)
|
||||||
|
|
||||||
[node name="trashObject3" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject3" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(4724, 3519)
|
position = Vector2(4724, 3519)
|
||||||
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(400, 1053, 163, 141)
|
region_rect = Rect2(400, 1053, 163, 141)
|
||||||
|
|
||||||
[node name="trashObject4" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject4" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(5385, 3391)
|
position = Vector2(5385, 3391)
|
||||||
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(1048, 1092, 348, 106)
|
region_rect = Rect2(1048, 1092, 348, 106)
|
||||||
|
|
||||||
[node name="trashObject5" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject5" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(8051, 2541)
|
position = Vector2(8051, 2541)
|
||||||
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(531, 1207, 176, 167)
|
region_rect = Rect2(531, 1207, 176, 167)
|
||||||
|
|
||||||
[node name="trashObject6" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject6" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(9629, 3312)
|
position = Vector2(9629, 3312)
|
||||||
|
offset = Vector2(1, -50)
|
||||||
region_rect = Rect2(207, 1184, 149, 142)
|
region_rect = Rect2(207, 1184, 149, 142)
|
||||||
|
|
||||||
[node name="trashObject7" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject7" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(12050, 3391)
|
position = Vector2(12050, 3391)
|
||||||
|
|
||||||
[node name="trashObject8" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject8" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(14589, 2505)
|
position = Vector2(14589, 2505)
|
||||||
rotation = 1.77025
|
rotation = 1.77025
|
||||||
region_rect = Rect2(629, 81, 227, 829)
|
region_rect = Rect2(629, 81, 227, 829)
|
||||||
|
|
||||||
[node name="trashObject9" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
[node name="trashObject9" parent="YSorted/trash" instance=ExtResource("53_ycj14")]
|
||||||
position = Vector2(15197, 3447)
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
|
position = Vector2(15322, 3472)
|
||||||
rotation = 1.77025
|
rotation = 1.77025
|
||||||
|
offset = Vector2(0, 0)
|
||||||
region_rect = Rect2(1048, 1092, 348, 106)
|
region_rect = Rect2(1048, 1092, 348, 106)
|
||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")]
|
[node name="CanvasLayer" parent="." instance=ExtResource("32_2nee2")]
|
||||||
@@ -2305,14 +2371,13 @@ script = ExtResource("40_w3jkj")
|
|||||||
[editable path="YSorted/Vesna"]
|
[editable path="YSorted/Vesna"]
|
||||||
[editable path="YSorted/Brünnen/InteractionArea"]
|
[editable path="YSorted/Brünnen/InteractionArea"]
|
||||||
[editable path="YSorted/HoeGenericPickup"]
|
[editable path="YSorted/HoeGenericPickup"]
|
||||||
[editable path="YSorted/HoeGenericPickup/InteractionArea2"]
|
[editable path="YSorted/HoeGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/CanGenericPickup"]
|
[editable path="YSorted/CanGenericPickup"]
|
||||||
[editable path="YSorted/CanGenericPickup/InteractionArea2"]
|
[editable path="YSorted/CanGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/RakeGenericPickup"]
|
[editable path="YSorted/RakeGenericPickup"]
|
||||||
[editable path="YSorted/RakeGenericPickup/InteractionArea2"]
|
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/ScytheGenericPickup"]
|
[editable path="YSorted/ScytheGenericPickup"]
|
||||||
[editable path="YSorted/ScytheGenericPickup/InteractionArea2"]
|
[editable path="YSorted/ScytheGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/ShovelGenericPickup"]
|
[editable path="YSorted/ShovelGenericPickup"]
|
||||||
[editable path="YSorted/ShovelGenericPickup/InteractionArea2"]
|
[editable path="YSorted/ShovelGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/trash/trashObject"]
|
|
||||||
[editable path="CanvasLayer"]
|
[editable path="CanvasLayer"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=100 format=3 uid="uid://cic8y0mdk3vd2"]
|
[gd_scene load_steps=103 format=3 uid="uid://cic8y0mdk3vd2"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_gwe0p"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_gwe0p"]
|
||||||
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="2_1kqg8"]
|
[ext_resource type="Script" uid="uid://bqomwxclsbhd3" path="res://scripts/CSharp/Common/Camera/CameraController.cs" id="2_1kqg8"]
|
||||||
@@ -151,11 +151,23 @@ size = Vector2(1041, 368)
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 371.058
|
radius = 371.058
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_2nee2"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_tkk2w"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_ipqaa"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_gwe0p"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_1kqg8"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_6nf5r"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 300.0
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_2532c"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
|
|
||||||
@@ -1044,8 +1056,8 @@ position = Vector2(6095, 2087)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/HoeGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/HoeGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("34_n176s")
|
_blueprint = ExtResource("34_n176s")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/HoeGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/HoeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_2nee2")
|
shape = SubResource("CircleShape2D_tkk2w")
|
||||||
|
|
||||||
[node name="CanGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
[node name="CanGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
||||||
position = Vector2(8192, 3507)
|
position = Vector2(8192, 3507)
|
||||||
@@ -1053,11 +1065,8 @@ position = Vector2(8192, 3507)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/CanGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("30_te7n5")
|
_blueprint = ExtResource("30_te7n5")
|
||||||
|
|
||||||
[node name="InteractionArea2" parent="YSorted/CanGenericPickup" index="3"]
|
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
position = Vector2(0, -159)
|
shape = SubResource("CircleShape2D_gwe0p")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/CanGenericPickup/InteractionArea2/Area2D" index="0"]
|
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
|
||||||
|
|
||||||
[node name="RakeGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
[node name="RakeGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
||||||
position = Vector2(8391, 2060)
|
position = Vector2(8391, 2060)
|
||||||
@@ -1065,8 +1074,8 @@ position = Vector2(8391, 2060)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/RakeGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/RakeGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("29_36k8l")
|
_blueprint = ExtResource("29_36k8l")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/RakeGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
shape = SubResource("CircleShape2D_1kqg8")
|
||||||
|
|
||||||
[node name="ScytheGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
[node name="ScytheGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1075,8 +1084,8 @@ position = Vector2(15642, 2158)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/ScytheGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/ScytheGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("35_p4sr7")
|
_blueprint = ExtResource("35_p4sr7")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/ScytheGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/ScytheGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
shape = SubResource("CircleShape2D_6nf5r")
|
||||||
|
|
||||||
[node name="ShovelGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
[node name="ShovelGenericPickup" parent="YSorted" instance=ExtResource("33_tml8r")]
|
||||||
visible = false
|
visible = false
|
||||||
@@ -1085,8 +1094,8 @@ position = Vector2(5454, 2049)
|
|||||||
[node name="SpawnWithItem" parent="YSorted/ShovelGenericPickup" index="0"]
|
[node name="SpawnWithItem" parent="YSorted/ShovelGenericPickup" index="0"]
|
||||||
_blueprint = ExtResource("36_vri5g")
|
_blueprint = ExtResource("36_vri5g")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="YSorted/ShovelGenericPickup/InteractionArea2/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="YSorted/ShovelGenericPickup/PickupInteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_ipqaa")
|
shape = SubResource("CircleShape2D_2532c")
|
||||||
|
|
||||||
[node name="Farm visuals" type="Node2D" parent="YSorted"]
|
[node name="Farm visuals" type="Node2D" parent="YSorted"]
|
||||||
position = Vector2(-60, 122)
|
position = Vector2(-60, 122)
|
||||||
@@ -2259,13 +2268,13 @@ script = ExtResource("59_0knno")
|
|||||||
[editable path="YSorted/Vesna"]
|
[editable path="YSorted/Vesna"]
|
||||||
[editable path="YSorted/Brünnen/InteractionArea"]
|
[editable path="YSorted/Brünnen/InteractionArea"]
|
||||||
[editable path="YSorted/HoeGenericPickup"]
|
[editable path="YSorted/HoeGenericPickup"]
|
||||||
[editable path="YSorted/HoeGenericPickup/InteractionArea2"]
|
[editable path="YSorted/HoeGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/CanGenericPickup"]
|
[editable path="YSorted/CanGenericPickup"]
|
||||||
[editable path="YSorted/CanGenericPickup/InteractionArea2"]
|
[editable path="YSorted/CanGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/RakeGenericPickup"]
|
[editable path="YSorted/RakeGenericPickup"]
|
||||||
[editable path="YSorted/RakeGenericPickup/InteractionArea2"]
|
[editable path="YSorted/RakeGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/ScytheGenericPickup"]
|
[editable path="YSorted/ScytheGenericPickup"]
|
||||||
[editable path="YSorted/ScytheGenericPickup/InteractionArea2"]
|
[editable path="YSorted/ScytheGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="YSorted/ShovelGenericPickup"]
|
[editable path="YSorted/ShovelGenericPickup"]
|
||||||
[editable path="YSorted/ShovelGenericPickup/InteractionArea2"]
|
[editable path="YSorted/ShovelGenericPickup/PickupInteractionArea"]
|
||||||
[editable path="CanvasLayer"]
|
[editable path="CanvasLayer"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=40 format=3 uid="uid://bm21nqepnwaik"]
|
[gd_scene load_steps=41 format=3 uid="uid://bm21nqepnwaik"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_3vr4f"]
|
[ext_resource type="Script" uid="uid://cssdu8viimwm6" path="res://scripts/CSharp/Common/SceneTransition.cs" id="1_3vr4f"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cnhsxxps2cw5" path="res://art/indoor/room export/Room_01_table.png" id="2_ubg3a"]
|
[ext_resource type="Texture2D" uid="uid://cnhsxxps2cw5" path="res://art/indoor/room export/Room_01_table.png" id="2_ubg3a"]
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://waqmjrxduxfq" path="res://art/indoor/room export/Room_01_walls.png" id="5_sndxu"]
|
[ext_resource type="Texture2D" uid="uid://waqmjrxduxfq" path="res://art/indoor/room export/Room_01_walls.png" id="5_sndxu"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bqwhptcgg5ons" path="res://art/indoor/room export/Room_01_dorr_R.png" id="6_blyw3"]
|
[ext_resource type="Texture2D" uid="uid://bqwhptcgg5ons" path="res://art/indoor/room export/Room_01_dorr_R.png" id="6_blyw3"]
|
||||||
[ext_resource type="Texture2D" uid="uid://vyk63d0pgqm5" path="res://art/indoor/room export/Room_01_dioor L.png" id="7_yd2gv"]
|
[ext_resource type="Texture2D" uid="uid://vyk63d0pgqm5" path="res://art/indoor/room export/Room_01_dioor L.png" id="7_yd2gv"]
|
||||||
|
[ext_resource type="Material" uid="uid://blch5kdhkbj75" path="res://art/materials/simple_interactable_outline.tres" id="8_7a68a"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b2rj7wkyu6ehy" path="res://art/indoor/room export/Room_01_pechka.png" id="8_ofqcg"]
|
[ext_resource type="Texture2D" uid="uid://b2rj7wkyu6ehy" path="res://art/indoor/room export/Room_01_pechka.png" id="8_ofqcg"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dhvi5404cqioa" path="res://art/indoor/room export/Room_01_window.png" id="9_aoesu"]
|
[ext_resource type="Texture2D" uid="uid://dhvi5404cqioa" path="res://art/indoor/room export/Room_01_window.png" id="9_aoesu"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bpi35nxbhput8" path="res://art/indoor/room export/Room_01_pechkaDoor.png" id="10_xcryd"]
|
[ext_resource type="Texture2D" uid="uid://bpi35nxbhput8" path="res://art/indoor/room export/Room_01_pechkaDoor.png" id="10_xcryd"]
|
||||||
@@ -36,6 +37,10 @@
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
size = Vector2(3836, 1086)
|
size = Vector2(3836, 1086)
|
||||||
|
|
||||||
|
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
radius = 472.086
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_gpagp"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_gpagp"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 300.0
|
radius = 300.0
|
||||||
@@ -210,11 +215,8 @@ _data = {
|
|||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
radius = 209.703
|
radius = 209.703
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_yd2gv"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
radius = 472.086
|
|
||||||
|
|
||||||
[node name="IndoorTest" type="Node2D"]
|
[node name="IndoorTest" type="Node2D"]
|
||||||
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
script = ExtResource("1_3vr4f")
|
script = ExtResource("1_3vr4f")
|
||||||
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_farm_outside_2d_ducksCollected.tscn")
|
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_indoor_vesnas_room.tscn", "res://scenes/Babushka_scene_farm_outside_2d_ducksCollected.tscn")
|
||||||
@@ -308,13 +310,28 @@ texture = ExtResource("6_blyw3")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(3161, 313, 679, 1050)
|
region_rect = Rect2(3161, 313, 679, 1050)
|
||||||
|
|
||||||
[node name="Room01DioorL" type="Sprite2D" parent="BackWall"]
|
[node name="OutsideDoor" parent="BackWall/Room01DorrR" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(-7, 248)
|
||||||
|
_outlineMaterial = ExtResource("8_7a68a")
|
||||||
|
_spriteToOutline = NodePath("..")
|
||||||
|
_id = 1
|
||||||
|
|
||||||
|
[node name="Room01DoorL" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -50
|
z_index = -50
|
||||||
position = Vector2(-3296, 48)
|
position = Vector2(-3296, 48)
|
||||||
texture = ExtResource("7_yd2gv")
|
texture = ExtResource("7_yd2gv")
|
||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(0, 0, 3840, 2160)
|
region_rect = Rect2(0, 0, 3840, 2160)
|
||||||
|
|
||||||
|
[node name="VesnasRoomDoor" parent="BackWall/Room01DoorL" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(-1559, -16)
|
||||||
|
_outlineMaterial = ExtResource("8_7a68a")
|
||||||
|
_spriteToOutline = NodePath("..")
|
||||||
|
_id = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" parent="BackWall/Room01DoorL/VesnasRoomDoor/Area2D" index="0"]
|
||||||
|
shape = SubResource("CircleShape2D_yd2gv")
|
||||||
|
|
||||||
[node name="Room01Pechka" type="Sprite2D" parent="BackWall"]
|
[node name="Room01Pechka" type="Sprite2D" parent="BackWall"]
|
||||||
z_index = -80
|
z_index = -80
|
||||||
position = Vector2(-224, -392)
|
position = Vector2(-224, -392)
|
||||||
@@ -343,8 +360,10 @@ texture = ExtResource("10_xcryd")
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(2360, 864, 356, 251)
|
region_rect = Rect2(2360, 864, 356, 251)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="BackWall/Room01PechkaDoor" instance=ExtResource("11_gpagp")]
|
[node name="InteractionArea" parent="BackWall/Room01PechkaDoor" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
|
||||||
scale = Vector2(1.8, 1.96)
|
scale = Vector2(1.8, 1.96)
|
||||||
|
_outlineMaterial = ExtResource("8_7a68a")
|
||||||
|
_spriteToOutline = NodePath("..")
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="BackWall/Room01PechkaDoor/InteractionArea/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="BackWall/Room01PechkaDoor/InteractionArea/Area2D" index="0"]
|
||||||
shape = SubResource("CircleShape2D_gpagp")
|
shape = SubResource("CircleShape2D_gpagp")
|
||||||
@@ -391,6 +410,12 @@ stream = SubResource("AudioStreamRandomizer_b6vf7")
|
|||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
script = ExtResource("22_tggq2")
|
script = ExtResource("22_tggq2")
|
||||||
|
|
||||||
|
[node name="InteractionArea" parent="BackWall/Katze" node_paths=PackedStringArray("_spriteToOutline") instance=ExtResource("11_gpagp")]
|
||||||
|
position = Vector2(-6.5, -44)
|
||||||
|
scale = Vector2(0.5, 0.5)
|
||||||
|
_outlineMaterial = ExtResource("8_7a68a")
|
||||||
|
_spriteToOutline = NodePath("..")
|
||||||
|
|
||||||
[node name="Room assets" type="Node" parent="BackWall"]
|
[node name="Room assets" type="Node" parent="BackWall"]
|
||||||
|
|
||||||
[node name="wood" type="Sprite2D" parent="BackWall/Room assets"]
|
[node name="wood" type="Sprite2D" parent="BackWall/Room assets"]
|
||||||
@@ -511,13 +536,13 @@ offset = Vector2(0, -296)
|
|||||||
region_enabled = true
|
region_enabled = true
|
||||||
region_rect = Rect2(2576, 802, 219, 64)
|
region_rect = Rect2(2576, 802, 219, 64)
|
||||||
|
|
||||||
[node name="InteractionArea" parent="BackWall" instance=ExtResource("11_gpagp")]
|
|
||||||
position = Vector2(-4064, 244)
|
|
||||||
|
|
||||||
[node name="Vesna" parent="." instance=ExtResource("15_7a68a")]
|
[node name="Vesna" parent="." instance=ExtResource("15_7a68a")]
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(-920, 319)
|
position = Vector2(-920, 319)
|
||||||
|
|
||||||
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")]
|
[node name="Yeli" parent="." instance=ExtResource("16_dhsxs")]
|
||||||
|
z_index = 0
|
||||||
|
y_sort_enabled = false
|
||||||
position = Vector2(-1395, 16)
|
position = Vector2(-1395, 16)
|
||||||
_timelinesToPlay = PackedStringArray("yeli_intro_05")
|
_timelinesToPlay = PackedStringArray("yeli_intro_05")
|
||||||
|
|
||||||
@@ -525,12 +550,6 @@ _timelinesToPlay = PackedStringArray("yeli_intro_05")
|
|||||||
position = Vector2(-207.487, 136.185)
|
position = Vector2(-207.487, 136.185)
|
||||||
shape = SubResource("CircleShape2D_wuntg")
|
shape = SubResource("CircleShape2D_wuntg")
|
||||||
|
|
||||||
[node name="Label" parent="Yeli/InteractionArea" index="1"]
|
|
||||||
offset_left = -332.62
|
|
||||||
offset_top = -99.8217
|
|
||||||
offset_right = -85.6204
|
|
||||||
offset_bottom = 3.17825
|
|
||||||
|
|
||||||
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
|
[node name="AnimatedSprite" parent="Yeli/TalkingControl" index="0"]
|
||||||
position = Vector2(-576, 368)
|
position = Vector2(-576, 368)
|
||||||
|
|
||||||
@@ -561,26 +580,15 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
|
|||||||
|
|
||||||
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")]
|
[node name="CanvasLayer" parent="." instance=ExtResource("24_yd2gv")]
|
||||||
|
|
||||||
[node name="VesnasRoomDoor" parent="." instance=ExtResource("11_gpagp")]
|
[connection signal="InteractedTool" from="BackWall/Room01DorrR/OutsideDoor" to="." method="LoadSceneAtIndex"]
|
||||||
position = Vector2(-4855, 32)
|
[connection signal="InteractedTool" from="BackWall/Room01DoorL/VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
|
||||||
_id = 0
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="VesnasRoomDoor/Area2D" index="0"]
|
|
||||||
shape = SubResource("CircleShape2D_yd2gv")
|
|
||||||
|
|
||||||
[node name="OutsideDoor" parent="." instance=ExtResource("11_gpagp")]
|
|
||||||
position = Vector2(929, 32)
|
|
||||||
_id = 1
|
|
||||||
|
|
||||||
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room01PechkaDoor/InteractionArea" method="ToggleActive"]
|
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room01PechkaDoor/InteractionArea" method="ToggleActive"]
|
||||||
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room assets/hand" method="PlayAnimation"]
|
[connection signal="Interacted" from="BackWall/Room01PechkaDoor/InteractionArea" to="BackWall/Room assets/hand" method="PlayAnimation"]
|
||||||
[connection signal="Interacted" from="BackWall/InteractionArea" to="BackWall/Katze/AudioStreamPlayer2D" method="PlayOneShot"]
|
[connection signal="Interacted" from="BackWall/Katze/InteractionArea" to="BackWall/Katze/AudioStreamPlayer2D" method="PlayOneShot"]
|
||||||
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="Yeli/Beetroot Quest trigger" method="Trigger"]
|
[connection signal="timelineEnded" from="Yeli/dialogic_toggle" to="Yeli/Beetroot Quest trigger" method="Trigger"]
|
||||||
[connection signal="InteractedTool" from="VesnasRoomDoor" to="." method="LoadSceneAtIndex"]
|
|
||||||
[connection signal="InteractedTool" from="OutsideDoor" to="." method="LoadSceneAtIndex"]
|
|
||||||
|
|
||||||
|
[editable path="BackWall/Room01DoorL/VesnasRoomDoor"]
|
||||||
[editable path="BackWall/Room01PechkaDoor/InteractionArea"]
|
[editable path="BackWall/Room01PechkaDoor/InteractionArea"]
|
||||||
[editable path="Vesna"]
|
[editable path="Vesna"]
|
||||||
[editable path="Yeli"]
|
[editable path="Yeli"]
|
||||||
[editable path="Yeli/InteractionArea"]
|
[editable path="Yeli/InteractionArea"]
|
||||||
[editable path="VesnasRoomDoor"]
|
|
||||||
|
|||||||
@@ -96,10 +96,14 @@ _followNode = NodePath("../Vesna/CharacterBody2D")
|
|||||||
|
|
||||||
[node name="BedInteraction" parent="." instance=ExtResource("8_phqdf")]
|
[node name="BedInteraction" parent="." instance=ExtResource("8_phqdf")]
|
||||||
position = Vector2(-1429, 487)
|
position = Vector2(-1429, 487)
|
||||||
|
_useOutline = false
|
||||||
|
_useSprite = false
|
||||||
_id = 1
|
_id = 1
|
||||||
|
|
||||||
[node name="DoorInteraction" parent="." instance=ExtResource("8_phqdf")]
|
[node name="DoorInteraction" parent="." instance=ExtResource("8_phqdf")]
|
||||||
position = Vector2(777, 201)
|
position = Vector2(777, 201)
|
||||||
|
_useOutline = false
|
||||||
|
_useSprite = false
|
||||||
_id = 0
|
_id = 0
|
||||||
|
|
||||||
[node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"]
|
[node name="CollisionShape3D" parent="DoorInteraction/Area2D" index="0"]
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Godot;
|
using Godot;
|
||||||
using System;
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Animation;
|
||||||
|
|
||||||
public partial class AnimationStarter : Node2D
|
public partial class AnimationStarter : Node2D
|
||||||
{
|
{
|
||||||
@@ -21,4 +22,4 @@ public partial class AnimationStarter : Node2D
|
|||||||
_played = true;
|
_played = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+33
-54
@@ -1,48 +1,36 @@
|
|||||||
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Babushka.scripts.CSharp.Common.Inventory;
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Babushka.scripts.CSharp.Common.Services;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.CharacterControls;
|
namespace Babushka.scripts.CSharp.Common.Animation;
|
||||||
|
|
||||||
public partial class Player2D : CharacterBody2D
|
public partial class VesnaAnimations : Node
|
||||||
{
|
{
|
||||||
[Export] private float _speed = 100f;
|
[Export] private AnimatedSprite2D _sprite;
|
||||||
[Export] private AnimatedSprite2D _sprite;
|
[Export] private CpuParticles2D _wateringParticles;
|
||||||
[Export] private SceneTree.GroupCallFlags _fieldFlags;
|
|
||||||
[Export] private CpuParticles2D _wateringParticles;
|
private bool anyActionPressed;
|
||||||
|
private string _toolString;
|
||||||
|
private int _toolID = -1; // -1 means no tool.
|
||||||
|
private Vector2 _lastDirection = Vector2.Zero;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
InventoryManager.Instance.playerInventory.InventoryContentsChanged += HandleNewItemInInventory;
|
||||||
|
}
|
||||||
|
|
||||||
// -1 means no tool.
|
private void HandleNewItemInInventory()
|
||||||
private int _toolID = -1;
|
{
|
||||||
private string _toolString;
|
// for future Kathi: this does not, in fact, check if an item has been added only, but triggers on every content change!
|
||||||
private bool anyActionPressed;
|
PlayPickUpAnimation();
|
||||||
private bool _canHandleInput = true;
|
}
|
||||||
private Vector2 _lastDirection = Vector2.Zero;
|
|
||||||
private InventoryManager _inventoryManager;
|
public override void _Process(double delta)
|
||||||
|
|
||||||
public bool InputEnabled
|
|
||||||
{
|
|
||||||
get => _canHandleInput;
|
|
||||||
set => _canHandleInput = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Ready()
|
|
||||||
{
|
|
||||||
InventoryManager.Instance.playerInventory.InventoryContentsChanged += HandleNewItemInInventory;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void HandleNewItemInInventory()
|
|
||||||
{
|
|
||||||
// for future Kathi: this does not, in fact, check if an item has been added only, but triggers on every content change!
|
|
||||||
PlayPickUpAnimation();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
{
|
||||||
anyActionPressed = false;
|
anyActionPressed = false;
|
||||||
|
|
||||||
if (!_canHandleInput)
|
if (!InputService.Instance.InputEnabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool right = Input.IsActionPressed("move_right");
|
bool right = Input.IsActionPressed("move_right");
|
||||||
@@ -53,8 +41,6 @@ public partial class Player2D : CharacterBody2D
|
|||||||
|
|
||||||
if (up)
|
if (up)
|
||||||
{
|
{
|
||||||
Velocity = new Vector2(0, -_speed);
|
|
||||||
MoveAndSlide();
|
|
||||||
_sprite.Animation = "back walking" + _toolString;
|
_sprite.Animation = "back walking" + _toolString;
|
||||||
anyActionPressed = true;
|
anyActionPressed = true;
|
||||||
_lastDirection = Vector2.Up;
|
_lastDirection = Vector2.Up;
|
||||||
@@ -63,8 +49,6 @@ public partial class Player2D : CharacterBody2D
|
|||||||
|
|
||||||
if (down && !walkingAnimationPicked)
|
if (down && !walkingAnimationPicked)
|
||||||
{
|
{
|
||||||
Velocity = new Vector2(0, _speed);
|
|
||||||
MoveAndSlide();
|
|
||||||
_sprite.Animation = "front walking" + _toolString;
|
_sprite.Animation = "front walking" + _toolString;
|
||||||
anyActionPressed = true;
|
anyActionPressed = true;
|
||||||
_lastDirection = Vector2.Down;
|
_lastDirection = Vector2.Down;
|
||||||
@@ -73,8 +57,6 @@ public partial class Player2D : CharacterBody2D
|
|||||||
|
|
||||||
if (right && !walkingAnimationPicked)
|
if (right && !walkingAnimationPicked)
|
||||||
{
|
{
|
||||||
Velocity = new Vector2(_speed, 0);
|
|
||||||
MoveAndSlide();
|
|
||||||
_sprite.FlipH = false;
|
_sprite.FlipH = false;
|
||||||
_sprite.Animation = "side walking" + _toolString;
|
_sprite.Animation = "side walking" + _toolString;
|
||||||
anyActionPressed = true;
|
anyActionPressed = true;
|
||||||
@@ -84,8 +66,6 @@ public partial class Player2D : CharacterBody2D
|
|||||||
|
|
||||||
if (left && !walkingAnimationPicked)
|
if (left && !walkingAnimationPicked)
|
||||||
{
|
{
|
||||||
Velocity = new Vector2(-_speed, 0);
|
|
||||||
MoveAndSlide();
|
|
||||||
_sprite.FlipH = true;
|
_sprite.FlipH = true;
|
||||||
_sprite.Animation = "side walking" + _toolString;
|
_sprite.Animation = "side walking" + _toolString;
|
||||||
anyActionPressed = true;
|
anyActionPressed = true;
|
||||||
@@ -124,7 +104,7 @@ public partial class Player2D : CharacterBody2D
|
|||||||
_sprite.Animation = "back idle" + _toolString;
|
_sprite.Animation = "back idle" + _toolString;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ActivateTool(bool success, int id)
|
public void ActivateTool(bool success, int id)
|
||||||
{
|
{
|
||||||
if (success)
|
if (success)
|
||||||
@@ -146,17 +126,17 @@ public partial class Player2D : CharacterBody2D
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Called by FarmingControls Signal.
|
/// Called by FarmingControls Signal.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void PlayWateringAnimation()
|
public void PlayWateringAnimation()
|
||||||
{
|
{
|
||||||
if (_toolID == 1 && _canHandleInput)
|
if (_toolID == 1 && InputService.Instance.InputEnabled)
|
||||||
{
|
{
|
||||||
_sprite.Animation = "diagonal wateringcan";
|
_sprite.Animation = "diagonal wateringcan";
|
||||||
_sprite.Play();
|
_sprite.Play();
|
||||||
_canHandleInput = false;
|
InputService.Instance.InputEnabled = false;
|
||||||
_wateringParticles.Emitting = true;
|
_wateringParticles.Emitting = true;
|
||||||
Task.Run(DelayedInputHandlerReset);
|
Task.Run(DelayedInputHandlerReset);
|
||||||
}
|
}
|
||||||
@@ -166,14 +146,14 @@ public partial class Player2D : CharacterBody2D
|
|||||||
{
|
{
|
||||||
await Task.Delay(1000);
|
await Task.Delay(1000);
|
||||||
_wateringParticles.Emitting = false;
|
_wateringParticles.Emitting = false;
|
||||||
_canHandleInput = true;
|
InputService.Instance.InputEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PlayPickUpAnimation()
|
public void PlayPickUpAnimation()
|
||||||
{
|
{
|
||||||
_sprite.Animation = "side pickup";
|
_sprite.Animation = "side pickup";
|
||||||
_sprite.Play();
|
_sprite.Play();
|
||||||
_canHandleInput = false;
|
InputService.Instance.InputEnabled = false;
|
||||||
Task.Run(DelayedInputHandlerReset);
|
Task.Run(DelayedInputHandlerReset);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,7 +161,7 @@ public partial class Player2D : CharacterBody2D
|
|||||||
{
|
{
|
||||||
_sprite.Animation = "diagonal farming";
|
_sprite.Animation = "diagonal farming";
|
||||||
_sprite.Play();
|
_sprite.Play();
|
||||||
_canHandleInput = false;
|
InputService.Instance.InputEnabled = false;
|
||||||
Task.Run(DelayedInputHandlerReset);
|
Task.Run(DelayedInputHandlerReset);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,10 +170,9 @@ public partial class Player2D : CharacterBody2D
|
|||||||
{
|
{
|
||||||
_sprite.Animation = "back interact";
|
_sprite.Animation = "back interact";
|
||||||
_sprite.Play();
|
_sprite.Play();
|
||||||
_canHandleInput = false;
|
|
||||||
_lastDirection = Vector2.Up;
|
_lastDirection = Vector2.Up;
|
||||||
|
InputService.Instance.InputEnabled = false;
|
||||||
Task.Run(DelayedInputHandlerReset);
|
Task.Run(DelayedInputHandlerReset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://n7oihifvqp23
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.CharacterControls;
|
namespace Babushka.scripts.CSharp.Common.CharacterControls;
|
||||||
@@ -6,59 +7,99 @@ public partial class InteractionArea2D : Node2D
|
|||||||
{
|
{
|
||||||
[Export] private Area2D _area;
|
[Export] private Area2D _area;
|
||||||
[Export] private Label _label;
|
[Export] private Label _label;
|
||||||
[Export] private SpriteSwitcher2D _sprites; // TODO: remove
|
[Export] private bool _active = true;
|
||||||
|
[Export] private bool _useOutline = true;
|
||||||
|
[Export] private ShaderMaterial _outlineMaterial;
|
||||||
|
[Export] private bool _useSprite = true;
|
||||||
|
[Export] private CanvasItem _spriteToOutline;
|
||||||
[Export] private bool _showLabel = true;
|
[Export] private bool _showLabel = true;
|
||||||
[Export] private int _id = -1; // TODO: remove
|
[Export] private int _id = -1; // TODO: remove
|
||||||
|
|
||||||
|
private Material _backupMaterial;
|
||||||
[Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove
|
[Signal] public delegate void InteractedToolEventHandler(int id); // TODO: remove
|
||||||
[Signal] public delegate void InteractedEventHandler();
|
[Signal] public delegate void InteractedEventHandler();
|
||||||
|
|
||||||
public bool IsActive { get; set; } = true;
|
public bool IsActive
|
||||||
|
{
|
||||||
|
get => _active;
|
||||||
|
set => _active = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (_useSprite && _useOutline)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_backupMaterial = _spriteToOutline.Material;
|
||||||
|
}
|
||||||
|
catch(Exception exception)
|
||||||
|
{
|
||||||
|
GD.PrintErr($"No sprite to outline found on: {GetParent().Name}" + exception.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void OnPlayerEntered(Node2D player)
|
public void OnPlayerEntered(Node2D player)
|
||||||
{
|
{
|
||||||
if (!IsActive)
|
if (!_active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(_showLabel)
|
if(_showLabel)
|
||||||
_label.Show();
|
_label.Show();
|
||||||
|
|
||||||
|
if (!_useSprite || !_useOutline)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_spriteToOutline.Material = _outlineMaterial;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnPlayerExited(Node2D player)
|
public void OnPlayerExited(Node2D player)
|
||||||
{
|
{
|
||||||
if (!IsActive)
|
if (!_active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_label.Hide();
|
_label.Hide();
|
||||||
|
|
||||||
|
if (!_useSprite || !_useOutline)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_spriteToOutline.Material = _backupMaterial;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _Input(InputEvent @event)
|
public override void _Input(InputEvent @event)
|
||||||
{
|
{
|
||||||
if (!IsActive)
|
if (!_active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (@event.IsAction("interact") && @event.IsPressed() && _area.HasOverlappingBodies())
|
if (@event.IsAction("interact") && @event.IsPressed())
|
||||||
{
|
{
|
||||||
_label.Hide();
|
if (_area.HasOverlappingBodies())
|
||||||
EmitSignal(SignalName.InteractedTool, _id);
|
{
|
||||||
EmitSignal(SignalName.Interacted);
|
_label.Hide();
|
||||||
|
|
||||||
|
if (_useSprite && _useOutline)
|
||||||
|
_spriteToOutline.Material = _backupMaterial;
|
||||||
|
|
||||||
|
EmitSignal(SignalName.InteractedTool, _id);
|
||||||
|
EmitSignal(SignalName.Interacted);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetSpriteActiveState(bool success, int id) // TODO: remove
|
public void SetSpriteActiveState(bool success, int id) // TODO: remove
|
||||||
{
|
{
|
||||||
if(!IsActive)
|
GD.PrintErr("SetSpriteActiveState is being called.");
|
||||||
|
if(!_active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (_id == id)
|
|
||||||
{
|
|
||||||
_sprites.SwitchState(!success);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleActive()
|
public void ToggleActive()
|
||||||
{
|
{
|
||||||
IsActive = !IsActive;
|
_active = !_active;
|
||||||
_label.Hide();
|
_label.Hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Babushka.scripts.CSharp.Common.Services;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.CharacterControls;
|
||||||
|
|
||||||
|
public partial class PlayerMovement : CharacterBody2D
|
||||||
|
{
|
||||||
|
[Export] private float _speed = 1000f;
|
||||||
|
|
||||||
|
private InventoryManager _inventoryManager;
|
||||||
|
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
bool anyActionPressed = false;
|
||||||
|
Vector2 currentVelocity = Vector2.Zero;
|
||||||
|
|
||||||
|
if (!InputService.Instance.InputEnabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
bool right = Input.IsActionPressed("move_right");
|
||||||
|
bool left = Input.IsActionPressed("move_left");
|
||||||
|
bool up = Input.IsActionPressed("move_up");
|
||||||
|
bool down = Input.IsActionPressed("move_down");
|
||||||
|
|
||||||
|
if (up)
|
||||||
|
{
|
||||||
|
currentVelocity += new Vector2(0, -_speed);
|
||||||
|
anyActionPressed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (down)
|
||||||
|
{
|
||||||
|
currentVelocity += new Vector2(0, _speed);
|
||||||
|
anyActionPressed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (right)
|
||||||
|
{
|
||||||
|
currentVelocity += new Vector2(_speed, 0);
|
||||||
|
|
||||||
|
anyActionPressed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left)
|
||||||
|
{
|
||||||
|
currentVelocity += new Vector2(-_speed, 0);
|
||||||
|
|
||||||
|
anyActionPressed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (anyActionPressed)
|
||||||
|
{
|
||||||
|
if (currentVelocity.X != 0 && currentVelocity.Y != 0)
|
||||||
|
{
|
||||||
|
currentVelocity *= 0.7f;
|
||||||
|
}
|
||||||
|
|
||||||
|
Velocity = currentVelocity;
|
||||||
|
MoveAndSlide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,15 +4,6 @@ using Godot;
|
|||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Farming;
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
public enum FieldState
|
|
||||||
{
|
|
||||||
Empty = 0,
|
|
||||||
Tilled = 1,
|
|
||||||
Planted = 2,
|
|
||||||
Watered = 3,
|
|
||||||
NotFound = 99
|
|
||||||
}
|
|
||||||
|
|
||||||
[GlobalClass]
|
[GlobalClass]
|
||||||
public partial class FieldBehaviour2D : Sprite2D
|
public partial class FieldBehaviour2D : Sprite2D
|
||||||
{
|
{
|
||||||
@@ -40,27 +31,22 @@ public partial class FieldBehaviour2D : Sprite2D
|
|||||||
{
|
{
|
||||||
case FieldState.Empty:
|
case FieldState.Empty:
|
||||||
FieldState = FieldState.Empty;
|
FieldState = FieldState.Empty;
|
||||||
GD.Print("FieldState is Empty.");
|
|
||||||
break;
|
break;
|
||||||
case FieldState.Tilled:
|
case FieldState.Tilled:
|
||||||
FieldState = FieldState.Tilled;
|
FieldState = FieldState.Tilled;
|
||||||
_fieldSprite.Texture = Tilled;
|
_fieldSprite.Texture = Tilled;
|
||||||
_growingCollider.Visible = false;
|
_growingCollider.Visible = false;
|
||||||
GD.Print("FieldState is Tilled.");
|
|
||||||
break;
|
break;
|
||||||
case FieldState.Watered:
|
case FieldState.Watered:
|
||||||
FieldState = FieldState.Watered;
|
FieldState = FieldState.Watered;
|
||||||
_fieldSprite.Texture = Watered;
|
_fieldSprite.Texture = Watered;
|
||||||
_growingCollider.Visible = true;
|
_growingCollider.Visible = true;
|
||||||
GD.Print("FieldState is Watered.");
|
|
||||||
break;
|
break;
|
||||||
case FieldState.Planted:
|
case FieldState.Planted:
|
||||||
FieldState = FieldState.Planted;
|
FieldState = FieldState.Planted;
|
||||||
GD.Print("FieldState is Planted.");
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
FieldState = FieldState.NotFound;
|
FieldState = FieldState.NotFound;
|
||||||
GD.Print("FieldState is NotFound.");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ namespace Babushka.scripts.CSharp.Common.Farming;
|
|||||||
[GlobalClass]
|
[GlobalClass]
|
||||||
public partial class FieldService2D : Node2D
|
public partial class FieldService2D : Node2D
|
||||||
{
|
{
|
||||||
[Export] private Dictionary<Vector2I, FieldBehaviour2D> fields = new Dictionary<Vector2I, FieldBehaviour2D>();
|
[Export] private Dictionary<Vector2I, FieldBehaviour2D> fields;
|
||||||
|
|
||||||
[Export] private Area2D _allowedArea;
|
[Export] private Area2D _allowedArea;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// State of a farm field.
|
||||||
|
/// </summary>
|
||||||
|
public enum FieldState
|
||||||
|
{
|
||||||
|
Empty = 0,
|
||||||
|
Tilled = 1,
|
||||||
|
Planted = 2,
|
||||||
|
Watered = 3,
|
||||||
|
NotFound = 99
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cqtlic8xxtvkc
|
||||||
@@ -5,14 +5,7 @@ using Godot;
|
|||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Farming;
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
public enum PlantState
|
|
||||||
{
|
|
||||||
None = 0,
|
|
||||||
Planted = 1,
|
|
||||||
SmallPlant = 2,
|
|
||||||
BigPlant = 3,
|
|
||||||
Ready = 4
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determines the behaviour of a plant in Babushka.
|
/// Determines the behaviour of a plant in Babushka.
|
||||||
@@ -27,10 +20,11 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
[Export] private FieldBehaviour2D _field;
|
[Export] private FieldBehaviour2D _field;
|
||||||
[Export] private ItemOnGround2D _harvestablePlant;
|
[Export] private ItemOnGround2D _harvestablePlant;
|
||||||
[Export] private CpuParticles2D _magicEffect;
|
[Export] private CpuParticles2D _magicEffect;
|
||||||
|
[Export] private bool _magicWordNeeded = true;
|
||||||
|
|
||||||
private string _magicWordDialogicEventName = "MagicWord";
|
private string _magicWordDialogicEventName = "MagicWord";
|
||||||
private Sprite2D _currentPlantSprite = null;
|
private Sprite2D _currentPlantSprite = null;
|
||||||
private bool _magicWordSaid;
|
private bool _magicWordSaid = false;
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -38,46 +32,43 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void Grow()
|
public void Grow()
|
||||||
{
|
{
|
||||||
if (_field.FieldState != FieldState.Watered || !_magicWordSaid)
|
if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GD.Print("Trying to grow something here.");
|
//GetTree().CallGroup("PlantGrowing", PlayerMovement.MethodName.PlayFarmingAnimation);
|
||||||
GetTree().CallGroup("PlantGrowing", Player2D.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:
|
||||||
_state = PlantState.Planted;
|
_state = PlantState.Planted;
|
||||||
_currentPlantSprite = GetRandomSprite(_seeds);
|
_currentPlantSprite = GetRandomSprite(_seeds);
|
||||||
_currentPlantSprite.Visible = true;
|
_currentPlantSprite.Visible = true;
|
||||||
GD.Print("PlantState is none.");
|
|
||||||
break;
|
break;
|
||||||
case PlantState.Planted:
|
case PlantState.Planted:
|
||||||
_state = PlantState.SmallPlant;
|
_state = PlantState.SmallPlant;
|
||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = GetRandomSprite(_smallPlants);
|
_currentPlantSprite = GetRandomSprite(_smallPlants);
|
||||||
_currentPlantSprite.Visible = true;
|
_currentPlantSprite.Visible = true;
|
||||||
GD.Print("PlantState is planted.");
|
|
||||||
break;
|
break;
|
||||||
case PlantState.SmallPlant:
|
case PlantState.SmallPlant:
|
||||||
_state = PlantState.BigPlant;
|
_state = PlantState.BigPlant;
|
||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = GetRandomSprite(_bigPlants);
|
_currentPlantSprite = GetRandomSprite(_bigPlants);
|
||||||
_currentPlantSprite.Visible = true;
|
_currentPlantSprite.Visible = true;
|
||||||
GD.Print("PlantState is Smallplant.");
|
|
||||||
break;
|
break;
|
||||||
case PlantState.BigPlant:
|
case PlantState.BigPlant:
|
||||||
_state = PlantState.Ready;
|
_state = PlantState.Ready;
|
||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
_currentPlantSprite = GetRandomSprite(_readyPlants);
|
||||||
_harvestablePlant.IsActive = true;
|
|
||||||
_currentPlantSprite.Visible = true;
|
_currentPlantSprite.Visible = true;
|
||||||
GD.Print("PlantState is BigPlant.");
|
ActivatePickupAfterDelay(true);
|
||||||
break;
|
break;
|
||||||
case PlantState.Ready:
|
case PlantState.Ready:
|
||||||
_state = PlantState.None;
|
_state = PlantState.None;
|
||||||
_currentPlantSprite.Visible = false;
|
_currentPlantSprite.Visible = false;
|
||||||
_currentPlantSprite = null;
|
_currentPlantSprite = null;
|
||||||
|
ActivatePickupAfterDelay(false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -92,10 +83,21 @@ public partial class PlantBehaviour2D : Node2D
|
|||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
return sprites[rand.Next(sprites.Length)];
|
return sprites[rand.Next(sprites.Length)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async void ActivatePickupAfterDelay(bool activate)
|
||||||
|
{
|
||||||
|
await ToSignal(GetTree().CreateTimer(1.0f), "timeout");
|
||||||
|
SetActiveHarvestablePlant(activate);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetActiveHarvestablePlant(bool active)
|
||||||
|
{
|
||||||
|
_harvestablePlant.IsActive = active;
|
||||||
|
_harvestablePlant.UpdateVisuals();
|
||||||
|
}
|
||||||
|
|
||||||
public void SayMagicWord(string wordEvent)
|
public void SayMagicWord(string wordEvent)
|
||||||
{
|
{
|
||||||
GD.Print("Calling Dialogic event: " + wordEvent);
|
|
||||||
if (_magicWordDialogicEventName != wordEvent)
|
if (_magicWordDialogicEventName != wordEvent)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// State of a harvestable plant. Used in farming.
|
||||||
|
/// </summary>
|
||||||
|
public enum PlantState
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Planted = 1,
|
||||||
|
SmallPlant = 2,
|
||||||
|
BigPlant = 3,
|
||||||
|
Ready = 4
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dw5dl5yscbyaw
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
|
using Babushka.scripts.CSharp.Common.Animation;
|
||||||
using Babushka.scripts.CSharp.Common.CharacterControls;
|
using Babushka.scripts.CSharp.Common.CharacterControls;
|
||||||
using Babushka.scripts.CSharp.Common.Inventory;
|
using Babushka.scripts.CSharp.Common.Inventory;
|
||||||
|
using Babushka.scripts.CSharp.Common.Services;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Farming;
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
@@ -9,7 +11,8 @@ public partial class VesnaBehaviour2D : Node
|
|||||||
[ExportGroup("Farming")]
|
[ExportGroup("Farming")]
|
||||||
[Export] private FieldService2D _fieldParent;
|
[Export] private FieldService2D _fieldParent;
|
||||||
[Export] private FarmingControls2D _farmingControls;
|
[Export] private FarmingControls2D _farmingControls;
|
||||||
[Export] private Player2D _player2d;
|
[Export] private PlayerMovement _player2d;
|
||||||
|
[Export] private VesnaAnimations _vesnaAnimations;
|
||||||
[Export] private ItemResource _hoe;
|
[Export] private ItemResource _hoe;
|
||||||
[Export] private ItemResource _wateringCan;
|
[Export] private ItemResource _wateringCan;
|
||||||
|
|
||||||
@@ -77,7 +80,7 @@ public partial class VesnaBehaviour2D : Node
|
|||||||
if (toolId == 1)
|
if (toolId == 1)
|
||||||
{
|
{
|
||||||
_farmingControls.FillWateringCan();
|
_farmingControls.FillWateringCan();
|
||||||
_player2d.PlayWateringCanFillupAnimation();
|
_vesnaAnimations.PlayWateringCanFillupAnimation();
|
||||||
EmitSignal(SignalName.FilledWateringCan);
|
EmitSignal(SignalName.FilledWateringCan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -85,18 +88,18 @@ public partial class VesnaBehaviour2D : Node
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Enables the character movement in the Player2D script.
|
/// Enables the input.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void EnableMovement()
|
public void EnableMovement()
|
||||||
{
|
{
|
||||||
_player2d.InputEnabled = true;
|
InputService.Instance.InputEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Disables the character movement in the Player2D script.
|
/// Disables the input.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void DisableMovement()
|
public void DisableMovement()
|
||||||
{
|
{
|
||||||
_player2d.InputEnabled = false;
|
InputService.Instance.InputEnabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -23,6 +23,10 @@ public static class WateringCanState
|
|||||||
/// Triggers animations and ui.
|
/// Triggers animations and ui.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static bool Active = false;
|
public static bool Active = false;
|
||||||
|
|
||||||
|
public delegate void WateringCanDelegate(bool state);
|
||||||
|
public static event WateringCanDelegate WateringCanActiveStateChanged;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -65,6 +69,8 @@ public static class WateringCanState
|
|||||||
/// <param name="active"></param>
|
/// <param name="active"></param>
|
||||||
public static void SetActive(bool active)
|
public static void SetActive(bool active)
|
||||||
{
|
{
|
||||||
|
if(active != Active)
|
||||||
|
WateringCanActiveStateChanged?.Invoke(active);
|
||||||
Active = active;
|
Active = active;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
using Babushka.scripts.CSharp.Common.CharacterControls;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Farming;
|
||||||
|
|
||||||
|
public partial class WellBehaviour : Node2D
|
||||||
|
{
|
||||||
|
[Export] private InteractionArea2D _interactionArea;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
WateringCanState.WateringCanActiveStateChanged += OnWateringCanStateChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnWateringCanStateChanged(bool state)
|
||||||
|
{
|
||||||
|
_interactionArea.IsActive = state;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://boehox1ydbcnx
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
|
public class FightAttack
|
||||||
|
{
|
||||||
|
public int damage;
|
||||||
|
public bool needsSelectedTarget;
|
||||||
|
public Fighter? target;
|
||||||
|
public Fighter attacker;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cnggo5jyimosu
|
||||||
@@ -348,10 +348,4 @@ public partial class FightInstance : Node2D //TODO: remake
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public class FightAttack
|
|
||||||
{
|
|
||||||
public int damage;
|
|
||||||
public bool needsSelectedTarget;
|
|
||||||
public Fighter? target;
|
|
||||||
public Fighter attacker;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ public partial class ItemOnGround2D : Node
|
|||||||
{
|
{
|
||||||
private ItemInstance _itemInstance;
|
private ItemInstance _itemInstance;
|
||||||
|
|
||||||
|
[Export] public bool IsActive = true;
|
||||||
[Export] private bool _infiniteSupply = false;
|
[Export] private bool _infiniteSupply = false;
|
||||||
[Export] private int _finiteSupply = 1;
|
[Export] private int _finiteSupply = 1;
|
||||||
[Export] public bool IsActive = true;
|
|
||||||
|
|
||||||
private int pickUpCounter = 0;
|
private int pickUpCounter = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using Babushka.scripts.CSharp.Common.Quest;
|
|||||||
|
|
||||||
public partial class QuestMessagePopup : Control
|
public partial class QuestMessagePopup : Control
|
||||||
{
|
{
|
||||||
|
|
||||||
private Label Text => GetNode<Label>("Text");
|
private Label Text => GetNode<Label>("Text");
|
||||||
|
|
||||||
private QuestResource? _currentlyShown;
|
private QuestResource? _currentlyShown;
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Babushka.scripts.CSharp.Common.Services;
|
||||||
|
|
||||||
|
public partial class InputService : Node
|
||||||
|
{
|
||||||
|
public static InputService Instance { get; private set; } = null!;
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void InputEnabledChangedEventHandler(bool enabled);
|
||||||
|
|
||||||
|
private static bool _inputEnabled = true;
|
||||||
|
|
||||||
|
public bool InputEnabled
|
||||||
|
{
|
||||||
|
get => _inputEnabled;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_inputEnabled != value)
|
||||||
|
{
|
||||||
|
CallDeferred(nameof(SetInputEnabled), value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetInputEnabled(bool enabled)
|
||||||
|
{
|
||||||
|
_inputEnabled = enabled;
|
||||||
|
EmitSignal(SignalName.InputEnabledChanged, _inputEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _EnterTree()
|
||||||
|
{
|
||||||
|
Instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://blmbgmdv4aui8
|
||||||
@@ -11,6 +11,7 @@ public partial class SpriteSwitcher2D : Node2D
|
|||||||
[Export] private Sprite2D _inactiveSprite;
|
[Export] private Sprite2D _inactiveSprite;
|
||||||
[Export] private bool _active = false;
|
[Export] private bool _active = false;
|
||||||
|
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
SetSprites();
|
SetSprites();
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform bool allow_out_of_bounds = true;
|
||||||
|
uniform float outline_thickness: hint_range(0.0, 16.0, 1.0) = 1.0;
|
||||||
|
uniform vec4 outline_color: source_color = vec4(1.0);
|
||||||
|
|
||||||
|
bool is_inside_usquare(vec2 x) {
|
||||||
|
return x == clamp(x, vec2(0.0), vec2(1.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 blend(vec4 bottom, vec4 top) {
|
||||||
|
float alpha = top.a + bottom.a * (1.0 - top.a);
|
||||||
|
if (alpha < 0.0001) return vec4(0.0);
|
||||||
|
|
||||||
|
vec3 color = mix(bottom.rgb * bottom.a, top.rgb, top.a) / alpha;
|
||||||
|
return vec4(color, alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
if (allow_out_of_bounds) VERTEX += (UV * 2.0 - 1.0) * outline_thickness;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
if (outline_thickness > 0.0 && outline_color.a > 0.0) {
|
||||||
|
vec2 uv = UV;
|
||||||
|
vec4 texture_color = texture(TEXTURE, UV);
|
||||||
|
|
||||||
|
if (allow_out_of_bounds) {
|
||||||
|
vec2 texture_pixel_size = vec2(1.0) / (vec2(1.0) / TEXTURE_PIXEL_SIZE + vec2(outline_thickness * 2.0));
|
||||||
|
uv = (uv - texture_pixel_size * outline_thickness) * TEXTURE_PIXEL_SIZE / texture_pixel_size;
|
||||||
|
|
||||||
|
if (is_inside_usquare(uv)) {
|
||||||
|
texture_color = texture(TEXTURE, uv);
|
||||||
|
} else {
|
||||||
|
texture_color = vec4(0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float alpha = 0.0;
|
||||||
|
|
||||||
|
for (float y = 1.0; y <= outline_thickness; y++) {
|
||||||
|
for (float x = 0.0; x <= y; x++) {
|
||||||
|
if (length(vec2(x, y - 0.5)) > outline_thickness) break;
|
||||||
|
|
||||||
|
float look_at_alpha;
|
||||||
|
vec2 look_at_uv[8] = {
|
||||||
|
uv + vec2(x, y) * TEXTURE_PIXEL_SIZE,
|
||||||
|
uv + vec2(-x, y) * TEXTURE_PIXEL_SIZE,
|
||||||
|
uv + vec2(x, -y) * TEXTURE_PIXEL_SIZE,
|
||||||
|
uv + vec2(-x, -y) * TEXTURE_PIXEL_SIZE,
|
||||||
|
uv + vec2(y, x) * TEXTURE_PIXEL_SIZE,
|
||||||
|
uv + vec2(-y, x) * TEXTURE_PIXEL_SIZE,
|
||||||
|
uv + vec2(y, -x) * TEXTURE_PIXEL_SIZE,
|
||||||
|
uv + vec2(-y, -x) * TEXTURE_PIXEL_SIZE
|
||||||
|
};
|
||||||
|
|
||||||
|
for (int i = 0; i < 8; i++) {
|
||||||
|
if (is_inside_usquare(look_at_uv[i])) {
|
||||||
|
look_at_alpha = texture(TEXTURE, look_at_uv[i]).a;
|
||||||
|
if (look_at_alpha > alpha) alpha = look_at_alpha;
|
||||||
|
if (1.0 - alpha < 0.0001) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (1.0 - alpha < 0.0001) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (1.0 - alpha < 0.0001) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
COLOR = blend(vec4(outline_color.rgb, alpha * outline_color.a), texture_color);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dsa3lv2as7q3b
|
||||||
Reference in New Issue
Block a user