Files
tcg-client/Assets/TcgEngine/Scripts/Data/CardbackData.cs
2025-08-28 16:09:01 +08:00

72 lines
2.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TcgEngine
{
/// <summary>
/// Defines all cardback data
/// </summary>
[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<CardbackData> cardback_list = new List<CardbackData>();
public static void Load(string folder = "")
{
if (cardback_list.Count == 0)
cardback_list.AddRange(Resources.LoadAll<CardbackData>(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<CardbackData> GetAll()
{
return cardback_list;
}
}
}