using System.Collections.Generic; using System.Linq; using BriarQueen.Data.Identifiers; using BriarQueen.Framework.Managers.Achievements.Data; using UnityEngine; namespace BriarQueen.Framework.Registries { [CreateAssetMenu(menuName = "Briar Queen/Registries/New Achievement Registry", fileName = "Achievement Registry")] public class AchievementRegistry : ScriptableObject { [SerializeField] private List _achievementSos; private Dictionary _achievementDictionary; private void EnsureInitialized() { if (_achievementDictionary != null) return; _achievementDictionary = _achievementSos.ToDictionary(achievement => achievement.Achievement, achievement => achievement); } public bool TryGetAchievement(AchievementID identifier, out AchievementSo achievement) { EnsureInitialized(); return _achievementDictionary.TryGetValue(identifier, out achievement); } public IEnumerable GetAchievements() { EnsureInitialized(); return _achievementDictionary.Values; } } }