29 lines
568 B
GDScript3
29 lines
568 B
GDScript3
![]() |
extends Resource
|
||
|
|
||
|
class_name Playlist
|
||
|
|
||
|
@export var music: Array[String]
|
||
|
var randomized: Array[int]
|
||
|
var index: int = 0
|
||
|
|
||
|
func init(randomize: bool) -> void:
|
||
|
for i in range(music.size()):
|
||
|
randomized.append(i)
|
||
|
if randomize:
|
||
|
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
|