extends RefCounted class_name DatapackModel var guid: Guid var name: String var version: String var author: String var license: String var description: String var icon: String var created_at: DateTime var session_zero_version: String var dependencies: Array[DatapackDependency] func _init() -> void: guid = Guid.new_guid() created_at = DateTime.now() func to_dict() -> Dictionary: var deps_arr: Array = [] for d in dependencies: deps_arr.append(d.to_dict()) return { "guid": guid.to_string(), "name": name, "version": version, "author": author, "license": license, "description": description, "icon": icon, "created_at": created_at.to_string(), "session_zero_version": session_zero_version, "dependencies": deps_arr } # TODO: Implement this static func from_dict(dict: Dictionary) -> DatapackModel: var dp: DatapackModel = DatapackModel.new() 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