using System.Collections.Generic; using System.Collections.ObjectModel; namespace BriarQueen.Data.Identifiers { public enum SubtitleKey { None = 0, // Example: // IntroLine = 1, // TutorialTip = 2 } public readonly struct SubtitleEntry { public SubtitleEntry(string text, float preferredDurationSeconds = 0f) { Text = text; PreferredDurationSeconds = preferredDurationSeconds; } public string Text { get; } public float PreferredDurationSeconds { get; } } public static class SubtitleIdentifiers { public static readonly IReadOnlyDictionary Subtitles = new ReadOnlyDictionary( new Dictionary { // { SubtitleKey.IntroLine, new SubtitleEntry("Example subtitle.", 2.5f) }, }); public static bool TryGet(SubtitleKey key, out SubtitleEntry entry) { return Subtitles.TryGetValue(key, out entry); } public static string GetText(SubtitleKey key) { return Subtitles.TryGetValue(key, out var entry) ? entry.Text : string.Empty; } public static float GetPreferredDuration(SubtitleKey key) { return Subtitles.TryGetValue(key, out var entry) ? entry.PreferredDurationSeconds : 0f; } public static IEnumerable GetAllKeys() { return Subtitles.Keys; } } }