2025-04-30 21:31:31 +02:00
|
|
|
extends Resource
|
|
|
|
class_name AvatarData
|
|
|
|
|
|
|
|
@export var sprites: Array[SpriteData] = []
|
2025-04-30 23:39:00 +02:00
|
|
|
|
|
|
|
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
|