Skip to content

Commit 317810e

Browse files
authored
Allow setting the UI sound volume independently (#29)
1 parent 122bf01 commit 317810e

2 files changed

Lines changed: 25 additions & 10 deletions

File tree

addons/sound_manager/sound_manager.gd

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,9 @@ func get_sound_volume() -> float:
5858
return db_to_linear(AudioServer.get_bus_volume_db(AudioServer.get_bus_index(sound_effects.bus)))
5959

6060

61-
func get_ui_sound_volume() -> float:
62-
return db_to_linear(AudioServer.get_bus_volume_db(AudioServer.get_bus_index(ui_sound_effects.bus)))
63-
64-
6561
func set_sound_volume(volume_between_0_and_1: float) -> void:
6662
_show_shared_bus_warning()
6763
AudioServer.set_bus_volume_db(AudioServer.get_bus_index(sound_effects.bus), linear_to_db(volume_between_0_and_1))
68-
AudioServer.set_bus_volume_db(AudioServer.get_bus_index(ui_sound_effects.bus), linear_to_db(volume_between_0_and_1))
6964

7065

7166
func play_sound(resource: AudioStream, override_bus: String = "") -> AudioStreamPlayer:
@@ -82,6 +77,24 @@ func stop_sound(resource: AudioStream) -> void:
8277
return sound_effects.stop(resource)
8378

8479

80+
func set_default_sound_bus(bus: String) -> void:
81+
sound_effects.bus = bus
82+
83+
84+
#endregion
85+
86+
#region UI sounds
87+
88+
89+
func get_ui_sound_volume() -> float:
90+
return db_to_linear(AudioServer.get_bus_volume_db(AudioServer.get_bus_index(ui_sound_effects.bus)))
91+
92+
93+
func set_ui_sound_volume(volume_between_0_and_1: float) -> void:
94+
_show_shared_bus_warning()
95+
AudioServer.set_bus_volume_db(AudioServer.get_bus_index(ui_sound_effects.bus), linear_to_db(volume_between_0_and_1))
96+
97+
8598
func play_ui_sound(resource: AudioStream, override_bus: String = "") -> AudioStreamPlayer:
8699
return ui_sound_effects.play(resource, override_bus)
87100

@@ -96,10 +109,6 @@ func stop_ui_sound(resource: AudioStream) -> void:
96109
return ui_sound_effects.stop(resource)
97110

98111

99-
func set_default_sound_bus(bus: String) -> void:
100-
sound_effects.bus = bus
101-
102-
103112
func set_default_ui_sound_bus(bus: String) -> void:
104113
ui_sound_effects.bus = bus
105114

@@ -209,6 +218,8 @@ func set_default_music_bus(bus: String) -> void:
209218

210219

211220
func _show_shared_bus_warning() -> void:
221+
if "Master" in [music.bus, sound_effects.bus, ui_sound_effects.bus, ambient_sounds.bus]:
222+
push_warning("Using the Master sound bus directly isn't recommended.")
212223
if music.bus == sound_effects.bus or music.bus == ui_sound_effects.bus:
213224
push_warning("Both music and sounds are using the same bus: %s" % music.bus)
214225

docs/Sounds.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ Playing sound effects is broken up into playing general sounds (ie. in the game
1212

1313
- **`SoundManager.set_sound_volume(volume_between_0_and_1: float) -> void:`**
1414

15-
Sets the volume for sounds (both general and UI sounds) using a given float between 0 and 1.
15+
Sets the volume for sounds using a given float between 0 and 1.
16+
17+
- **`SoundManager.set_ui_sound_volume(volume_between_0_and_1: float) -> void:`**
18+
19+
Sets the volume for UI sounds using a given float between 0 and 1.
1620

1721
- **`SoundManager.play_sound(resource: AudioStream, override_bus: String = "") -> AudioStreamPlayer`**
1822

0 commit comments

Comments
 (0)