## DataLoader.gd ## Utility for loading and caching JSON data files. class_name DataLoader static func load_json(path: String) -> Variant: var file = FileAccess.open(path, FileAccess.READ) if not file: push_error("DataLoader: cannot open " + path) return null var json = JSON.new() var err = json.parse(file.get_as_text()) file.close() if err != OK: push_error("DataLoader: parse error in " + path + " at line " + str(json.get_error_line())) return null return json.data static func load_towers(race: String) -> Array: var data = load_json("res://data/towers/" + race + ".json") return data if data is Array else [] static func load_waves() -> Array: var data = load_json("res://data/waves.json") return data if data is Array else [] static func load_sends() -> Array: var data = load_json("res://data/sends.json") return data if data is Array else []