using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TcgEngine { /// /// Defines all avatar data /// [CreateAssetMenu(fileName = "Avatar", menuName = "TcgEngine/Avatar", order = 10)] public class AvatarData : ScriptableObject { public string id; public string avatar_path; public int sort_order; public static List avatar_list = new List(); public static void Load(string folder = "") { if (avatar_list.Count == 0) avatar_list.AddRange(Resources.LoadAll(folder)); avatar_list.Sort((AvatarData a, AvatarData b) => { if (a.sort_order == b.sort_order) return a.id.CompareTo(b.id); else return a.sort_order.CompareTo(b.sort_order); }); } public Sprite GetAvatar() { if (!string.IsNullOrEmpty(avatar_path)) { Sprite dynamicSprite = SpriteLoader.Get()?.LoadSprite(avatar_path); if (dynamicSprite != null) return dynamicSprite; } return null; } public static AvatarData Get(string id) { foreach (AvatarData avatar in GetAll()) { if (avatar.id == id) return avatar; } return null; } public static List GetAll() { return avatar_list; } } }