using System.Collections.Generic; using System.Collections.ObjectModel; namespace BriarQueen.Data.Identifiers { public enum MusicKey { None = 0, } public enum SFXKey { None = 0, WorkshopSafeUnlocked, WorkshopPuzzleBoxUnlocked, DoorCreek, ItemCollected, GateOpening, PuzzleIncorrect, ResetPuzzle, SharpenKnife } 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.WorkshopSafeUnlocked, "SFX_WorkshopSafeUnlocked" }, { SFXKey.WorkshopPuzzleBoxUnlocked, "SFX_WorkshopPuzzleBoxUnlocked" }, { SFXKey.DoorCreek, "SFX_DoorCreek" }, { SFXKey.ItemCollected, "SFX_ItemCollected" }, { SFXKey.GateOpening, "SFX_GateOpening" }, { SFXKey.PuzzleIncorrect, "SFX_PuzzleIncorrect" }, { SFXKey.ResetPuzzle, "SFX_ResetPuzzle" }, { SFXKey.SharpenKnife, "SFX_SharpenKnife"} }); 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; } } }