51 lines
1.1 KiB
GDScript3
51 lines
1.1 KiB
GDScript3
|
######################
|
||
|
### Jessist Script ###
|
||
|
######################
|
||
|
# This script is part of Jessist
|
||
|
# Jessist is licensed under GNU GPLv3
|
||
|
#
|
||
|
# This script manages the background music player
|
||
|
extends AudioStreamPlayer
|
||
|
|
||
|
export var volumeDefault = -5
|
||
|
export var volumePaused = -15
|
||
|
var timerActive = false
|
||
|
var reachedBaseVolume = false
|
||
|
export var verboseMessages = gameController.enableVerbosity
|
||
|
export var enableMusic = true
|
||
|
export var music = "Rocket"
|
||
|
|
||
|
func _ready():
|
||
|
if not enableMusic:
|
||
|
playing = false
|
||
|
return
|
||
|
print("=> Starting music")
|
||
|
stream = load("res://Sounds/Music/" + music + ".ogg")
|
||
|
play(0)
|
||
|
|
||
|
func _process(delta):
|
||
|
if not enableMusic:
|
||
|
return
|
||
|
if timerActive:
|
||
|
return
|
||
|
timerActive = true
|
||
|
yield(get_tree().create_timer(0.05), "timeout")
|
||
|
timerActive = false
|
||
|
|
||
|
volume_db = volume_db
|
||
|
if verboseMessages:
|
||
|
print("=> Current music volume: " + String(volume_db))
|
||
|
if not reachedBaseVolume:
|
||
|
if volume_db >= volumeDefault:
|
||
|
reachedBaseVolume = true
|
||
|
else:
|
||
|
volume_db += 1
|
||
|
return
|
||
|
if get_parent().get_node("Camera").gamePaused:
|
||
|
if volume_db <= volumePaused:
|
||
|
volume_db = volumePaused
|
||
|
else:
|
||
|
volume_db -= 1
|
||
|
else:
|
||
|
reachedBaseVolume = false
|