From a4b8e8c9252b8175b1c41d3bcf9eeb8b3667e34f Mon Sep 17 00:00:00 2001 From: kphero Date: Fri, 21 Nov 2025 16:18:26 -0500 Subject: [PATCH 1/3] Implement AudioManager with click sounds for assets added AudioManager global added click sounds to audio assets added script and scene to manager audio added various global click sounds to menu options (default, back, toggle) --- assets/first_party/sounds/click/Click.wav | 3 ++ .../first_party/sounds/click/Click.wav.import | 24 +++++++++++++++ assets/first_party/sounds/click/Click2.wav | 3 ++ .../sounds/click/Click2.wav.import | 24 +++++++++++++++ assets/first_party/sounds/click/Click3.wav | 3 ++ .../sounds/click/Click3.wav.import | 24 +++++++++++++++ project.godot | 1 + scenes/globals/audio/audio_manager.gd | 15 ++++++++++ scenes/globals/audio/audio_manager.gd.uid | 1 + scenes/globals/audio/audio_manager.tscn | 30 +++++++++++++++++++ .../options/components/fullscreen_toggle.gd | 1 + scenes/menus/options/components/options.gd | 1 + .../menus/options/components/volume_slider.gd | 1 + scenes/menus/title/components/credits.gd | 1 + scenes/menus/title/components/main_menu.gd | 5 ++++ 15 files changed, 137 insertions(+) create mode 100644 assets/first_party/sounds/click/Click.wav create mode 100644 assets/first_party/sounds/click/Click.wav.import create mode 100644 assets/first_party/sounds/click/Click2.wav create mode 100644 assets/first_party/sounds/click/Click2.wav.import create mode 100644 assets/first_party/sounds/click/Click3.wav create mode 100644 assets/first_party/sounds/click/Click3.wav.import create mode 100644 scenes/globals/audio/audio_manager.gd create mode 100644 scenes/globals/audio/audio_manager.gd.uid create mode 100644 scenes/globals/audio/audio_manager.tscn diff --git a/assets/first_party/sounds/click/Click.wav b/assets/first_party/sounds/click/Click.wav new file mode 100644 index 000000000..9c68bfab2 --- /dev/null +++ b/assets/first_party/sounds/click/Click.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a76214d388bd6c9f8d3b8036aa31b6af70e3ca3eaf2050e3d924003b2bcc4031 +size 33834 diff --git a/assets/first_party/sounds/click/Click.wav.import b/assets/first_party/sounds/click/Click.wav.import new file mode 100644 index 000000000..22e20ddd1 --- /dev/null +++ b/assets/first_party/sounds/click/Click.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://d07wbypfcrwat" +path="res://.godot/imported/Click.wav-ce44535745415ade2a7f33cb099d4287.sample" + +[deps] + +source_file="res://assets/first_party/sounds/click/Click.wav" +dest_files=["res://.godot/imported/Click.wav-ce44535745415ade2a7f33cb099d4287.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/assets/first_party/sounds/click/Click2.wav b/assets/first_party/sounds/click/Click2.wav new file mode 100644 index 000000000..0b3047727 --- /dev/null +++ b/assets/first_party/sounds/click/Click2.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f17205e5c0f39f8822a00db82707e0ea6f31823ad51157bee6f88a6e5081913 +size 30472 diff --git a/assets/first_party/sounds/click/Click2.wav.import b/assets/first_party/sounds/click/Click2.wav.import new file mode 100644 index 000000000..3eff39d41 --- /dev/null +++ b/assets/first_party/sounds/click/Click2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://chj1gd4aiesu6" +path="res://.godot/imported/Click2.wav-3e04481d8f77803c4866da38a9c4f168.sample" + +[deps] + +source_file="res://assets/first_party/sounds/click/Click2.wav" +dest_files=["res://.godot/imported/Click2.wav-3e04481d8f77803c4866da38a9c4f168.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/assets/first_party/sounds/click/Click3.wav b/assets/first_party/sounds/click/Click3.wav new file mode 100644 index 000000000..e8b825d99 --- /dev/null +++ b/assets/first_party/sounds/click/Click3.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abb2bc0f26baf3d5b4d10b18e1e5fa34d2eb157d7470fb458651e222cfb130dc +size 30472 diff --git a/assets/first_party/sounds/click/Click3.wav.import b/assets/first_party/sounds/click/Click3.wav.import new file mode 100644 index 000000000..b91d5902b --- /dev/null +++ b/assets/first_party/sounds/click/Click3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dn6pokmv27gb1" +path="res://.godot/imported/Click3.wav-d20191ed34a7a4e84244e62a40191013.sample" + +[deps] + +source_file="res://assets/first_party/sounds/click/Click3.wav" +dest_files=["res://.godot/imported/Click3.wav-d20191ed34a7a4e84244e62a40191013.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/project.godot b/project.godot index 2fc007236..42dd428a9 100644 --- a/project.godot +++ b/project.godot @@ -33,6 +33,7 @@ CameraShake="*res://scenes/globals/camera_shaker/camera_shake.tscn" InputHelper="*res://addons/input_helper/input_helper.gd" AspectRatioDebugger="*res://scenes/globals/aspect_ratio_debugger/aspect_ratio_debugger.tscn" InputGlobal="*res://scenes/game_elements/props/hint/input_key/InputHintManager.gd" +AudioManager="*res://scenes/globals/audio/audio_manager.tscn" [debug] diff --git a/scenes/globals/audio/audio_manager.gd b/scenes/globals/audio/audio_manager.gd new file mode 100644 index 000000000..a8ac1a8dd --- /dev/null +++ b/scenes/globals/audio/audio_manager.gd @@ -0,0 +1,15 @@ +@tool +extends Node + +@onready var ui_click_sound: AudioStreamPlayer = %Click +@onready var ui_click_back_sound: AudioStreamPlayer = %ClickBack +@onready var ui_click_toggle_sound: AudioStreamPlayer = %ClickToggle + +func play_ui_click(): + ui_click_sound.play() + +func play_ui_click_back(): + ui_click_back_sound.play() + +func play_ui_click_toggle(): + ui_click_toggle_sound.play() diff --git a/scenes/globals/audio/audio_manager.gd.uid b/scenes/globals/audio/audio_manager.gd.uid new file mode 100644 index 000000000..c844468a1 --- /dev/null +++ b/scenes/globals/audio/audio_manager.gd.uid @@ -0,0 +1 @@ +uid://opjn7wshh4l7 diff --git a/scenes/globals/audio/audio_manager.tscn b/scenes/globals/audio/audio_manager.tscn new file mode 100644 index 000000000..af4eb60ec --- /dev/null +++ b/scenes/globals/audio/audio_manager.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=5 format=4 uid="uid://cktit3b610mtf"] + +[ext_resource type="Script" uid="uid://opjn7wshh4l7" path="res://scenes/globals/audio/audio_manager.gd" id="1_wvlxw"] +[ext_resource type="AudioStream" uid="uid://dn6pokmv27gb1" path="res://assets/first_party/sounds/click/Click3.wav" id="2_wvlxw"] +[ext_resource type="AudioStream" uid="uid://chj1gd4aiesu6" path="res://assets/first_party/sounds/click/Click2.wav" id="3_mw3o2"] + +[sub_resource type="AudioStreamWAV" id="AudioStreamWAV_e6cke"] +data = PackedByteArray("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") +format = 3 +mix_rate = 48000 + +[node name="AudioManager" type="Node2D"] +script = ExtResource("1_wvlxw") + +[node name="Click" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = SubResource("AudioStreamWAV_e6cke") +pitch_scale = 2.0 + +[node name="ClickBack" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource("2_wvlxw") +volume_db = 1.0 +pitch_scale = 2.0 + +[node name="ClickToggle" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource("3_mw3o2") +volume_db = 5.0 +pitch_scale = 2.0 diff --git a/scenes/menus/options/components/fullscreen_toggle.gd b/scenes/menus/options/components/fullscreen_toggle.gd index fbe664229..023a36a18 100644 --- a/scenes/menus/options/components/fullscreen_toggle.gd +++ b/scenes/menus/options/components/fullscreen_toggle.gd @@ -18,4 +18,5 @@ func _refresh() -> void: func _on_toggled(toggled_on: bool) -> void: + AudioManager.play_ui_click() Settings.toggle_fullscreen(toggled_on) diff --git a/scenes/menus/options/components/options.gd b/scenes/menus/options/components/options.gd index 9d29adb38..da78caf1d 100644 --- a/scenes/menus/options/components/options.gd +++ b/scenes/menus/options/components/options.gd @@ -17,4 +17,5 @@ func _on_visibility_changed() -> void: func _on_back_button_pressed() -> void: + AudioManager.play_ui_click_back() back.emit() diff --git a/scenes/menus/options/components/volume_slider.gd b/scenes/menus/options/components/volume_slider.gd index 97e8564fe..67a77ce90 100644 --- a/scenes/menus/options/components/volume_slider.gd +++ b/scenes/menus/options/components/volume_slider.gd @@ -32,3 +32,4 @@ func _refresh() -> void: func _on_value_changed(new_value: float) -> void: if bus_name: Settings.set_volume(bus_name, new_value) + AudioManager.play_ui_click_toggle() diff --git a/scenes/menus/title/components/credits.gd b/scenes/menus/title/components/credits.gd index d3c0b3c9e..826942d74 100644 --- a/scenes/menus/title/components/credits.gd +++ b/scenes/menus/title/components/credits.gd @@ -22,4 +22,5 @@ func _on_visibility_changed() -> void: func _on_back_button_pressed() -> void: + AudioManager.play_ui_click_back() back.emit() diff --git a/scenes/menus/title/components/main_menu.gd b/scenes/menus/title/components/main_menu.gd index 4ab4c04fc..2a866f58c 100644 --- a/scenes/menus/title/components/main_menu.gd +++ b/scenes/menus/title/components/main_menu.gd @@ -31,22 +31,27 @@ func _ready() -> void: func _on_continue_button_pressed() -> void: + AudioManager.play_ui_click() continue_pressed.emit() func _on_start_button_pressed() -> void: + AudioManager.play_ui_click() start_pressed.emit() func _on_options_button_pressed() -> void: + AudioManager.play_ui_click() options_pressed.emit() func _on_credits_button_pressed() -> void: + AudioManager.play_ui_click() credits_pressed.emit() func _on_quit_button_pressed() -> void: + AudioManager.play_ui_click_back() await Transitions.do_out_transition() get_tree().quit.call_deferred() From 86285ad3db9b5273c74cc384a44938a982371d47 Mon Sep 17 00:00:00 2001 From: kphero Date: Fri, 21 Nov 2025 16:46:06 -0500 Subject: [PATCH 2/3] Add copyright --- scenes/globals/audio/audio_manager.gd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scenes/globals/audio/audio_manager.gd b/scenes/globals/audio/audio_manager.gd index a8ac1a8dd..a52dd8fbe 100644 --- a/scenes/globals/audio/audio_manager.gd +++ b/scenes/globals/audio/audio_manager.gd @@ -1,3 +1,5 @@ +# SPDX-FileCopyrightText: The Threadbare Authors +# SPDX-License-Identifier: MPL-2.0 @tool extends Node From 942cd4f6507af1fa0caa256f3d945f17ede34734 Mon Sep 17 00:00:00 2001 From: kphero Date: Fri, 21 Nov 2025 16:50:01 -0500 Subject: [PATCH 3/3] reformatted with gdformat --- scenes/globals/audio/audio_manager.gd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scenes/globals/audio/audio_manager.gd b/scenes/globals/audio/audio_manager.gd index a52dd8fbe..f35a6cfee 100644 --- a/scenes/globals/audio/audio_manager.gd +++ b/scenes/globals/audio/audio_manager.gd @@ -7,11 +7,14 @@ extends Node @onready var ui_click_back_sound: AudioStreamPlayer = %ClickBack @onready var ui_click_toggle_sound: AudioStreamPlayer = %ClickToggle + func play_ui_click(): ui_click_sound.play() + func play_ui_click_back(): ui_click_back_sound.play() - + + func play_ui_click_toggle(): ui_click_toggle_sound.play()