using System.Collections.Generic; using System.Linq; using BriarQueen.Framework.Managers.Audio.Data; using NaughtyAttributes; using UnityEngine; namespace BriarQueen.Framework.Registries { [CreateAssetMenu(menuName = "Briar Queen/Registries/New Audio Registry", fileName = "New Audio Registry")] public class AudioRegistry : ScriptableObject { [ReorderableList] [SerializeField] private List _audioFiles; private Dictionary _audioFileDict; private void EnsureInitialized() { if (_audioFileDict == null) _audioFileDict = _audioFiles.ToDictionary(entry => entry.UniqueID, entry => entry); } public bool TryGetAudio(string audioName, out AudioFileSo audioFile) { if (_audioFileDict == null) EnsureInitialized(); return _audioFileDict!.TryGetValue(audioName, out audioFile); } } }