using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TcgEngine { /// /// Defines all cardback data /// [CreateAssetMenu(fileName = "Cardback", menuName = "TcgEngine/Cardback", order = 10)] public class CardbackData : ScriptableObject { public string id; public string cardback_path; public string deck_path; public int sort_order; public static List cardback_list = new List(); public static void Load(string folder = "") { if (cardback_list.Count == 0) cardback_list.AddRange(Resources.LoadAll(folder)); cardback_list.Sort((CardbackData a, CardbackData 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 GetCardback() { if (!string.IsNullOrEmpty(cardback_path)) { Sprite dynamicSprite = SpriteLoader.Get()?.LoadSprite(cardback_path); if (dynamicSprite != null) return dynamicSprite; } return null; } public Sprite GetDeck() { if (!string.IsNullOrEmpty(deck_path)) { Sprite dynamicSprite = SpriteLoader.Get()?.LoadSprite(deck_path); if (dynamicSprite != null) return dynamicSprite; } return null; } public static CardbackData Get(string id) { foreach (CardbackData cardback in GetAll()) { if (cardback.id == id) return cardback; } return null; } public static List GetAll() { return cardback_list; } } }