oh-my-git/scenes/levels.gd

44 lines
1 KiB
GDScript3
Raw Permalink Normal View History

2020-09-29 19:40:17 +02:00
extends Node
var chapters
func _ready():
reload()
func reload():
chapters = []
2023-09-06 16:04:23 +02:00
var dir = DirAccess.open("res://levels")
dir.list_dir_begin() # TODOConverter3To4 fill missing arguments https://github.com/godotengine/godot/pull/40547
2020-09-29 19:40:17 +02:00
var chapter_names = []
while true:
var file = dir.get_next()
if file == "":
break
elif not file.begins_with(".") and file != "sequence":
2020-09-29 19:40:17 +02:00
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:
2020-09-29 19:40:17 +02:00
var chapter = Chapter.new()
chapter.load("res://levels/%s" % c)
chapters.push_back(chapter)