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