extends Node 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() #current_background.stop() 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