feat: 初步完成兼容uuid的下载功能(有bug,下载不成功)

This commit is contained in:
2026-02-08 21:18:57 +08:00
parent 5b4cc29e82
commit d6113daea9
2 changed files with 27 additions and 14 deletions
+26 -13
View File
@@ -1,5 +1,7 @@
extends Node extends Node
var uuid: String
func create_file(file_path: String) -> void: func create_file(file_path: String) -> void:
var base_dir = file_path.get_base_dir() var base_dir = file_path.get_base_dir()
if !DirAccess.dir_exists_absolute(base_dir): if !DirAccess.dir_exists_absolute(base_dir):
@@ -16,8 +18,15 @@ func download_file(server_path: String, local_path: String) -> void:
http.download_file = file_path http.download_file = file_path
http.request(server_path) http.request(server_path)
func get_uuid() -> void:
var index_file = FileAccess.open("user://download/temp/index.json", FileAccess.READ)
var index_text = index_file.get_as_text()
var content = JSON.parse_string(index_text)
index_file.close()
uuid = content["uuid"]
func download_defs(type: String, origin: String) -> void: func download_defs(type: String, origin: String) -> void:
var list_file = FileAccess.open("user://download/source/%ss/list.json" % [type], FileAccess.READ) var list_file = FileAccess.open("user://download/%s/%ss/list.json" % [uuid, type], FileAccess.READ)
var list_text = list_file.get_as_text() var list_text = list_file.get_as_text()
var list = JSON.parse_string(list_text) var list = JSON.parse_string(list_text)
list_file.close() list_file.close()
@@ -25,10 +34,10 @@ func download_defs(type: String, origin: String) -> void:
return return
for k in list: for k in list:
var filename = list[k] var filename = list[k]
download_file("%s%s/id/%s" % [origin, type, k], "user://download/source/%ss/%s.json" % [type, filename]) download_file("%s%s/id/%s" % [origin, type, k], "user://download/%s/%ss/%s.json" % [uuid, type, filename])
func download_assets(origin: String) -> void: func download_assets(origin: String) -> void:
var list_file = FileAccess.open("user://download/source/assets/list.json", FileAccess.READ) var list_file = FileAccess.open("user://download/%s/assets/list.json" % [uuid], FileAccess.READ)
var list_text = list_file.get_as_text() var list_text = list_file.get_as_text()
var list = JSON.parse_string(list_text) var list = JSON.parse_string(list_text)
list_file.close() list_file.close()
@@ -36,10 +45,10 @@ func download_assets(origin: String) -> void:
return return
for k in list["pics"]: for k in list["pics"]:
var filename = list["pics"][k] var filename = list["pics"][k]
download_file("%sasset/pic/%s" % [origin, k], "user://download/source/assets/pics/%s" % [filename]) download_file("%sasset/pic/%s" % [origin, k], "user://download/%s/assets/pics/%s" % [uuid, filename])
for k in list["sounds"]: for k in list["sounds"]:
var filename = list["sounds"][k] var filename = list["sounds"][k]
download_file("%sasset/sound/%s" % [origin, k], "user://download/source/assets/sounds/%s" % [filename]) download_file("%sasset/sound/%s" % [origin, k], "user://download/%s/assets/sounds/%s" % [uuid, filename])
func download_from_origin() -> int: func download_from_origin() -> int:
var origin = GameManager.data_origin var origin = GameManager.data_origin
@@ -54,11 +63,15 @@ func download_from_origin() -> int:
if origin[-1] != "/": if origin[-1] != "/":
origin = origin + "/" origin = origin + "/"
#download_file(origin + "index", "user://download/temp/index.json")
download_file(origin + "card/list", "user://download/source/cards/list.json") # get_uuid()
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 + "card/list", "user://download/%s/cards/list.json" % [uuid])
download_file(origin + "asset/list", "user://download/source/assets/list.json") download_file(origin + "reaction/list", "user://download/%s/reactions/list.json" % [uuid])
download_file(origin + "matter/list", "user://download/%s/matters/list.json" % [uuid])
download_file(origin + "asset/list", "user://download/%s/assets/list.json" % [uuid])
download_defs("card", origin) download_defs("card", origin)
download_defs("reaction", origin) download_defs("reaction", origin)
@@ -69,19 +82,19 @@ func download_from_origin() -> int:
return 0 return 0
func load_resource(): func load_resource():
var card_file = FileAccess.open("user://download/source/cards/list.json", FileAccess.READ) var card_file = FileAccess.open("user://download/%s/cards/list.json" % [uuid], FileAccess.READ)
GameManager.card_list = JSON.parse_string(card_file.get_as_text()) GameManager.card_list = JSON.parse_string(card_file.get_as_text())
card_file.close() card_file.close()
var reaction_file = FileAccess.open("user://download/source/reactions/list.json", FileAccess.READ) var reaction_file = FileAccess.open("user://download/%s/reactions/list.json" % [uuid], FileAccess.READ)
GameManager.reaction_list = JSON.parse_string(reaction_file.get_as_text()) GameManager.reaction_list = JSON.parse_string(reaction_file.get_as_text())
reaction_file.close() reaction_file.close()
var matter_file = FileAccess.open("user://download/source/matters/list.json", FileAccess.READ) var matter_file = FileAccess.open("user://download/%s/matters/list.json" % [uuid], FileAccess.READ)
GameManager.matter_list = JSON.parse_string(matter_file.get_as_text()) GameManager.matter_list = JSON.parse_string(matter_file.get_as_text())
matter_file.close() matter_file.close()
var asset_file = FileAccess.open("user://download/source/assets/list.json", FileAccess.READ) var asset_file = FileAccess.open("user://download/%s/assets/list.json" % [uuid], FileAccess.READ)
var asset_list = JSON.parse_string(asset_file.get_as_text()) var asset_list = JSON.parse_string(asset_file.get_as_text())
GameManager.pic_list = asset_list["pics"] GameManager.pic_list = asset_list["pics"]
GameManager.sound_list = asset_list["sounds"] GameManager.sound_list = asset_list["sounds"]
+1 -1
View File
@@ -9,4 +9,4 @@ func set_texture(pic: String) -> void:
func set_card(cname: String) -> void: func set_card(cname: String) -> void:
card_name = cname card_name = cname
# set_texture(GameManager.pic_list[card_name]) set_texture(GameManager.pic_list[card_name])