28 lines
1.1 KiB
GDScript
28 lines
1.1 KiB
GDScript
extends SceneTree
|
|
## Writes the game's own reference data as JSON, for the help pages
|
|
## (tools/site/make_guide.py): creatures (creature.gd KINDS), server settings
|
|
## (server_config.gd DEFAULTS and which can be changed live), and the fish.
|
|
## Items and recipes come straight from data/*.json.
|
|
## godot --headless --path . --script res://tools/site/dump_data.gd -- <out.json>
|
|
|
|
func _initialize() -> void:
|
|
var out_path := "user://site_data.json"
|
|
var args := OS.get_cmdline_user_args()
|
|
if not args.is_empty():
|
|
out_path = args[0]
|
|
var C: Script = load("res://scripts/creatures/creature.gd")
|
|
var SC: Script = load("res://scripts/net/server_config.gd")
|
|
var consts: Dictionary = SC.get_script_constant_map()
|
|
var d := {
|
|
"creatures": C.get_script_constant_map().get("KINDS", {}),
|
|
"server_defaults": consts.get("DEFAULTS", {}),
|
|
"server_public": consts.get("PUBLIC", []),
|
|
"server_settable": consts.get("SETTABLE", {}),
|
|
"version": String(ProjectSettings.get_setting("application/config/version", "")),
|
|
}
|
|
var f := FileAccess.open(out_path, FileAccess.WRITE)
|
|
f.store_string(JSON.stringify(d, "\t"))
|
|
f.close()
|
|
print("wrote ", out_path)
|
|
quit(0)
|