From 542cf6a4f19ac98027989d1f50bd9012221fc020 Mon Sep 17 00:00:00 2001 From: Vladimir nett00n Budylnikov Date: Sun, 3 Aug 2025 15:13:41 +0400 Subject: [PATCH 1/7] move sources.yml file to root --- audio/sources.yaml | 2 -- sources.yaml | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) delete mode 100644 audio/sources.yaml create mode 100644 sources.yaml diff --git a/audio/sources.yaml b/audio/sources.yaml deleted file mode 100644 index 7a4d40d..0000000 --- a/audio/sources.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- fileName: Space Horror InGame Music (Exploration) _Clement Panchout - commonUrl: https://clement-panchout.itch.io/yet-another-free-music-pack diff --git a/sources.yaml b/sources.yaml new file mode 100644 index 0000000..4c0ed32 --- /dev/null +++ b/sources.yaml @@ -0,0 +1,5 @@ +--- +- fileName: audio/Space Horror InGame Music (Exploration) _Clement Panchout.wav + commonUrl: https://clement-panchout.itch.io/yet-another-free-music-pack +- fileName: audio/817587__silverdubloons__tick06.wav + commonUrl: https://freesound.org/people/SilverDubloons/sounds/817587/ From c57a08f5daf85ec1503c25f71a29450b5a3028a9 Mon Sep 17 00:00:00 2001 From: Vladimir nett00n Budylnikov Date: Sun, 3 Aug 2025 15:14:18 +0400 Subject: [PATCH 2/7] add click sound as SFX --- audio/817587__silverdubloons__tick06.wav | Bin 0 -> 16428 bytes .../817587__silverdubloons__tick06.wav.import | 24 ++++++++++++++++++ scripts/AudioManager.gd | 12 +++++++++ scripts/MainMenu.gd | 3 +++ scripts/SettingsMenu.gd | 2 ++ 5 files changed, 41 insertions(+) create mode 100644 audio/817587__silverdubloons__tick06.wav create mode 100644 audio/817587__silverdubloons__tick06.wav.import diff --git a/audio/817587__silverdubloons__tick06.wav b/audio/817587__silverdubloons__tick06.wav new file mode 100644 index 0000000000000000000000000000000000000000..9ac33c385640543fcf5cb00908a43aa2b538dcdd GIT binary patch literal 16428 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%0A9lX1qdynMq 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 AqyPW_ literal 0 HcmV?d00001 diff --git a/audio/817587__silverdubloons__tick06.wav.import b/audio/817587__silverdubloons__tick06.wav.import new file mode 100644 index 0000000..f33369a --- /dev/null +++ b/audio/817587__silverdubloons__tick06.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://briuh6uhf0tdt" +path="res://.godot/imported/817587__silverdubloons__tick06.wav-6928d7a957ad4e7ff0ddda00a7348675.sample" + +[deps] + +source_file="res://audio/817587__silverdubloons__tick06.wav" +dest_files=["res://.godot/imported/817587__silverdubloons__tick06.wav-6928d7a957ad4e7ff0ddda00a7348675.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=2 diff --git a/scripts/AudioManager.gd b/scripts/AudioManager.gd index b15cdf5..ff597c3 100644 --- a/scripts/AudioManager.gd +++ b/scripts/AudioManager.gd @@ -1,13 +1,19 @@ extends Node const MUSIC_PATH := "res://audio/Space Horror InGame Music (Exploration) _Clement Panchout.wav" +const UI_CLICK_SOUND_PATH := "res://audio/817587__silverdubloons__tick06.wav" var music_player: AudioStreamPlayer +var ui_click_player: AudioStreamPlayer func _ready(): music_player = AudioStreamPlayer.new() add_child(music_player) + ui_click_player = AudioStreamPlayer.new() + ui_click_player.bus = "SFX" + add_child(ui_click_player) + var orig_stream = _load_stream() if not orig_stream: push_error("Failed to load music stream: %s" % MUSIC_PATH) @@ -59,3 +65,9 @@ func _stop_music() -> void: if not music_player.playing: return music_player.stop() + +func play_ui_click() -> void: + var click_stream = load(UI_CLICK_SOUND_PATH) + if click_stream and click_stream is AudioStream: + ui_click_player.stream = click_stream + ui_click_player.play() diff --git a/scripts/MainMenu.gd b/scripts/MainMenu.gd index 9666396..10dd578 100644 --- a/scripts/MainMenu.gd +++ b/scripts/MainMenu.gd @@ -6,12 +6,15 @@ func _ready(): print("MainMenu ready") func _on_new_game_button_pressed(): + AudioManager.play_ui_click() print("New Game pressed") func _on_settings_button_pressed(): + AudioManager.play_ui_click() print("Settings pressed") open_settings.emit() func _on_exit_button_pressed(): + AudioManager.play_ui_click() print("Exit pressed") get_tree().quit() diff --git a/scripts/SettingsMenu.gd b/scripts/SettingsMenu.gd index d7e21bd..d307234 100644 --- a/scripts/SettingsMenu.gd +++ b/scripts/SettingsMenu.gd @@ -60,6 +60,7 @@ func _input(event): get_viewport().set_input_as_handled() func _on_back_button_pressed(): + AudioManager.play_ui_click() print("Back button pressed") _exit_settings() @@ -96,6 +97,7 @@ func update_text(): func _on_reset_setting_button_pressed() -> void: + AudioManager.play_ui_click() print("Resetting settings") settings_manager.reset_settings_to_defaults() _update_controls_from_settings() From a1f853685578f8cbae63ccc0b2afc7a6daff9111 Mon Sep 17 00:00:00 2001 From: Vladimir nett00n Budylnikov Date: Sun, 3 Aug 2025 15:15:42 +0400 Subject: [PATCH 3/7] do not reload click sound every time --- scripts/AudioManager.gd | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scripts/AudioManager.gd b/scripts/AudioManager.gd index ff597c3..ede30c4 100644 --- a/scripts/AudioManager.gd +++ b/scripts/AudioManager.gd @@ -5,6 +5,7 @@ const UI_CLICK_SOUND_PATH := "res://audio/817587__silverdubloons__tick06.wav" var music_player: AudioStreamPlayer var ui_click_player: AudioStreamPlayer +var click_stream: AudioStream func _ready(): music_player = AudioStreamPlayer.new() @@ -14,13 +15,14 @@ func _ready(): ui_click_player.bus = "SFX" add_child(ui_click_player) + click_stream = load(UI_CLICK_SOUND_PATH) + var orig_stream = _load_stream() if not orig_stream: push_error("Failed to load music stream: %s" % MUSIC_PATH) return var stream = orig_stream.duplicate(true) as AudioStream - _configure_stream_loop(stream) music_player.stream = stream _configure_audio_bus() @@ -67,7 +69,7 @@ func _stop_music() -> void: music_player.stop() func play_ui_click() -> void: - var click_stream = load(UI_CLICK_SOUND_PATH) - if click_stream and click_stream is AudioStream: - ui_click_player.stream = click_stream - ui_click_player.play() + if not click_stream: + return + ui_click_player.stream = click_stream + ui_click_player.play() From 2589f9f73fdc1b8944280a07c501ea9d775b6803 Mon Sep 17 00:00:00 2001 From: Vladimir nett00n Budylnikov Date: Sun, 3 Aug 2025 17:54:37 +0400 Subject: [PATCH 4/7] Add background --- resources/textures/beanstalk-dark.webp | Bin 0 -> 486 bytes resources/textures/beanstalk-dark.webp.import | 34 ++++++++++++++++++ sources.yaml | 2 ++ ui/MainMenu.tscn | 8 +++-- ui/SettingsMenu.tscn | 8 +++-- 5 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 resources/textures/beanstalk-dark.webp create mode 100644 resources/textures/beanstalk-dark.webp.import diff --git a/resources/textures/beanstalk-dark.webp b/resources/textures/beanstalk-dark.webp new file mode 100644 index 0000000000000000000000000000000000000000..9b9f5c2d51686e8553eddbad3c67894f25bbe877 GIT binary patch literal 486 zcmWIYbaT7M$iNWp>J$(bVBvEK$ky*an9RVc;y&rI+XKH0R?f1+|Nm<)&Fky4UEcL# zzx4KrGAp&C%9khDd}-Rf)vQe3rDjcf_S)^&@-{Pn-R>8uXTI#;r!PO}-fUdd@uahP zy-esCz9;urd@KC;a&EYx^@M2EKDpR{jn)CDtTLB>emF7rsQPAR-b;y(?yd|AewS9Z z;B(Ydy;Wt;ZohG;Ka;&`d!CKg7OM*}uXGoeyUy+U9L64{V<2Z@JM-%OcWGz%Ld<7M zrPqh@K3TFl@9Gkx6J$)Az573WYCZnOq2R*d=KpeXf4+Zsu)m%Czpc%W_YV)&^Yj0!uJ~}DB&o&{ M;&mNp1>40B0Er#}tN;K2 literal 0 HcmV?d00001 diff --git a/resources/textures/beanstalk-dark.webp.import b/resources/textures/beanstalk-dark.webp.import new file mode 100644 index 0000000..662bc2c --- /dev/null +++ b/resources/textures/beanstalk-dark.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8y6tlvcgh2gn" +path="res://.godot/imported/beanstalk-dark.webp-c42752b76137a07f19260f250e70ea14.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/textures/beanstalk-dark.webp" +dest_files=["res://.godot/imported/beanstalk-dark.webp-c42752b76137a07f19260f250e70ea14.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 diff --git a/sources.yaml b/sources.yaml index 4c0ed32..3a3a91a 100644 --- a/sources.yaml +++ b/sources.yaml @@ -3,3 +3,5 @@ commonUrl: https://clement-panchout.itch.io/yet-another-free-music-pack - fileName: audio/817587__silverdubloons__tick06.wav commonUrl: https://freesound.org/people/SilverDubloons/sounds/817587/ +- fileName: resources/textures/beanstalk-dark.webp + commonUrl: https://www.toptal.com/designers/subtlepatterns/beanstalk-dark-pattern/ diff --git a/ui/MainMenu.tscn b/ui/MainMenu.tscn index b58eefc..8db5638 100644 --- a/ui/MainMenu.tscn +++ b/ui/MainMenu.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=2 format=3 uid="uid://m8lf3eh3al5j"] +[gd_scene load_steps=3 format=3 uid="uid://m8lf3eh3al5j"] [ext_resource type="Script" uid="uid://ctu58xq7btp1n" path="res://scripts/MainMenu.gd" id="1_b00nv"] +[ext_resource type="Texture2D" uid="uid://c8y6tlvcgh2gn" path="res://resources/textures/beanstalk-dark.webp" id="2_rn8js"] [node name="MainMenu" type="Control"] layout_mode = 3 @@ -11,14 +12,15 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_b00nv") -[node name="Background" type="ColorRect" parent="."] +[node name="Background" type="TextureRect" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -color = Color(0.952411, 0.651681, 0.63048, 1) +texture = ExtResource("2_rn8js") +stretch_mode = 1 [node name="MenuContainer" type="VBoxContainer" parent="."] layout_mode = 1 diff --git a/ui/SettingsMenu.tscn b/ui/SettingsMenu.tscn index bf9514e..33a091f 100644 --- a/ui/SettingsMenu.tscn +++ b/ui/SettingsMenu.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=2 format=3 uid="uid://57obmcwyos2g"] +[gd_scene load_steps=3 format=3 uid="uid://57obmcwyos2g"] [ext_resource type="Script" uid="uid://c8mlvlerv4y03" path="res://scripts/SettingsMenu.gd" id="1_oqkcn"] +[ext_resource type="Texture2D" uid="uid://c8y6tlvcgh2gn" path="res://resources/textures/beanstalk-dark.webp" id="2_7nnky"] [node name="SettingsMenu" type="Control" groups=["localizable"]] layout_mode = 3 @@ -11,14 +12,15 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_oqkcn") -[node name="Background" type="ColorRect" parent="."] +[node name="Background" type="TextureRect" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -color = Color(0.209, 0.5159, 0.55, 1) +texture = ExtResource("2_7nnky") +stretch_mode = 1 [node name="SettingsContainer" type="VBoxContainer" parent="."] layout_mode = 1 From 7951a42c8898aab86216c18daa53f186fe5333bd Mon Sep 17 00:00:00 2001 From: Vladimir nett00n Budylnikov Date: Sun, 3 Aug 2025 18:35:52 +0400 Subject: [PATCH 5/7] add animation --- .../Skeleton Sprite/Skeleton Attack.png | Bin 0 -> 3887 bytes .../Skeleton Attack.png.import | 34 ++++++ .../Skeleton Sprite/Skeleton Dead.png | Bin 0 -> 2440 bytes .../Skeleton Sprite/Skeleton Dead.png.import | 34 ++++++ .../Skeleton Sprite/Skeleton Hit.png | Bin 0 -> 1648 bytes .../Skeleton Sprite/Skeleton Hit.png.import | 34 ++++++ .../Skeleton Sprite/Skeleton Idle.png | Bin 0 -> 1300 bytes .../Skeleton Sprite/Skeleton Idle.png.import | 34 ++++++ .../Skeleton Sprite/Skeleton React.png | Bin 0 -> 673 bytes .../Skeleton Sprite/Skeleton React.png.import | 34 ++++++ .../Skeleton Sprite/Skeleton Walk.png | Bin 0 -> 1818 bytes .../Skeleton Sprite/Skeleton Walk.png.import | 34 ++++++ sources.yaml | 2 + ui/PressAnyKeyScreen.tscn | 100 +++++++++++++++++- 14 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Attack.png create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Attack.png.import create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Dead.png create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Dead.png.import create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Hit.png create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Hit.png.import create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Idle.png create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Idle.png.import create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton React.png create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton React.png.import create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Walk.png create mode 100644 resources/animated sprite/Skeleton Sprite/Skeleton Walk.png.import diff --git a/resources/animated sprite/Skeleton Sprite/Skeleton Attack.png b/resources/animated sprite/Skeleton Sprite/Skeleton Attack.png new file mode 100644 index 0000000000000000000000000000000000000000..807443b58423bba5b64f856e1778de8941e065ef GIT binary patch literal 3887 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 literal 0 HcmV?d00001 diff --git a/resources/animated sprite/Skeleton Sprite/Skeleton Attack.png.import b/resources/animated sprite/Skeleton Sprite/Skeleton Attack.png.import new file mode 100644 index 0000000..b12c8e5 --- /dev/null +++ b/resources/animated sprite/Skeleton Sprite/Skeleton Attack.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cowabod6jrn47" +path="res://.godot/imported/Skeleton Attack.png-049662b12bed4ec69aa7828712b2b871.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/animated sprite/Skeleton Sprite/Skeleton Attack.png" +dest_files=["res://.godot/imported/Skeleton Attack.png-049662b12bed4ec69aa7828712b2b871.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 diff --git a/resources/animated sprite/Skeleton Sprite/Skeleton Dead.png b/resources/animated sprite/Skeleton Sprite/Skeleton Dead.png new file mode 100644 index 0000000000000000000000000000000000000000..64f539d0beb0e7121a914f173237d5fd310e3667 GIT binary patch literal 2440 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 KMNUMnLSTZO^No`L literal 0 HcmV?d00001 diff --git a/resources/animated sprite/Skeleton Sprite/Skeleton Idle.png.import b/resources/animated sprite/Skeleton Sprite/Skeleton Idle.png.import new file mode 100644 index 0000000..feb9d8d --- /dev/null +++ b/resources/animated sprite/Skeleton Sprite/Skeleton Idle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bcr4bokw87m5n" +path="res://.godot/imported/Skeleton Idle.png-3aae60d292addc7af911333cb2fced6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/animated sprite/Skeleton Sprite/Skeleton Idle.png" +dest_files=["res://.godot/imported/Skeleton Idle.png-3aae60d292addc7af911333cb2fced6a.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 diff --git a/resources/animated sprite/Skeleton Sprite/Skeleton React.png b/resources/animated sprite/Skeleton Sprite/Skeleton React.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd99437d61467cb113d393d2f2f96d5a5cc7e7f GIT binary patch literal 673 zcmV;S0$%-zP)@D$KWCzM*H$kNh!V~3p1k+odzXs)I} z1$bSrvFxkL%ni)oU7M-@GuH_)?lsk&!J?kU?K}4yDz2S9^Xvj|00000NkvXX Hu0mjfyTCx( literal 0 HcmV?d00001 diff --git a/resources/animated sprite/Skeleton Sprite/Skeleton React.png.import b/resources/animated sprite/Skeleton Sprite/Skeleton React.png.import new file mode 100644 index 0000000..a63a277 --- /dev/null +++ b/resources/animated sprite/Skeleton Sprite/Skeleton React.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cuo2o785qopo3" +path="res://.godot/imported/Skeleton React.png-e4462e4ebc0bd8edc6e0657880709951.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/animated sprite/Skeleton Sprite/Skeleton React.png" +dest_files=["res://.godot/imported/Skeleton React.png-e4462e4ebc0bd8edc6e0657880709951.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 diff --git a/resources/animated sprite/Skeleton Sprite/Skeleton Walk.png b/resources/animated sprite/Skeleton Sprite/Skeleton Walk.png new file mode 100644 index 0000000000000000000000000000000000000000..17dfd1f479384f8492875f605316a70590f82713 GIT binary patch literal 1818 zcmV+#2j%#QP) zziS&w6vw}NxKZ!_Kz9aVxGsh5zyNvLv1?_+#V7mK0{emgJY*c$vY8C#Fu4;Qmmp zi4EFV*`!$dFh*|dOs~WvW!l)ds$#83VoAg$_hB)YLJknq48h4&IscA^tntRm&O27g zEt$Hk6OWW>W8(tAmyhogDWk^7j;#-4;yzTS^{LjEkMEO^z#a-$<#Lt+{$9^DK8u)bD9zt^28pL_!B_qyrr&E@z)Q^o zac%ld%4aUGo0!If+}>QKjb;Z|qY(gLrCLS1RmaxO0amJ2oDTj0mFX_Zn-+W!STtFS6jr|4nW{!AE?lhO4+j5PG=j?n4 z0QmIb5T8CAj-m88L{bT@0uAHEIOhb_r9E&7J6Z2)GUNwot4iQcfjdi(AaZ{M8)xG%L$*KL&C`Eu1Nm&{8%{kJRARMDtDlWGUoczwA(gSm+7 zn;arFLBkNX3ceByK-&WK3p5NiA!u>uI>e!N~egc zCmXf835{3fF9O%aYqs2wvB5dsvgFF0x>rjzn$7hTF5=?qjWAE{#>RFE0N11JZ0{Ry z5j%?;60^#zEUza0UN@zg?T_DoniwR$sw}T2bR3SpQ)AY7i^x^kQd~}^DlRW90h7T} zX{LfHV*+*qjU>e-RhCziz1{sZk88`;2V4=Cm_@STnqm#%0vNMxdAigYOyAL3U#nqb zV>=xTdK0snO*^YxTNAq^O1cJZUR)m^7jb=<Uy2Ku8zO{D1H+a(81xdGRs1|IU`{wT>?|&^2ZLUsvu$Gr?$(F;y>3cLmyYxI z!Jl|>2=Bf-J0E5yG#?(dLo8g96c@;zFhZD{+fNhP5Kt3kzt>G)9KNyUOr2_Ffmf`9k`^)1w7Hdr=*5#VeOjQK6L#$jICRJ0E)QY&i z{-p^+^@Hj&pYf)yOOe#aw%jG)zLdPZxlAj|t4Y>u@4B-k#U)8_i3wy^JrZ01UP&j9 ztFlA5l(;Cdab0|tHQW0p-+6HXzrK^^0_F)Ll*!?TsftH69H-GZx$5F17uUqJZQ$$C z(CJzs&Vj5ZK`AbW)b=GwCA5;u&o%X5h{lPB8!XM0kVLGrY*+pHlOMlN8_%CPSE>4I z?U%38y}y15;%2c!CBc;B&Qk4{uTlV@zH7JYX~^fI_v(IVx9aKf>(6lU#MI(4U^XxS zCvXw>`1NNz`M+U8O*~63$AFXKN=Y>tr%VRs_)Odbj+?8$hcjONeNufFDz^WtFmcrzH@Ucynpc1MUSXWa^<}F4)M$3tZoV~fT|Hr3 Date: Sun, 3 Aug 2025 18:39:15 +0400 Subject: [PATCH 6/7] Optimize backgound - move it to root node --- scenes/main.tscn | 13 ++++++++++++- ui/MainMenu.tscn | 13 +------------ ui/PressAnyKeyScreen.tscn | 9 --------- ui/SettingsMenu.tscn | 13 +------------ 4 files changed, 14 insertions(+), 34 deletions(-) diff --git a/scenes/main.tscn b/scenes/main.tscn index d170649..d7cf192 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3 uid="uid://ci2gk11211n0d"] +[gd_scene load_steps=4 format=3 uid="uid://ci2gk11211n0d"] [ext_resource type="Script" uid="uid://cwlop1ettlqhg" path="res://scripts/Main.gd" id="1_0wfyh"] [ext_resource type="PackedScene" uid="uid://gbe1jarrwqsi" path="res://ui/PressAnyKeyScreen.tscn" id="1_o5qli"] +[ext_resource type="Texture2D" uid="uid://c8y6tlvcgh2gn" path="res://resources/textures/beanstalk-dark.webp" id="2_sugp2"] [node name="main" type="Control"] layout_mode = 3 @@ -12,5 +13,15 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_0wfyh") +[node name="Background" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("2_sugp2") +stretch_mode = 1 + [node name="PressAnyKeyScreen" parent="." instance=ExtResource("1_o5qli")] layout_mode = 1 diff --git a/ui/MainMenu.tscn b/ui/MainMenu.tscn index 8db5638..daa7342 100644 --- a/ui/MainMenu.tscn +++ b/ui/MainMenu.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=3 format=3 uid="uid://m8lf3eh3al5j"] +[gd_scene load_steps=2 format=3 uid="uid://m8lf3eh3al5j"] [ext_resource type="Script" uid="uid://ctu58xq7btp1n" path="res://scripts/MainMenu.gd" id="1_b00nv"] -[ext_resource type="Texture2D" uid="uid://c8y6tlvcgh2gn" path="res://resources/textures/beanstalk-dark.webp" id="2_rn8js"] [node name="MainMenu" type="Control"] layout_mode = 3 @@ -12,16 +11,6 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_b00nv") -[node name="Background" type="TextureRect" parent="."] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = ExtResource("2_rn8js") -stretch_mode = 1 - [node name="MenuContainer" type="VBoxContainer" parent="."] layout_mode = 1 anchors_preset = 8 diff --git a/ui/PressAnyKeyScreen.tscn b/ui/PressAnyKeyScreen.tscn index 81b3b6d..574c00d 100644 --- a/ui/PressAnyKeyScreen.tscn +++ b/ui/PressAnyKeyScreen.tscn @@ -97,15 +97,6 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_0a4p2") -[node name="Background" type="ColorRect" parent="."] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -color = Color(0.18, 0.18, 0.18, 1) - [node name="PressKeyContainer" type="VBoxContainer" parent="."] layout_mode = 1 anchors_preset = 8 diff --git a/ui/SettingsMenu.tscn b/ui/SettingsMenu.tscn index 33a091f..dbc3963 100644 --- a/ui/SettingsMenu.tscn +++ b/ui/SettingsMenu.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=3 format=3 uid="uid://57obmcwyos2g"] +[gd_scene load_steps=2 format=3 uid="uid://57obmcwyos2g"] [ext_resource type="Script" uid="uid://c8mlvlerv4y03" path="res://scripts/SettingsMenu.gd" id="1_oqkcn"] -[ext_resource type="Texture2D" uid="uid://c8y6tlvcgh2gn" path="res://resources/textures/beanstalk-dark.webp" id="2_7nnky"] [node name="SettingsMenu" type="Control" groups=["localizable"]] layout_mode = 3 @@ -12,16 +11,6 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_oqkcn") -[node name="Background" type="TextureRect" parent="."] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = ExtResource("2_7nnky") -stretch_mode = 1 - [node name="SettingsContainer" type="VBoxContainer" parent="."] layout_mode = 1 anchors_preset = 8 From 78a61fe33c4be6b28f12d1ec9ac67df9f5db69f6 Mon Sep 17 00:00:00 2001 From: Vladimir nett00n Budylnikov Date: Sun, 3 Aug 2025 23:22:26 +0400 Subject: [PATCH 7/7] add game scene --- scenes/game.gd | 12 ++++++++++++ scenes/game.gd.uid | 1 + scenes/game.tscn | 17 +++++++++++++++++ scripts/GameManager.gd | 21 +++++++++++++++++++-- scripts/MainMenu.gd | 1 + 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 scenes/game.gd create mode 100644 scenes/game.gd.uid create mode 100644 scenes/game.tscn diff --git a/scenes/game.gd b/scenes/game.gd new file mode 100644 index 0000000..f51204f --- /dev/null +++ b/scenes/game.gd @@ -0,0 +1,12 @@ +extends Node + +@onready var back_button: Button = $BackButtonContainer/BackButton + +func _ready() -> void: + if not back_button.pressed.is_connected(_on_back_button_pressed): + back_button.pressed.connect(_on_back_button_pressed) + +func _on_back_button_pressed() -> void: + AudioManager.play_ui_click() + GameManager.save_game() + GameManager.exit_to_main_menu() diff --git a/scenes/game.gd.uid b/scenes/game.gd.uid new file mode 100644 index 0000000..a218c43 --- /dev/null +++ b/scenes/game.gd.uid @@ -0,0 +1 @@ +uid://bvtr6yhlyuv4v diff --git a/scenes/game.tscn b/scenes/game.tscn new file mode 100644 index 0000000..3a73f1d --- /dev/null +++ b/scenes/game.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=3 uid="uid://dmwkyeq2l7u04"] + +[ext_resource type="Script" uid="uid://bvtr6yhlyuv4v" path="res://scenes/game.gd" id="1_uwrxv"] + +[node name="Game" type="Node"] +script = ExtResource("1_uwrxv") + +[node name="BackButtonContainer" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="BackButton" type="Button" parent="BackButtonContainer"] +offset_right = 45.0 +offset_bottom = 31.0 +text = "back" diff --git a/scripts/GameManager.gd b/scripts/GameManager.gd index 38c4d54..dccbee6 100644 --- a/scripts/GameManager.gd +++ b/scripts/GameManager.gd @@ -1,4 +1,21 @@ extends Node -func _ready(): - pass +const GAME_SCENE_PATH := "res://scenes/Game.tscn" +const MAIN_SCENE_PATH := "res://scenes/Main.tscn" + +func start_new_game() -> void: + var packed_scene := load(GAME_SCENE_PATH) + if not packed_scene or not packed_scene is PackedScene: + push_error("Failed to load Game scene at: %s" % GAME_SCENE_PATH) + return + get_tree().change_scene_to_packed(packed_scene) + +func save_game() -> void: + print("Game saved (mock)") + +func exit_to_main_menu() -> void: + var packed_scene := load(MAIN_SCENE_PATH) + if not packed_scene or not packed_scene is PackedScene: + push_error("Failed to load Main scene at: %s" % MAIN_SCENE_PATH) + return + get_tree().change_scene_to_packed(packed_scene) diff --git a/scripts/MainMenu.gd b/scripts/MainMenu.gd index 10dd578..ebfed14 100644 --- a/scripts/MainMenu.gd +++ b/scripts/MainMenu.gd @@ -8,6 +8,7 @@ func _ready(): func _on_new_game_button_pressed(): AudioManager.play_ui_click() print("New Game pressed") + GameManager.start_new_game() func _on_settings_button_pressed(): AudioManager.play_ui_click()