update audio manager

This commit is contained in:
2026-02-21 14:55:26 +01:00
parent e7e2d5ec1e
commit 42173ceca1

View File

@@ -5,8 +5,7 @@ const MAX_VOLUME = 24.
const DEFAULT_FADE_TIME : float = 0.5 const DEFAULT_FADE_TIME : float = 0.5
@onready var settings : SettingsData = GameInfo.settings_data @onready var settings : SettingsData = GameInfo.settings_data
var music_action : AudioAction var music_action : AudioAction
var ambiance_action : AudioAction var ambiance_action : AudioAction
@@ -16,50 +15,6 @@ var playing_ambiance : AudioStreamPlayer = null
var default_volumes := {} var default_volumes := {}
func _ready(): func _ready():
<<<<<<< HEAD
for player in get_all_players():
player.stop()
fetch_default_volumes()
setup_volume()
settings.sound_changed.connect(
func(_s) : setup_volume()
)
SceneManager.scene_loaded.connect(_on_change_scene)
Dialogic.timeline_started.connect(_on_timeline_started)
func _on_change_scene(scene : Scene):
play_ambiance()
match scene.scene_id:
"TITLE":
play_music("Title")
"REGION":
play_music("Region")
play_ambiance("Exterior")
"COCKPIT":
play_music("Ship")
"ASTRA":
play_ambiance("Astra")
func _on_timeline_started():
var timeline_name = Dialogic.current_timeline.resource_path.split("/")[-1].trim_suffix(".dtl")
play_ambiance()
match timeline_name:
"demeter_intro":
play_ambiance("Demeter")
"demeter_introV2":
play_ambiance("Demeter")
"demeter_midrun":
play_ambiance("Demeter")
"demeter_outro":
play_ambiance("Demeter")
"failure":
play_ambiance("Demeter")
# Timeline name et le nom du fichier de timeline, par exemple demeter_intro
# Amuse toi Niels ;)
=======
for player in get_all_players(): for player in get_all_players():
player.stop() player.stop()
@@ -169,31 +124,13 @@ func play_ambiance(player_name : String = "", from_random_time := false, fade_ti
func stop_ambiance(): func stop_ambiance():
ambiance_action = AudioStop.new() ambiance_action = AudioStop.new()
>>>>>>> 65645d976a98b5bfd030770764e72893cb8d9ccd
func fetch_default_volumes(): func fetch_default_volumes():
var all_players := get_all_players() var all_players := get_all_players()
for player in all_players: for player in all_players:
default_volumes[player] = player.volume_db default_volumes[player] = player.volume_db
<<<<<<< HEAD
func setup_volume():
for player in get_all_players():
player.volume_db = get_volume_from_parent(player)
func get_volume_from_parent(player : AudioStreamPlayer) -> float:
var settings_volume = 0.5
if player.get_parent() == %Ambiance:
settings_volume = settings.ambiance_volume
elif player.get_parent() == %Sfx:
settings_volume = settings.sfx_volume
elif player.get_parent() == %Musics:
settings_volume = settings.music_volume
return default_volumes[player] + lerp(MIN_VOLUME, MAX_VOLUME, settings_volume)
=======
func setup_players_bus(): func setup_players_bus():
for player in get_all_players(): for player in get_all_players():
if player.get_parent() == %Musics: if player.get_parent() == %Musics:
@@ -205,35 +142,29 @@ func setup_players_bus():
func get_volume(player : AudioStreamPlayer) -> float: func get_volume(player : AudioStreamPlayer) -> float:
return default_volumes[player] return default_volumes[player]
>>>>>>> 65645d976a98b5bfd030770764e72893cb8d9ccd
func get_all_players() -> Array[AudioStreamPlayer]: func get_all_players() -> Array[AudioStreamPlayer]:
var players : Array[AudioStreamPlayer] = [] var players : Array[AudioStreamPlayer] = []
players.append_array(get_players_from_node(%Musics)) players.append_array(get_players_from_node(%Musics))
players.append_array(get_players_from_node(%Ambiance)) players.append_array(get_players_from_node(%Ambiance))
players.append_array(get_players_from_node(%Sfx)) players.append_array(get_players_from_node(%Sfx))
return players return players
func get_players_from_node(node : Node) -> Array[AudioStreamPlayer]: func get_players_from_node(node : Node) -> Array[AudioStreamPlayer]:
var streams : Array[AudioStreamPlayer] = [] var streams : Array[AudioStreamPlayer] = []
for c in node.get_children(): for c in node.get_children():
if c is AudioStreamPlayer: if c is AudioStreamPlayer:
streams.append(c) streams.append(c)
return streams return streams
<<<<<<< HEAD func set_volume(player : AudioStreamPlayer, to : float, fade_time = DEFAULT_FADE_TIME) -> Tween:
func set_volume(player : AudioStreamPlayer, to : float, fade_time = default_fade_time) -> Tween:
var fade_tween : Tween = get_tree().create_tween()
=======
func set_volume(player : AudioStreamPlayer, to : float, fade_time := 0.0) -> Tween:
var fade_tween : Tween = get_tree().create_tween() var fade_tween : Tween = get_tree().create_tween()
>>>>>>> 65645d976a98b5bfd030770764e72893cb8d9ccd
fade_tween.tween_property(player, "volume_db", to, fade_time) fade_tween.tween_property(player, "volume_db", to, fade_time)
return fade_tween return fade_tween
func start_player(player: AudioStreamPlayer, from_random_time = false, fade_time = DEFAULT_FADE_TIME): func start_player(player: AudioStreamPlayer, from_random_time = false, fade_time = DEFAULT_FADE_TIME):
if player and not player.playing: if player and not player.playing:
@@ -253,54 +184,15 @@ func stop_player(player : AudioStreamPlayer, fade_time = DEFAULT_FADE_TIME):
player.volume_db = get_volume(player) player.volume_db = get_volume(player)
func reset_volume(player : AudioStreamPlayer): func reset_volume(player : AudioStreamPlayer):
<<<<<<< HEAD
player.volume_db = get_volume_from_parent(player)
=======
player.volume_db = get_volume(player) player.volume_db = get_volume(player)
>>>>>>> 65645d976a98b5bfd030770764e72893cb8d9ccd
func play_sfx(sfx_name : String): func play_sfx(sfx_name : String):
var player := %Sfx.find_child(sfx_name) as AudioStreamPlayer var player := %Sfx.find_child(sfx_name) as AudioStreamPlayer
if player: if player:
player.play() player.play()
else: else:
printerr("Sfx %s not found" % sfx_name) printerr("Sfx %s not found" % sfx_name)
<<<<<<< HEAD
func play_music(music_name : String = ""):
var old_music = playing_music
playing_music = null
if old_music:
await set_volume(old_music, MIN_VOLUME).finished
if old_music and old_music != playing_music:
old_music.stop()
reset_volume(old_music)
if music_name:
var player := %Musics.find_child(music_name) as AudioStreamPlayer
if player:
playing_music = player
player.play()
set_volume(player, get_volume_from_parent(player))
else:
printerr("Music %s not found" % music_name)
func play_ambiance(ambiance_name : String = ""):
var old_ambiance = playing_ambiance
playing_ambiance = null
if old_ambiance:
await set_volume(old_ambiance, MIN_VOLUME).finished
if old_ambiance and old_ambiance != playing_ambiance:
old_ambiance.stop()
reset_volume(old_ambiance)
if ambiance_name:
var player := %Ambiance.find_child(ambiance_name) as AudioStreamPlayer
if player:
playing_ambiance = player
player.play()
set_volume(player, get_volume_from_parent(player))
else:
printerr("Ambiance %s not found" % ambiance_name)
=======
class AudioAction: class AudioAction:
pass pass
@@ -321,4 +213,3 @@ class AudioLaunch extends AudioAction:
class AudioStop extends AudioAction: class AudioStop extends AudioAction:
pass pass
>>>>>>> 65645d976a98b5bfd030770764e72893cb8d9ccd