oh-my-git/levels.gd

44 lines
966 B
GDScript

extends Node
var chapters
func _ready():
reload()
func reload():
chapters = []
var dir = Directory.new()
dir.open("res://levels")
dir.list_dir_begin()
var chapter_names = []
while true:
var file = dir.get_next()
if file == "":
break
elif not file.begins_with(".") and file != "sequence":
chapter_names.append(file)
dir.list_dir_end()
chapter_names.sort()
var final_chapter_sequence = []
var chapter_sequence = Array(helpers.read_file("res://levels/sequence", "").split("\n"))
for chapter in chapter_sequence:
if chapter == "":
continue
if not chapter_names.has(chapter):
helpers.crash("Chapter '%s' is specified in the sequence, but could not be found" % chapter)
chapter_names.erase(chapter)
final_chapter_sequence.push_back(chapter)
final_chapter_sequence += chapter_names
for c in final_chapter_sequence:
var chapter = Chapter.new()
chapter.load("res://levels/%s" % c)
chapters.push_back(chapter)