From 410c5324758ce74ed36bcb2a8720bab9b17f5fd2 Mon Sep 17 00:00:00 2001 From: chrisbell Date: Tue, 21 Oct 2025 18:37:33 -0500 Subject: [PATCH] datapack to_json --- .../scripts/models/datapack_model.gd | 23 +++++++++++++++++-- .../scripts/models/datapck_dependency.gd | 11 ++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/sessionzero-client/scripts/models/datapack_model.gd b/sessionzero-client/scripts/models/datapack_model.gd index c92f371..cefa6c7 100644 --- a/sessionzero-client/scripts/models/datapack_model.gd +++ b/sessionzero-client/scripts/models/datapack_model.gd @@ -37,8 +37,27 @@ func to_dict() -> Dictionary: # TODO: Implement this -func from_dict(dict: Dictionary) -> DatapackModel: +static func from_dict(dict: Dictionary) -> DatapackModel: var dp: DatapackModel = DatapackModel.new() - dp.guid = dict["guid"] + dp.name = dict.get("name", "") + dp.version = dict.get("version", "") + dp.author = dict.get("author", "") + dp.license = dict.get("license", "") + dp.description = dict.get("description", "") + dp.icon = dict.get("icon", "") + dp.session_zero_version = dict.get("session_zero_version", "") + + if dict.has("guid"): + dp.guid = Guid.from_string(dict["guid"]) + else: + return null + + dp.dependencies.clear() + if dict.has("dependencies"): + var deps_arr: Array = dict["dependencies"] + + for d_dict in deps_arr: + var dependency: DatapackDependency = DatapackDependency.from_dict(d_dict) + dp.dependencies.append(dependency) return dp diff --git a/sessionzero-client/scripts/models/datapck_dependency.gd b/sessionzero-client/scripts/models/datapck_dependency.gd index 54a89bc..a0e1a57 100644 --- a/sessionzero-client/scripts/models/datapck_dependency.gd +++ b/sessionzero-client/scripts/models/datapck_dependency.gd @@ -14,6 +14,11 @@ func to_dict() -> Dictionary: } -func from_dict(dict: Dictionary) -> DatapackDependency: - # TODO - return null +static func from_dict(dict: Dictionary) -> DatapackDependency: + var dd := DatapackDependency.new() + + dd.id = dict.get("id", "") + dd.name = dict.get("name", "") + dd.version = dict.get("version", "") + + return dd