refactor: route core definitions through content catalog
This commit is contained in:
@@ -30,6 +30,7 @@ static var _profession_list: Array[ProfessionDefinition] = []
|
||||
static var _action_map: Dictionary = {}
|
||||
static var _profession_map: Dictionary = {}
|
||||
static var _profession_id_list: Array[StringName] = []
|
||||
static var _catalog_errors: Array[String] = []
|
||||
static var _cache_valid := false
|
||||
|
||||
|
||||
@@ -41,19 +42,19 @@ static func _ensure_cache() -> void:
|
||||
_action_map = {}
|
||||
_profession_map = {}
|
||||
_profession_id_list = []
|
||||
|
||||
for path in ACTION_PATHS:
|
||||
var definition := load(path) as ActionDefinition
|
||||
if definition != null:
|
||||
_action_list.append(definition)
|
||||
_action_map[definition.action_id] = definition
|
||||
|
||||
for path in PROFESSION_PATHS:
|
||||
var definition := load(path) as ProfessionDefinition
|
||||
if definition != null:
|
||||
_profession_list.append(definition)
|
||||
_profession_map[definition.profession_id] = definition
|
||||
_profession_id_list.append(definition.profession_id)
|
||||
_catalog_errors = []
|
||||
var catalog := ContentCatalog.create_core()
|
||||
if not catalog.is_valid():
|
||||
_catalog_errors = catalog.get_errors()
|
||||
_cache_valid = true
|
||||
return
|
||||
_action_list = catalog.get_actions()
|
||||
_profession_list = catalog.get_professions()
|
||||
for definition in _action_list:
|
||||
_action_map[definition.action_id] = definition
|
||||
for definition in _profession_list:
|
||||
_profession_map[definition.profession_id] = definition
|
||||
_profession_id_list.append(definition.profession_id)
|
||||
|
||||
_cache_valid = true
|
||||
|
||||
@@ -89,7 +90,7 @@ static func get_profession_ids() -> Array[StringName]:
|
||||
|
||||
static func validate() -> Array[String]:
|
||||
_ensure_cache()
|
||||
var errors: Array[String] = []
|
||||
var errors: Array[String] = _catalog_errors.duplicate()
|
||||
if _action_list.size() != ACTION_PATHS.size():
|
||||
errors.append("One or more ActionDefinition resources failed to load")
|
||||
if _profession_list.size() != PROFESSION_PATHS.size():
|
||||
|
||||
Reference in New Issue
Block a user