SessionZero-Client/sessionzero-client/scripts/models/datapack_model.gd

36 lines
827 B
GDScript

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)