62 lines
1.7 KiB
GDScript3
62 lines
1.7 KiB
GDScript3
|
extends VBoxContainer
|
||
|
|
||
|
var songs_list = []
|
||
|
var current_song = ""
|
||
|
var current_position = 0.0
|
||
|
var popup
|
||
|
|
||
|
func _ready():
|
||
|
for song in $Songs.get_children():
|
||
|
songs_list.append( song.name )
|
||
|
if $Songs.get_child_count() > 0:
|
||
|
current_song = songs_list[0]
|
||
|
|
||
|
|
||
|
popup = $SongsSelector.get_popup()
|
||
|
for song in songs_list:
|
||
|
popup.add_item( song )
|
||
|
get_node( "Songs" ).get_node( song ).connect( "finished", self, "_on_song_finished" )
|
||
|
$SongsSelector.text = current_song
|
||
|
|
||
|
func set_play():
|
||
|
if get_node( "Songs" ).get_node( current_song ):
|
||
|
get_node( "Songs" ).get_node( current_song ).play( current_position )
|
||
|
$Buttons/Pause.text = "Pause"
|
||
|
$Title.text = "Musiques (Played):"
|
||
|
|
||
|
func set_pause():
|
||
|
if get_node( "Songs" ).get_node( current_song ):
|
||
|
current_position = get_node( "Songs" ).get_node( current_song ).get_playback_position()
|
||
|
get_node( "Songs" ).get_node( current_song ).stop()
|
||
|
else:
|
||
|
current_position = 0.0
|
||
|
|
||
|
$Buttons/Pause.text = "Play"
|
||
|
$Title.text = "Musiques (Paused):"
|
||
|
|
||
|
func set_stop():
|
||
|
if get_node( "Songs" ).get_node( current_song ):
|
||
|
get_node( "Songs" ).get_node( current_song ).stop()
|
||
|
current_position = 0.0
|
||
|
$Buttons/Pause.pressed = false
|
||
|
$Buttons/Pause.text = "Play"
|
||
|
$Title.text = "Musiques (Stopped):"
|
||
|
|
||
|
func _on_Pause_toggled(button_pressed):
|
||
|
if button_pressed:
|
||
|
set_play()
|
||
|
else:
|
||
|
set_pause()
|
||
|
|
||
|
func _on_Stop_pressed():
|
||
|
set_stop()
|
||
|
|
||
|
func _on_SongsSelector_item_selected(ID):
|
||
|
var new_song = popup.get_item_text(ID)
|
||
|
if not current_song == new_song:
|
||
|
set_stop()
|
||
|
current_song = popup.get_item_text(ID)
|
||
|
|
||
|
func _on_song_finished():
|
||
|
print("test")
|
||
|
set_stop()
|