using System.Collections.Generic; using System.Collections.ObjectModel; namespace BriarQueen.Data.Identifiers { public enum MusicKey { None = 0, } public enum SFXKey { None = 0, CarDoorOpening, ItemPickup, } public enum UIFXKey { None = 0, AchievementUnlocked, CodexEntryUnlocked } public enum AmbienceKey { None = 0, } public enum VoiceKey { None = 0, } public static class AudioNameIdentifiers { public static readonly IReadOnlyDictionary Music = new ReadOnlyDictionary( new Dictionary { // Add when you have music // { MusicKey.SomeTrack, "Music:SomeTrack" } }); public static readonly IReadOnlyDictionary SFX = new ReadOnlyDictionary( new Dictionary { { SFXKey.CarDoorOpening, "SFX:CarDoorOpening" }, { SFXKey.ItemPickup, "SFX:ItemPickup" }, }); public static readonly IReadOnlyDictionary UIFX = new ReadOnlyDictionary( new Dictionary { { UIFXKey.AchievementUnlocked, "UIFX:AchievementUnlocked" }, { UIFXKey.CodexEntryUnlocked, "UIFX:CodexEntryUnlocked" }, }); public static readonly IReadOnlyDictionary Ambience = new ReadOnlyDictionary( new Dictionary { // Add ambience mappings here }); public static readonly IReadOnlyDictionary Voice = new ReadOnlyDictionary( new Dictionary { // Add voice mappings here }); public static string Get(MusicKey key) { return Music.TryGetValue(key, out var value) ? value : string.Empty; } public static string Get(SFXKey key) { return SFX.TryGetValue(key, out var value) ? value : string.Empty; } public static string Get(UIFXKey key) { return UIFX.TryGetValue(key, out var value) ? value : string.Empty; } public static string Get(AmbienceKey key) { return Ambience.TryGetValue(key, out var value) ? value : string.Empty; } public static string Get(VoiceKey key) { return Voice.TryGetValue(key, out var value) ? value : string.Empty; } } }