25 lines
796 B
GDScript
25 lines
796 B
GDScript
extends Node
|
|
## Parse-Vorlauf: lädt jedes Skript einmal und beendet sich mit Fehlercode.
|
|
## Ein Parse-Fehler in der Suite ließe Godot sonst bis zum Timeout hängen.
|
|
|
|
func _ready() -> void:
|
|
var fehler := 0
|
|
var anzahl := 0
|
|
for pfad in _skripte("res://scripts") + _skripte("res://tests"):
|
|
anzahl += 1
|
|
var s: Variant = load(pfad)
|
|
if s == null or not (s is GDScript) or not (s as GDScript).can_instantiate():
|
|
fehler += 1
|
|
print("PARSE FEHLER " + pfad)
|
|
print("Parse-Vorlauf: %d Skripte, %d Fehler" % [anzahl, fehler])
|
|
get_tree().quit(1 if fehler > 0 else 0)
|
|
|
|
|
|
func _skripte(ordner: String) -> Array:
|
|
var out: Array = []
|
|
for name in DirAccess.get_files_at(ordner):
|
|
if name.ends_with(".gd") and not name.begins_with("_"):
|
|
out.append(ordner + "/" + name)
|
|
out.sort()
|
|
return out
|