aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/audio/sound.gd19
-rw-r--r--client/audio/sound.tscn16
-rw-r--r--client/global.gd8
-rw-r--r--client/menu/ingame_menu.gd3
-rw-r--r--client/menu/ingame_menu.tscn1
-rw-r--r--client/menu/menu_manager.gd33
-rw-r--r--client/menu/menu_manager.tscn10
-rw-r--r--client/project.godot1
8 files changed, 52 insertions, 39 deletions
diff --git a/client/audio/sound.gd b/client/audio/sound.gd
new file mode 100644
index 00000000..ddb610c5
--- /dev/null
+++ b/client/audio/sound.gd
@@ -0,0 +1,19 @@
+extends Node
+
+@onready var click_sound = $UI/Click
+@onready var hover_sound = $UI/Hover
+
+func play_click():
+ click_sound.play()
+
+func play_hover():
+ hover_sound.play()
+
+func play_hover_maybe(element):
+ if Global.focus_auto_changed:
+ Global.focus_auto_changed = false
+ return
+ if element is Button:
+ if element.is_hovered():
+ return
+ play_hover()
diff --git a/client/audio/sound.tscn b/client/audio/sound.tscn
new file mode 100644
index 00000000..7c0458dc
--- /dev/null
+++ b/client/audio/sound.tscn
@@ -0,0 +1,16 @@
+[gd_scene load_steps=4 format=3 uid="uid://d3h243yic44rr"]
+
+[ext_resource type="Script" path="res://audio/sound.gd" id="1_b0qb1"]
+[ext_resource type="AudioStream" uid="uid://cpyn511c5mtni" path="res://menu/sounds/click.ogg" id="2_mhrce"]
+[ext_resource type="AudioStream" uid="uid://dtr1khfyqr56o" path="res://menu/sounds/hover.ogg" id="3_qft2s"]
+
+[node name="Sound" type="Node"]
+script = ExtResource("1_b0qb1")
+
+[node name="UI" type="Node" parent="."]
+
+[node name="Click" type="AudioStreamPlayer" parent="UI"]
+stream = ExtResource("2_mhrce")
+
+[node name="Hover" type="AudioStreamPlayer" parent="UI"]
+stream = ExtResource("3_qft2s")
diff --git a/client/global.gd b/client/global.gd
index 7c547d64..4d1139d2 100644
--- a/client/global.gd
+++ b/client/global.gd
@@ -156,6 +156,14 @@ func focus_first_button(node: Node) -> bool:
return true
return false
+func connect_button_sounds(node: Node):
+ if node is Button:
+ node.pressed.connect(Sound.play_click)
+ if node is Button or node is LineEdit or node is Slider:
+ node.mouse_entered.connect(Sound.play_hover)
+ for c in node.get_children():
+ connect_button_sounds(c)
+
func add_missing_keys(dict: Dictionary, reference: Dictionary):
for k in reference.keys():
if !dict.has(k):
diff --git a/client/menu/ingame_menu.gd b/client/menu/ingame_menu.gd
index 73f4dbb3..6fa83a55 100644
--- a/client/menu/ingame_menu.gd
+++ b/client/menu/ingame_menu.gd
@@ -3,6 +3,9 @@ extends Control
@onready var anim = $AnimationPlayer
@onready var options = $Side/Margin/Options
+func _ready():
+ Global.connect_button_sounds(self)
+
func act():
show()
anim.play("activate")
diff --git a/client/menu/ingame_menu.tscn b/client/menu/ingame_menu.tscn
index ee537720..1e9a2f46 100644
--- a/client/menu/ingame_menu.tscn
+++ b/client/menu/ingame_menu.tscn
@@ -72,6 +72,7 @@ anchors_preset = 9
anchor_bottom = 1.0
offset_left = -400.0
offset_right = -90.0
+offset_bottom = 648.0
grow_vertical = 2
[node name="Margin" type="MarginContainer" parent="Side"]
diff --git a/client/menu/menu_manager.gd b/client/menu/menu_manager.gd
index 58f35885..e51e47f1 100644
--- a/client/menu/menu_manager.gd
+++ b/client/menu/menu_manager.gd
@@ -8,18 +8,14 @@ class_name MenuManager
}
@onready var transition = $SceneTransition
-@onready var hover_sound = $Hover
-@onready var click_sound = $Click
-
var menu_stack = ["main"]
-
func _ready():
- get_viewport().gui_focus_changed.connect(play_hover_maybe)
+ get_viewport().gui_focus_changed.connect(Sound.play_hover_maybe)
Global.focus_first_button(menus[menu_stack.back()])
for m in menus.values():
- connect_button_sounds(m)
+ Global.connect_button_sounds(m)
if Global.fade_next:
Global.fade_next = false
@@ -27,7 +23,7 @@ func _ready():
func _input(_event):
if Input.is_action_just_pressed("ui_cancel") && menu_stack.size() > 1:
- play_click()
+ Sound.play_click()
go_back()
func goto(menu_name: String):
@@ -53,26 +49,3 @@ func show_menu(menu_name: String):
else:
menus[k].hide()
await transition.fade_in()
-
-func connect_button_sounds(node: Node):
- if node is Button:
- node.pressed.connect(play_click)
- if node is Button or node is LineEdit or node is Slider:
- node.mouse_entered.connect(play_hover)
- for c in node.get_children():
- connect_button_sounds(c)
-
-func play_click():
- click_sound.play()
-
-func play_hover():
- hover_sound.play()
-
-func play_hover_maybe(element):
- if Global.focus_auto_changed:
- Global.focus_auto_changed = false
- return
- if element is Button:
- if element.is_hovered():
- return
- play_hover()
diff --git a/client/menu/menu_manager.tscn b/client/menu/menu_manager.tscn
index c6959407..56cc6442 100644
--- a/client/menu/menu_manager.tscn
+++ b/client/menu/menu_manager.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=9 format=3 uid="uid://cd52sr1cmo8oj"]
+[gd_scene load_steps=7 format=3 uid="uid://cd52sr1cmo8oj"]
[ext_resource type="Script" path="res://menu/menu_manager.gd" id="1_c0rjm"]
[ext_resource type="PackedScene" uid="uid://l4vm07dtda4j" path="res://menu/menu_background.tscn" id="2_nf7b6"]
@@ -6,8 +6,6 @@
[ext_resource type="PackedScene" uid="uid://7mqbxa054bjv" path="res://menu/credits_menu.tscn" id="4_xhcd8"]
[ext_resource type="PackedScene" uid="uid://8ic77jmadadj" path="res://menu/settings_menu.tscn" id="5_lifj8"]
[ext_resource type="PackedScene" uid="uid://bg2d78ycorcqk" path="res://menu/scene_transition.tscn" id="6_p4u45"]
-[ext_resource type="AudioStream" uid="uid://dtr1khfyqr56o" path="res://menu/sounds/hover.ogg" id="7_82cmi"]
-[ext_resource type="AudioStream" uid="uid://cpyn511c5mtni" path="res://menu/sounds/click.ogg" id="8_qwknj"]
[node name="MenuManager" type="Control"]
layout_mode = 3
@@ -34,9 +32,3 @@ layout_mode = 1
[node name="SceneTransition" parent="." instance=ExtResource("6_p4u45")]
visible = false
layout_mode = 1
-
-[node name="Hover" type="AudioStreamPlayer" parent="."]
-stream = ExtResource("7_82cmi")
-
-[node name="Click" type="AudioStreamPlayer" parent="."]
-stream = ExtResource("8_qwknj")
diff --git a/client/project.godot b/client/project.godot
index d595d655..4113b60d 100644
--- a/client/project.godot
+++ b/client/project.godot
@@ -21,6 +21,7 @@ config/icon="res://icon.png"
Global="*res://global.gd"
Server="*res://server.gd"
+Sound="*res://audio/sound.tscn"
[input]