using System;
using System.Collections.Generic;
using UnityEngine.Pool;
namespace RosettaUI.Swatch
{
///
/// Swatchのセーブロード
///
public class SwatchPersistentService
{
public event Action onSaveSwatches;
private readonly string _keyPrefix;
public bool HasSwatches => PersistentData.HasKey(KeySwatches);
protected string KeySwatches => $"{_keyPrefix}-Swatches";
public SwatchPersistentService(string keyPrefix) => _keyPrefix = keyPrefix;
public void SaveSwatches(IEnumerable> nameAndValueEnumerable)
{
using var _ = ListPool>.Get(out var nameAndValues);
nameAndValues.AddRange(nameAndValueEnumerable);
PersistentData.Set(KeySwatches, nameAndValues);
onSaveSwatches?.Invoke();
}
public virtual IEnumerable> LoadSwatches()
{
return PersistentData.Get>>(KeySwatches);
}
///
/// 汎用サービス
///
public T Get(string key)
{
return PersistentData.Get($"{_keyPrefix}-{key}");
}
public void Set(string key, T value)
{
PersistentData.Set($"{_keyPrefix}-{key}", value);
}
}
}