36 lines
827 B
GDScript
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)
|