using System;
using System.Collections.Generic;
using System.Linq;
using Assets.HeroEditor4D.Common.Scripts.Common;
using Newtonsoft.Json;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.Data
{
///
/// Represents sprite entry in SpriteCollection.
///
[Serializable]
public class ItemSprite
{
public string Name;
public string Id;
public string Edition;
public string Collection;
public string Path;
public Sprite Sprite;
public List Sprites;
public List Tags = new List();
public string Meta;
public Dictionary MetaDict
{
get => Meta == "" ? new Dictionary() : JsonConvert.DeserializeObject>(Meta);
set => Meta = JsonConvert.SerializeObject(value);
}
public ItemSprite(string edition, string collection, string type, string name, string path, Sprite sprite, List sprites)
{
Id = $"{edition}.{collection}.{type}.{name}";
if (sprites == null || sprites.Count == 0)
{
throw new Exception($"Please set [Texture Type = Sprite] for [{Id}] from Import Settings!");
}
Name = name;
Collection = collection;
Edition = edition;
Path = path;
Sprite = sprite;
Sprites = sprites.OrderBy(i => i.name).ToList();
}
public Sprite GetSprite(string name)
{
return Sprites.Single(j => j.name == name);
}
}
}