fix post-proto
* ajout d'un fondu de musique au changement de phase * résolution de bugs en tout genre
This commit is contained in:
@@ -36,7 +36,7 @@ stream_0/volume = -60.0
|
||||
process_mode = 3
|
||||
script = ExtResource("1_ji160")
|
||||
ambiance_volume = -3.0
|
||||
garden_phases_scores = Array[int]([0, 10, 30])
|
||||
garden_phases_scores = Array[int]([0, 1, 30])
|
||||
playing_ambiances = [NodePath("Ambiance/Default")]
|
||||
|
||||
[node name="Ambiance" type="Node" parent="."]
|
||||
|
||||
@@ -27,32 +27,41 @@ func _ready():
|
||||
is_ready = true
|
||||
|
||||
func setup_volume():
|
||||
for c in %Ambiance.get_children():
|
||||
var player = c as AudioStreamPlayer
|
||||
player.volume_db = ambiance_volume if playing_ambiances.find(player) != -1 else MIN_VOLUME
|
||||
|
||||
for c in %Musics.get_children():
|
||||
var player = c as AudioStreamPlayer
|
||||
player.volume_db = music_volume if playing_musics.find(player) != -1 else MIN_VOLUME
|
||||
|
||||
for player in get_all_audio_stream():
|
||||
for player in get_all_audio_streams():
|
||||
player.volume_db = get_volume_from_parent(player) if playing_ambiances.find(player) != -1 else MIN_VOLUME
|
||||
player.play()
|
||||
setup_phase(player)
|
||||
|
||||
func get_volume_from_parent(player : AudioStreamPlayer) -> float:
|
||||
if player.get_parent() == %Ambiance:
|
||||
return ambiance_volume
|
||||
return music_volume
|
||||
|
||||
func update_phase():
|
||||
for player in get_all_audio_stream():
|
||||
for player in get_all_audio_streams():
|
||||
var playing : bool = player.volume_db != MIN_VOLUME
|
||||
if playing:
|
||||
await set_volume(player, MIN_VOLUME).finished
|
||||
setup_phase(player)
|
||||
if playing:
|
||||
set_volume(player, get_volume_from_parent(player))
|
||||
|
||||
func get_all_audio_stream() -> Array[AudioStreamPlayer]:
|
||||
func get_all_audio_streams() -> Array[AudioStreamPlayer]:
|
||||
var all_audio_stream : Array[AudioStreamPlayer] = []
|
||||
var all_children = %Ambiance.get_children()
|
||||
all_children.append_array(%Musics.get_children())
|
||||
all_audio_stream.append_array(get_audio_streams_from_node(%Musics))
|
||||
all_audio_stream.append_array(get_audio_streams_from_node(%Ambiance))
|
||||
|
||||
for c in all_children:
|
||||
if c is AudioStreamPlayer:
|
||||
all_audio_stream.append(c)
|
||||
return all_audio_stream
|
||||
|
||||
func get_audio_streams_from_node(node : Node) -> Array[AudioStreamPlayer]:
|
||||
var streams : Array[AudioStreamPlayer] = []
|
||||
|
||||
for c in node.get_children():
|
||||
if c is AudioStreamPlayer:
|
||||
streams.append(c)
|
||||
return streams
|
||||
|
||||
|
||||
func _on_current_planet_data_updated(planet_data : PlanetData):
|
||||
if planet_data:
|
||||
update_garden_phase(planet_data)
|
||||
@@ -64,7 +73,8 @@ func update_garden_phase(planet_data : PlanetData):
|
||||
if planet_data.garden_score >= garden_phases_scores[i] and i > garden_phase:
|
||||
phase = i
|
||||
|
||||
update_phase()
|
||||
if garden_phase != phase:
|
||||
update_phase()
|
||||
|
||||
garden_phase = phase
|
||||
|
||||
@@ -95,7 +105,6 @@ func setup_phase(music : AudioStreamPlayer):
|
||||
0. if i == phase_stream_id else MIN_VOLUME
|
||||
)
|
||||
|
||||
|
||||
func set_volume(music : AudioStreamPlayer, to : float, fade_time = default_fade_time) -> Tween:
|
||||
var fade_tween : Tween = get_tree().create_tween()
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ colors = PackedColorArray(1, 1, 1, 0.65882355, 1, 1, 1, 0.72156864, 1, 1, 1, 0)
|
||||
[node name="Particles" type="CPUParticles2D"]
|
||||
amount = 1
|
||||
texture = ExtResource("1_88fy1")
|
||||
randomness = 0.3
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 30.0
|
||||
gravity = Vector2(0, -20)
|
||||
|
||||
Reference in New Issue
Block a user