class_name DatapackModel extends Resource @export var guid: Guid @export var name: String @export var version: String @export var author: String @export var license: String @export var description: String @export var icon: String @export var created_at: DateTime @export var session_zero_version: String @export var dependencies: Array[DatapackDependency] = [] @export var sz_objects: Array[SzObject] = [] var content_map: Dictionary = {} func _init() -> void: if guid == null: guid = Guid.new_guid() if created_at == null: created_at = DateTime.now() func _build_content_map(): content_map.clear() for obj in sz_objects: content_map[obj.id] = obj func get_object_by_id(obj_id: String) -> SzObject: if content_map.is_empty() and !sz_objects.is_empty(): _build_content_map() return content_map.get(obj_id)