xanarch-td/scripts/data/DataLoader.gd
2026-06-03 21:53:16 -04:00

28 lines
877 B
GDScript

## 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 []