summaryrefslogtreecommitdiff
path: root/SoundManager.gd
diff options
context:
space:
mode:
Diffstat (limited to 'SoundManager.gd')
-rw-r--r--SoundManager.gd37
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