Files
uniqlone/scripts/AudioArrayPlayer.gd
T

48 lines
716 B
GDScript

extends AudioStreamPlayer
class_name AudioArrayPlayer
signal all_finished()
export var queue := []
func stop():
queue.clear()
.stop()
func _ready():
self.connect("finished", self, "_finished")
func start():
if len(queue) > 0:
var new = queue[0]
if new is float:
get_tree().create_timer(new).connect("timeout", self, "_finish_delay")
return
stream = new
stream.loop
if !playing:
play()
else:
emit_signal("all_finished")
func _finish_delay():
next()
func next():
queue.pop_front()
start()
func _finished():
next()
func play_all(extra:=[]):
add_streams(extra)
start()
func add_stream(new:AudioStream):
queue.append(new)
func add_streams(new:Array):
queue.append_array(new)