7const DEFAULT_PATH :=
"res://data/build_info.json"
8const DataCacheManager = preload(
"res://scripts/systems/dataCacheManager/data_cache_manager.gd")
10var data:Dictionary = {
13 "launch_scene":
"res://scenes/start_menu.tscn"
15var data_cache_manager = DataCacheManager.new()
19func load_info(file_path:String = DEFAULT_PATH) -> Dictionary:
20 var parsed := data_cache_manager.load_json(file_path)
21 for key
in parsed.keys():
22 data[key] = parsed[key]
23 return data.duplicate(true)
27func get_label(prefix:String =
"Build") -> String:
28 var build_date := _resolved_build_date()
30 build_date = _runtime_build_date()
31 return "%s %s" % [prefix, build_date]
35func get_launch_scene(default_scene:String =
"res://scenes/start_menu.tscn") -> String:
36 var launch_scene := str(data.get(
"launch_scene", default_scene))
37 if launch_scene.strip_edges() ==
"":
42func get_state() -> Dictionary:
43 return data.duplicate(true)
47func get_cache_stats() -> Dictionary:
48 return data_cache_manager.get_cache_stats()
51func _resolved_build_date() -> String:
52 var channel := str(data.get(
"channel",
"local"))
53 if channel ==
"local" or channel.begins_with(
"local_"):
54 return _runtime_build_date()
55 return str(data.get(
"build_date", _runtime_build_date()))
58func _runtime_build_date() -> String:
59 var date := Time.get_date_dict_from_system()
60 return "%04d%02d%02d" % [int(date.get(
"year", 0)), int(date.get(
"month", 0)), int(date.get(
"day", 0))]