extends Node var chapters func _ready(): reload() func reload(): chapters = [] var dir = Directory.new() dir.open(game.levels_dir) 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(game.levels_dir + "/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(game.levels_dir + "/%s" % c) chapters.push_back(chapter)