Files
uniqlone/scripts/AudioArrayPlayer.gd
2026-06-13 16:08:36 -04:00

48 lines
736 B
GDScript

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