diff options
Diffstat (limited to 'SoundManager.gd')
-rw-r--r-- | SoundManager.gd | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/SoundManager.gd b/SoundManager.gd index de8230e..b86c28d 100644 --- a/SoundManager.gd +++ b/SoundManager.gd @@ -1,6 +1,39 @@ extends Node -func play(name: String): - var sound = get_node(name) as AudioStreamPlayer +var current_background: AudioStreamPlayer + + +func play_sound(sound_name: String): + var sound = get_node(sound_name) as AudioStreamPlayer sound.play() + + +func play_background(sound_name: String): + var sound = get_node(sound_name) as AudioStreamPlayer + + if sound != current_background: + if current_background: + current_background.stop() + + current_background = sound + sound.play() + + # sound == current_background + elif not current_background.playing: + current_background.play() + + +func fade_out(sound: AudioStreamPlayer): + var previous_volume = sound.volume_db + + var tween = get_tree().create_tween() + tween.tween_property(sound, "volume_db", -80, 1.0).set_ease(Tween.EASE_OUT) + + # reset volume + tween.finished.connect(func(): + sound.stop() + sound.volume_db = previous_volume + ) + + return tween |