Music playback continues quietly while paused

This commit is contained in:
Rob Kelly 2025-06-27 14:37:51 -06:00
parent dc26836020
commit 05edbf5d27
4 changed files with 18 additions and 1 deletions

View File

@ -1,6 +1,7 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://caten2l7w1h6w"] [gd_resource type="AudioBusLayout" format=3 uid="uid://caten2l7w1h6w"]
[resource] [resource]
bus/0/volume_db = -0.130497
bus/1/name = &"Music" bus/1/name = &"Music"
bus/1/solo = false bus/1/solo = false
bus/1/mute = false bus/1/mute = false

View File

@ -85,6 +85,7 @@ offset_bottom = 76.0
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
bus = &"Music" bus = &"Music"
[connection signal="pause" from="HUDTool/Rumbler/Position/HUDElement/DeviceScreenMask/SubViewportContainer/SubViewport/ScreenTransform/MP3Controller" to="." method="pause_playback"] [connection signal="pause" from="HUDTool/Rumbler/Position/HUDElement/DeviceScreenMask/SubViewportContainer/SubViewport/ScreenTransform/MP3Controller" to="." method="pause_playback"]

View File

@ -1,6 +1,8 @@
class_name World extends Node class_name World extends Node
## Access and flow control for the game world. ## Access and flow control for the game world.
const MUSIC_BUS_IDX := 1
@export var pause_enabled := true @export var pause_enabled := true
@export var save_state: SaveState @export var save_state: SaveState
@ -8,6 +10,8 @@ class_name World extends Node
@export var manager: WorldManager @export var manager: WorldManager
@export var spook_manager: SpookManager @export var spook_manager: SpookManager
@export var pause_music_effect: AudioEffect
@export_category("Game Scenes") @export_category("Game Scenes")
@export var initial_level: PackedScene @export var initial_level: PackedScene
@ -54,6 +58,9 @@ func _unhandled_input(event: InputEvent) -> void:
func pause() -> void: func pause() -> void:
# Quiet the music
AudioServer.add_bus_effect(MUSIC_BUS_IDX, pause_music_effect, 0)
get_tree().paused = true get_tree().paused = true
var pause_menu: Control = pause_scene.instantiate() var pause_menu: Control = pause_scene.instantiate()
ui_root.add_child(pause_menu) ui_root.add_child(pause_menu)
@ -63,6 +70,10 @@ func pause() -> void:
func unpause() -> void: func unpause() -> void:
get_tree().paused = false get_tree().paused = false
# Un-quiet the music
# NOTE: if any other bus effects are added while paused, this could become inconsistent
AudioServer.remove_bus_effect(MUSIC_BUS_IDX, 0)
func load_level(level: PackedScene) -> void: func load_level(level: PackedScene) -> void:
for c: Node in level_root.get_children(): for c: Node in level_root.get_children():

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://884jqafhtrv0"] [gd_scene load_steps=9 format=3 uid="uid://884jqafhtrv0"]
[ext_resource type="Script" uid="uid://cgqmhtemibxc5" path="res://src/world/world.gd" id="1_1k4gi"] [ext_resource type="Script" uid="uid://cgqmhtemibxc5" path="res://src/world/world.gd" id="1_1k4gi"]
[ext_resource type="Resource" uid="uid://tgac5tnfx56r" path="res://src/world/world_manager.tres" id="2_5kmgb"] [ext_resource type="Resource" uid="uid://tgac5tnfx56r" path="res://src/world/world_manager.tres" id="2_5kmgb"]
@ -8,10 +8,14 @@
[ext_resource type="PackedScene" uid="uid://c0uitm5cg88h1" path="res://src/ui/menus/kill_screen/kill_screen.tscn" id="6_l0av5"] [ext_resource type="PackedScene" uid="uid://c0uitm5cg88h1" path="res://src/ui/menus/kill_screen/kill_screen.tscn" id="6_l0av5"]
[ext_resource type="PackedScene" uid="uid://brknr57xc2cp0" path="res://src/ui/elements/save_icon/save_icon.tscn" id="7_5kmgb"] [ext_resource type="PackedScene" uid="uid://brknr57xc2cp0" path="res://src/ui/elements/save_icon/save_icon.tscn" id="7_5kmgb"]
[sub_resource type="AudioEffectAmplify" id="AudioEffectAmplify_5kmgb"]
volume_db = -14.0
[node name="World" type="Node"] [node name="World" type="Node"]
script = ExtResource("1_1k4gi") script = ExtResource("1_1k4gi")
manager = ExtResource("2_5kmgb") manager = ExtResource("2_5kmgb")
spook_manager = ExtResource("3_l0av5") spook_manager = ExtResource("3_l0av5")
pause_music_effect = SubResource("AudioEffectAmplify_5kmgb")
initial_level = ExtResource("4_5kmgb") initial_level = ExtResource("4_5kmgb")
pause_scene = ExtResource("2_6fy3g") pause_scene = ExtResource("2_6fy3g")
kill_screen_scene = ExtResource("6_l0av5") kill_screen_scene = ExtResource("6_l0av5")