29 lines
573 B
GDScript3
Raw Normal View History

extends Resource
class_name Playlist
@export var music: Array[String]
var randomized: Array[int]
var index: int = 0
func init(randomify: bool) -> void:
for i in range(music.size()):
randomized.append(i)
if randomify:
shuffle()
func getNext() -> String:
var ret: String = music[randomized[index]]
index += 1
if index >= randomized.size():
index = 0
return ret
func shuffle() -> void:
var shuffled: Array[int] = []
for i in range(randomized.size()):
var x: int = randomized.pick_random()
randomized.erase(x)
shuffled.append(x)
randomized = shuffled