From 62f12e55db28fb4869f7008f99896394789b36eb Mon Sep 17 00:00:00 2001 From: coder-bot Date: Tue, 18 Aug 2026 13:09:57 +0000 Subject: [PATCH] WIP checkpoint: Implement avatar loader and customization UI in Godot --- scripts/avatar/avatar_catalog.gd | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/avatar/avatar_catalog.gd b/scripts/avatar/avatar_catalog.gd index 1eb2405..8264b24 100644 --- a/scripts/avatar/avatar_catalog.gd +++ b/scripts/avatar/avatar_catalog.gd @@ -41,12 +41,14 @@ func load_catalog(path: String = _catalog_path) -> Error: var json_text: String = file.get_as_text() file.close() - var json: JSONParseResult = JSON.parse_string(json_text) - if json == null: + var result: Variant = JSON.parse_string(json_text) + if result == null or not result is Dictionary: catalog_load_failed.emit("Invalid JSON in catalog: %s" % path) return ERR_PARSE_ERROR - if not json is Dictionary or not json.has("assets"): + var json: Dictionary = result as Dictionary + + if not json.has("assets"): catalog_load_failed.emit("Catalog missing 'assets' key") return ERR_INVALID_DATA @@ -56,6 +58,11 @@ func load_catalog(path: String = _catalog_path) -> Error: return OK +## Check if the catalog has been loaded. +func is_loaded() -> bool: + return _loaded + + ## Resolve an asset by its ID. ## Returns a Dictionary with keys: type, slot, path, version, etc. ## Returns null if the asset ID is not found.