// Assets/ShiroginSDK/Runtime/Data/Icons/CurrencyIconLibrary.cs
using System;
using System.Collections.Generic;
using ShiroginSDK.Runtime.Modules.Data.Scripts.Enums;
using UnityEngine;
namespace ShiroginSDK.Runtime.Modules.Data.Scripts.Icons
{
///
/// Her CurrencyType için karşılık gelen ikonları depolar.
/// Bu sınıf doğrudan SDK.Config.currencyIconLibrary üzerinden erişilmelidir.
///
[CreateAssetMenu(fileName = "CurrencyIconLibrary", menuName = "ShiroginSDK/Data/Currency Icon Library", order = 10)]
public class CurrencyIconLibrary : ScriptableObject
{
[Header("Currency Icon Listesi")] [Tooltip("Her para birimi için kullanılacak ikonları belirle.")]
public List icons = new();
///
/// Belirtilen CurrencyType’a karşılık gelen ikonu döndürür.
/// Eğer bulunamazsa null döner.
///
public Sprite GetIcon(CurrencyType type)
{
if (type == CurrencyType.None)
return null;
foreach (var entry in icons)
if (entry.type == type)
return entry.icon;
return null;
}
#if UNITY_EDITOR
///
/// Editor araçları için kolay erişim (örneğin otomatik doldurma).
///
[ContextMenu("Auto Fill Missing Entries")]
private void AutoFillMissingEntries()
{
var types = Enum.GetValues(typeof(CurrencyType));
foreach (CurrencyType t in types)
{
if (t == CurrencyType.None) continue;
var exists = icons.Exists(e => e.type == t);
if (!exists)
icons.Add(new CurrencyIconEntry { type = t, icon = null });
}
Debug.Log("[CurrencyIconLibrary] Missing entries added automatically.");
}
#endif
[Serializable]
public struct CurrencyIconEntry
{
public CurrencyType type;
public Sprite icon;
}
}
}