diff --git a/client/audio/Audio.gd b/client/audio/Audio.gd new file mode 100644 index 0000000..6ad8fc5 --- /dev/null +++ b/client/audio/Audio.gd @@ -0,0 +1,15 @@ +extends Node + +var ui: AudioStreamPlayer + +func _ready(): + ui = $UI + assert(ui) + +func play_ui(stream: AudioStream): + ui.stream = stream + ui.play() + +func mute(enabled: bool): + var master_sound = AudioServer.get_bus_index("Master") + AudioServer.set_bus_mute(master_sound, enabled) \ No newline at end of file diff --git a/client/audio/Audio.tscn b/client/audio/Audio.tscn new file mode 100644 index 0000000..d84e27b --- /dev/null +++ b/client/audio/Audio.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=3 format=3 uid="uid://ev7uecbluell"] + +[ext_resource type="Script" path="res://audio/Audio.gd" id="1_nv42i"] +[ext_resource type="AudioStream" uid="uid://b36mntcqlt553" path="res://assets/audio/ambience/Wind-Vegetation-Leaves-Gusts.wav" id="2_fkia1"] + +[node name="Audio" type="Node"] +process_thread_group = 2 +process_thread_group_order = 0 +process_thread_messages = 0 +script = ExtResource("1_nv42i") + +[node name="Ambience" type="AudioStreamPlayer" parent="."] +stream = ExtResource("2_fkia1") +autoplay = true +bus = &"Ambience" + +[node name="UI" type="AudioStreamPlayer" parent="."] +max_polyphony = 3 +bus = &"UI" diff --git a/client/project.godot b/client/project.godot index 92b4f10..50aee1b 100644 --- a/client/project.godot +++ b/client/project.godot @@ -22,6 +22,7 @@ buses/default_bus_layout="res://world/AudioBusLayout.tres" [autoload] Global="*res://Global.tscn" +Audio="*res://audio/Audio.tscn" [debug] diff --git a/client/static/Audio.gd b/client/static/Audio.gd deleted file mode 100644 index ec254d6..0000000 --- a/client/static/Audio.gd +++ /dev/null @@ -1,5 +0,0 @@ -class_name Audio - -static func mute(enabled: bool): - var master_sound = AudioServer.get_bus_index("Master") - AudioServer.set_bus_mute(master_sound, enabled) \ No newline at end of file diff --git a/client/ui/button/Button.gd b/client/ui/button/Button.gd new file mode 100644 index 0000000..ff125e7 --- /dev/null +++ b/client/ui/button/Button.gd @@ -0,0 +1,10 @@ +extends Button + +@export var hover: AudioStream +@export var click: AudioStream + +func _ready(): + assert(hover) + assert(click) + mouse_entered.connect(Audio.play_ui.bind(hover)) + button_down.connect(Audio.play_ui.bind(click)) \ No newline at end of file diff --git a/client/ui/button/Button.tscn b/client/ui/button/Button.tscn new file mode 100644 index 0000000..3dc89db --- /dev/null +++ b/client/ui/button/Button.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=4 format=3 uid="uid://bul4bacam6s78"] + +[ext_resource type="Script" path="res://ui/button/Button.gd" id="1_75erh"] +[ext_resource type="AudioStream" uid="uid://bxg5jpc7glw8s" path="res://assets/audio/ui/hover.wav" id="2_7ak8k"] +[ext_resource type="AudioStream" uid="uid://bfa480mk0nwj" path="res://assets/audio/ui/click.wav" id="3_o67x3"] + +[node name="Button" type="Button"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_75erh") +hover = ExtResource("2_7ak8k") +click = ExtResource("3_o67x3") diff --git a/client/ui/settings/Settings.tscn b/client/ui/settings/Settings.tscn index fda5ded..0610689 100644 --- a/client/ui/settings/Settings.tscn +++ b/client/ui/settings/Settings.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=16 format=3 uid="uid://bqpbrju7mc7d5"] +[gd_scene load_steps=17 format=3 uid="uid://bqpbrju7mc7d5"] [ext_resource type="Script" path="res://ui/settings/Settings.gd" id="1_gx3lf"] [ext_resource type="Script" path="res://ui/label/ParentNameLabel.gd" id="2_72a3s"] +[ext_resource type="PackedScene" uid="uid://bul4bacam6s78" path="res://ui/button/Button.tscn" id="3_42una"] [ext_resource type="Script" path="res://ui/settings/video/Preset.gd" id="3_il1yi"] [ext_resource type="Script" path="res://ui/settings/video/RenderScale.gd" id="4_owrjf"] [ext_resource type="Script" path="res://ui/settings/video/ScaleMode.gd" id="5_monk2"] @@ -55,17 +56,17 @@ script = ExtResource("2_72a3s") layout_mode = 2 size_flags_horizontal = 3 -[node name="Low" type="Button" parent="TabContainer/Video/VBoxContainer/Preset/HBoxContainer"] +[node name="Low" parent="TabContainer/Video/VBoxContainer/Preset/HBoxContainer" instance=ExtResource("3_42una")] layout_mode = 2 size_flags_horizontal = 3 text = "Low" -[node name="Medium" type="Button" parent="TabContainer/Video/VBoxContainer/Preset/HBoxContainer"] +[node name="Medium" parent="TabContainer/Video/VBoxContainer/Preset/HBoxContainer" instance=ExtResource("3_42una")] layout_mode = 2 size_flags_horizontal = 3 text = "Medium" -[node name="High" type="Button" parent="TabContainer/Video/VBoxContainer/Preset/HBoxContainer"] +[node name="High" parent="TabContainer/Video/VBoxContainer/Preset/HBoxContainer" instance=ExtResource("3_42una")] layout_mode = 2 size_flags_horizontal = 3 text = "High" @@ -272,6 +273,9 @@ layout_mode = 2 [node name="Ambience" parent="TabContainer/Audio/VBoxContainer" instance=ExtResource("14_pvo80")] layout_mode = 2 +[node name="UI" parent="TabContainer/Audio/VBoxContainer" instance=ExtResource("14_pvo80")] +layout_mode = 2 + [node name="Skills" parent="TabContainer/Audio/VBoxContainer" instance=ExtResource("14_pvo80")] layout_mode = 2 diff --git a/client/world/AudioBusLayout.tres b/client/world/AudioBusLayout.tres index b09f782..ca5820e 100644 --- a/client/world/AudioBusLayout.tres +++ b/client/world/AudioBusLayout.tres @@ -30,15 +30,21 @@ bus/4/volume_db = -12.9785 bus/4/send = &"Master" bus/4/effect/0/effect = SubResource("AudioEffectReverb_hjj00") bus/4/effect/0/enabled = true -bus/5/name = &"Footsteps" +bus/5/name = &"UI" bus/5/solo = false bus/5/mute = false bus/5/bypass_fx = false -bus/5/volume_db = -4.5 -bus/5/send = &"Effects" -bus/6/name = &"Skills" +bus/5/volume_db = 0.0 +bus/5/send = &"Master" +bus/6/name = &"Footsteps" bus/6/solo = false bus/6/mute = false bus/6/bypass_fx = false -bus/6/volume_db = 0.0 +bus/6/volume_db = -4.5 bus/6/send = &"Effects" +bus/7/name = &"Skills" +bus/7/solo = false +bus/7/mute = false +bus/7/bypass_fx = false +bus/7/volume_db = 0.0 +bus/7/send = &"Effects" diff --git a/client/world/World.tscn b/client/world/World.tscn index 8455dcc..bf66a87 100644 --- a/client/world/World.tscn +++ b/client/world/World.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://be6mcpdaobs5u"] +[gd_scene load_steps=18 format=3 uid="uid://be6mcpdaobs5u"] [ext_resource type="Terrain3DStorage" uid="uid://c38e3dyrl8lao" path="res://assets/terrain/Storage.res" id="1_xsh2l"] [ext_resource type="Terrain3DMaterial" uid="uid://nhcs8ekjedbb" path="res://world/terrain/Material.tres" id="2_3ekjf"] @@ -15,7 +15,6 @@ [ext_resource type="FastNoiseLite" uid="uid://d3f4lk8q04haa" path="res://world/trees/TreeNoise.tres" id="14_6v5re"] [ext_resource type="Environment" uid="uid://dixa0yso2s1u3" path="res://world/Environment.tres" id="16_i8t0h"] [ext_resource type="Script" path="res://world/Sun.gd" id="17_nxk5c"] -[ext_resource type="AudioStream" uid="uid://b36mntcqlt553" path="res://assets/audio/ambience/Wind-Vegetation-Leaves-Gusts.wav" id="18_8j4nl"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_yp2fx"] seed = 100 @@ -80,8 +79,3 @@ transform = Transform3D(-0.350207, 0.827032, -0.439741, 0, 0.469472, 0.882948, 0 light_energy = 1.8 shadow_enabled = true script = ExtResource("17_nxk5c") - -[node name="Ambience" type="AudioStreamPlayer" parent="."] -stream = ExtResource("18_8j4nl") -autoplay = true -bus = &"Ambience"