28 lines
877 B
GDScript
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 []
|