Files
ludum_dare_46/src/Autoloads/SoundController.gd
Conrad d12d69f083 Minor Cleanup
- Renamed SoundController
- Cleaned up spacings
- File endings
2020-04-21 03:14:00 +02:00

76 lines
1.5 KiB
GDScript

extends Node
const EFFECT_LAYERS:int = 20
var _effect: Array = []
var _music: AudioStreamPlayer
# Playback Options
var _loop: bool = true
# Settings that should be put into an Options script
var _music_volume:int = -12
var _effects_volume:int = -12
func _ready() -> void:
_music = AudioStreamPlayer.new()
_music.bus = "BGM"
_music.volume_db= _music_volume
_music.connect("finished",self,"sig_music_finished")
add_child(_music)
for i in range(0,EFFECT_LAYERS):
_effect.append(AudioStreamPlayer.new())
_effect[i].volume_db= _effects_volume
_effect[i].bus = str("Effects",i)
_effect[i].connect("finished", self, "sig_effect_finished")
add_child(_effect[i])
func pub_play_music(path:String,should_loop:bool=true)-> void:
var stream = load(path)
# AudioServer.set_bus_mute(1, true)
_music.stop()
_music.stream = stream
_music.play()
_loop=should_loop
func pub_play_effect(path:String,channel:int=0)-> void:
var stream = load(path)
# AudioServer.set_bus_mute(1, true)
_effect[channel].stop()
_effect[channel].stream = stream
_effect[channel].play()
func pub_stop_music()-> void:
_music.stop()
func pub_stop_effect(channel:int)-> void:
_effect[channel].stop()
func pub_stop_effects()-> void:
for i in range(0,EFFECT_LAYERS):
_effect[i].stop()
func pub_stop_all() -> void:
pub_stop_music()
pub_stop_effects()
func sig_music_finished() -> void:
# AudioServer.set_bus_mute(1, false)
if _loop :
_music.stop()
_music.play()
pass
func sig_effect_finished() -> void:
# AudioServer.set_bus_mute(1, false)
pass