From 62a4288621847a02470229346934b39f2023283b Mon Sep 17 00:00:00 2001 From: Tiger Date: Wed, 21 Jan 2026 17:03:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/autoload/DownloadManager.gd | 43 ++++++++++++++++++++++++--- user/download/source/assets/list.json | 0 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 user/download/source/assets/list.json diff --git a/scripts/autoload/DownloadManager.gd b/scripts/autoload/DownloadManager.gd index c1e47fe..6076e9c 100644 --- a/scripts/autoload/DownloadManager.gd +++ b/scripts/autoload/DownloadManager.gd @@ -7,17 +7,43 @@ func create_file(file_path: String) -> void: var base_dir = file_path.get_base_dir() if !DirAccess.dir_exists_absolute(base_dir): DirAccess.make_dir_recursive_absolute(base_dir) - FileAccess.open(file_path, FileAccess.WRITE) + var file = FileAccess.open(file_path, FileAccess.WRITE) + file.close() func download_file(server_path: String, local_path: String) -> void: var http = HTTPRequest.new() add_child(http) - var file_path = "user://downloads_test/" + local_path + var file_path = local_path if !FileAccess.file_exists(file_path): create_file(file_path) - http.set_download_file(file_path) + http.download_file = file_path http.request(server_path) +func download_defs(type: String, origin: String) -> void: + var list_file = FileAccess.open("user://download/source/%ss/list.json" % [type], FileAccess.READ) + var list_text = list_file.get_as_text() + print(list_text) + var list = JSON.parse_string(list_text) + if !list: + return + for k in list: + var filename = list[k] + download_file("%s%s/id/%s" % [origin, type, k], "user://download/source/%ss/%s.json" % [type, filename]) + +func download_assets(origin: String) -> void: + var list_file = FileAccess.open("user://download/source/assets/list.json", FileAccess.READ) + var list_text = list_file.get_as_text() + print(list_text) + var list = JSON.parse_string(list_text) + if !list: + return + for k in list["pics"]: + var filename = list["pics"][k] + download_file("%sasset/pic/%s" % [origin, k], "user://download/source/assets/pics/%s" % [filename]) + for k in list["sounds"]: + var filename = list["sounds"][k] + download_file("%sasset/sound/%s" % [origin, k], "user://download/source/assets/sounds/%s" % [filename]) + func download_from_origin() -> int: var origin = GameManager.data_origin var http = HTTPRequest.new() @@ -32,7 +58,16 @@ func download_from_origin() -> int: if origin[-1] != "/": origin = origin + "/" - download_file(origin + "card/id/Oxygen", "test_Oxygen.json") + download_file(origin + "card/list", "user://download/source/cards/list.json") + download_file(origin + "reaction/list", "user://download/source/reactions/list.json") + download_file(origin + "matter/list", "user://download/source/matters/list.json") + download_file(origin + "asset/list", "user://download/source/assets/list.json") + + download_defs("card", origin) + download_defs("reaction", origin) + download_defs("matter", origin) + + download_assets(origin) return 0 diff --git a/user/download/source/assets/list.json b/user/download/source/assets/list.json new file mode 100644 index 0000000..e69de29