Merge pull request #6 from xX-Void-Xx/music-manager-improvements

Small improvements to music manager
This commit is contained in:
thelastflapjack 2022-09-08 10:26:51 +01:00 committed by GitHub
commit a1ebed3d36
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 26 deletions

View file

@ -6,6 +6,7 @@ extends Node
### Enums ###
enum Tracks {
NONE,
MAIN_MENU,
ON_RANGE,
OFF_RANGE,
@ -13,7 +14,7 @@ enum Tracks {
### Private variables ###
var _current_track_id: int = -1
var _current_track_id: int = Tracks.NONE
### Onready variables ###
@ -28,15 +29,15 @@ onready var _track_stream_players: Dictionary = {
# Public Methods #
############################
func transition_to_track(new_track_id: int, cross_fade: bool=true, fade_time: float=1.5, transition_delay: float=0.0) -> void:
func transition_to_track(new_track_id: int, fade_time: float=1.5, transition_delay: float=0.0) -> void:
assert(
_track_stream_players.keys().has(new_track_id),
"MusicManager Error: Tried to transition to non-existent track."
)
if _current_track_id != -1:
if _current_track_id != Tracks.NONE:
_track_fade(_current_track_id, false, fade_time)
if (not cross_fade) and (transition_delay > 0.0):
if transition_delay > 0.0:
yield(get_tree().create_timer(transition_delay), "timeout")
_track_fade(new_track_id, true, fade_time)
_current_track_id = new_track_id
@ -48,27 +49,19 @@ func transition_to_track(new_track_id: int, cross_fade: bool=true, fade_time: fl
func _track_fade(track_id: int, fade_in: bool, fade_time: float) -> void:
var track_stream_player: AudioStreamPlayer = _track_stream_players[track_id]
var tween: SceneTreeTween = create_tween()
var volume_tweener: PropertyTweener
# warning-ignore:unused_variable
var play_tweener: CallbackTweener
var tween: SceneTreeTween = create_tween().set_trans(Tween.TRANS_SINE)
tween = tween.set_parallel(false)
if fade_in:
play_tweener = tween.tween_callback(track_stream_player, "play")
volume_tweener = tween.tween_property(
tween.tween_callback(track_stream_player, "play")
tween.tween_property(
track_stream_player, "volume_db", 0.0, fade_time
)
volume_tweener = volume_tweener.from(-80.0)
volume_tweener = volume_tweener.set_ease(Tween.EASE_OUT)
volume_tweener = volume_tweener.set_trans(Tween.TRANS_EXPO)
).from(-20.0).set_ease(Tween.EASE_IN)
else:
volume_tweener = tween.tween_property(
track_stream_player, "volume_db", -80.0, fade_time
)
volume_tweener = volume_tweener.from(0.0)
volume_tweener = volume_tweener.set_ease(Tween.EASE_IN)
volume_tweener = volume_tweener.set_trans(Tween.TRANS_EXPO)
play_tweener = tween.tween_callback(track_stream_player, "stop")
tween.tween_property(
track_stream_player, "volume_db", -20.0, fade_time
).from(0.0).set_ease(Tween.EASE_OUT)
tween.tween_callback(track_stream_player, "stop")
tween.play()

View file

@ -42,7 +42,7 @@ onready var _audio_player_run_end: AudioStreamPlayer = $AudioStreamRunEnd
############################
func _ready() -> void:
MusicManager.transition_to_track(
MusicManager.Tracks.OFF_RANGE, true, 3
MusicManager.Tracks.OFF_RANGE, 3
)
_player.camera_system = _camera_system
@ -164,7 +164,7 @@ func _connect_signals() -> void:
func _start_run() -> void:
MusicManager.transition_to_track(
MusicManager.Tracks.ON_RANGE, true, 1
MusicManager.Tracks.ON_RANGE, 1
)
_audio_player_run_start.play()
_is_player_on_range = true
@ -195,7 +195,7 @@ func _update_and_show_run_summary(missed_enemy_penalty_time_total: float, hit_fr
func _finish_run() -> void:
MusicManager.transition_to_track(
MusicManager.Tracks.OFF_RANGE, true, 3
MusicManager.Tracks.OFF_RANGE, 3
)
_audio_player_run_end.play()
_is_player_on_range = false

View file

@ -3,7 +3,7 @@ extends MultiPageUIPage
func _ready() -> void:
MusicManager.transition_to_track(
MusicManager.Tracks.MAIN_MENU, true, 3
MusicManager.Tracks.MAIN_MENU, 3
)