Files
Kalulu/sources/utils/autoloads/music_manager.gd
T
Adrien Ufferte c6f7ef833d Cleaning
2026-04-17 10:10:58 +02:00

45 lines
1.1 KiB
GDScript

class_name MusicManagerClass
extends Node
enum Track {
TITLE,
GARDEN
}
const TRACKS: Array = [
preload("res://assets/music/title.mp3"),
preload("res://assets/music/garden.mp3")
]
@onready var music_player: AudioStreamPlayer = $MusicPlayer
func _ready() -> void:
Log.trace("MusicManager: Ready - starting title track")
play(Track.TITLE)
func _on_music_player_finished() -> void:
Log.trace("MusicManager: Track finished - restarting current stream")
music_player.stream_paused = false
music_player.play()
func play(track: Track) -> void:
if track < 0 or track >= Track.size():
Log.warn("MusicManager: Cannot play %d because this key is out of Track range" % track)
return
Log.trace("MusicManager: Requested play for track \"%s\"" % str(Track.keys()[track]))
if track >= TRACKS.size():
Log.warn("MusicManager: Cannot play %d because this key is out of TRACKS range" % track)
return
if TRACKS[track] == null:
Log.warn("MusicManager: Cannot play %d because it is null" % track)
return
music_player.stream = TRACKS[track]
music_player.play()
func stop() -> void:
music_player.stop()