1
Fork 0
mirror of https://github.com/Steffo99/nanogolf.git synced 2024-11-24 17:14:19 +00:00
algodist-steffo-nanogolf/scenes/level_playlist.gd
2024-03-16 05:25:23 +01:00

26 lines
652 B
GDScript

extends Node
class_name LevelPlaylist
## The [GolfLevel]s that should be sequentially loaded on the [LevelManager].
@export var levels: Array[PackedScene] = []
## Emitted when the playlist has advanced to a new level, but before it is returned by [method advanced].
signal advanced(level: PackedScene)
## The index of the current level in [field levels].
var idx: int = -1
## Advances to the next level in the playlist and returns it as a [PackedScene].
##
## Returns null when the playlist is complete.
func advance() -> PackedScene:
idx += 1
if idx >= len(levels):
return null
var level = levels[idx]
advanced.emit(level)
return level