using System.Collections.Generic; using System.Collections.ObjectModel; namespace BriarQueen.Data.Identifiers { public enum MusicKey { None = 0, } public enum SFXKey { None = 0, CarDoorOpening, ItemPickup, AshwickGateOpening } public enum UIFXKey { None = 0, AchievementUnlocked, CodexEntryUnlocked } public enum AmbienceKey { None = 0, } public enum VoiceKey { None = 0, EmptyHands, CantUseItem, SomethingMissing, CarefulInteract, LooksImportant, WrongTool, CodexLocked, Locked, CantGoThere, DoesntBelong, FireHot, AshwickHallowSign, FirstSkeleton, ClockTower, } public static class AudioNameIdentifiers { private static readonly IReadOnlyDictionary _music = new ReadOnlyDictionary( new Dictionary { // Add when you have music // { MusicKey.SomeTrack, "Music:SomeTrack" } }); private static readonly IReadOnlyDictionary _sfx = new ReadOnlyDictionary( new Dictionary { { SFXKey.CarDoorOpening, "SFX:General:CarDoorOpening" }, { SFXKey.ItemPickup, "SFX:General:ItemPickup" }, { SFXKey.AshwickGateOpening, "SFX:Level:AshwickOutskirts:GateOpening" }, }); private static readonly IReadOnlyDictionary _uifx = new ReadOnlyDictionary( new Dictionary { { UIFXKey.AchievementUnlocked, "UIFX:General:AchievementUnlocked" }, { UIFXKey.CodexEntryUnlocked, "UIFX:General:CodexEntryUnlocked" }, }); private static readonly IReadOnlyDictionary _ambience = new ReadOnlyDictionary( new Dictionary { // Add ambience mappings here }); private static readonly IReadOnlyDictionary _voice = new ReadOnlyDictionary( new Dictionary { { VoiceKey.EmptyHands, "Voice:Item:EmptyHands" }, { VoiceKey.CantUseItem, "Voice:Item:CantUseItem" }, { VoiceKey.SomethingMissing, "Voice:Item:SomethingMissing" }, { VoiceKey.CarefulInteract, "Voice:Item:CarefulInteract" }, { VoiceKey.LooksImportant, "Voice:Item:LooksImportant" }, { VoiceKey.WrongTool, "Voice:Item:WrongTool" }, { VoiceKey.CodexLocked, "Voice:Item:CodexLocked" }, { VoiceKey.Locked, "Voice:Environment:Locked" }, { VoiceKey.CantGoThere, "Voice:Environment:CantGoThere" }, { VoiceKey.DoesntBelong, "Voice:Environment:DoesntBelong" }, { VoiceKey.FireHot, "Voice:Environment:FireHot" }, { VoiceKey.AshwickHallowSign, "Voice:Environment:AshwickHallowSign" }, { VoiceKey.FirstSkeleton, "Voice:Environment:FirstSkeleton" }, { VoiceKey.ClockTower, "Voice:Environment:ClockTower" }, }); 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; } } }