extends Resource class_name AvatarData @export var sprites: Array[SpriteData] = [] static func from_legacy_json(data: String) -> AvatarData: var sprites: Array[SpriteData] = [] var json_data = JSON.parse_string(data) if json_data is not Dictionary: return null for sprite_data in json_data.values(): if sprite_data is not Dictionary: return null var sprite = SpriteData.from_legacy_dict(sprite_data) sprites.append(sprite) var avatar = new() for sprite in sprites: if sprite.legacy_parent_id != null: var parent_index = sprites.find_custom(func(x): return x.legacy_id == sprite.legacy_parent_id) if parent_index != -1: sprites[parent_index].children.append(sprite) continue avatar.sprites.append(sprite) return avatar