using System; using System.Collections.Generic; namespace Utils { /// /// Capture types for different photo contexts /// public enum CaptureType { StatueMinigame, DivingMinigame } /// /// Configuration for a specific capture type /// [Serializable] public class CaptureConfig { public string subFolder; public string photoPrefix; public string metadataPrefix; public string indexKey; public CaptureConfig(string subFolder, string photoPrefix, string metadataPrefix, string indexKey) { this.subFolder = subFolder; this.photoPrefix = photoPrefix; this.metadataPrefix = metadataPrefix; this.indexKey = indexKey; } } /// /// Static configuration registry for all capture types /// public static class PhotoCaptureConfigs { private static readonly Dictionary Configs = new Dictionary { [CaptureType.StatueMinigame] = new CaptureConfig( subFolder: "StatueMinigame", photoPrefix: "Statue_", metadataPrefix: "StatuePhoto_Meta_", indexKey: "StatuePhoto_Index" ), [CaptureType.DivingMinigame] = new CaptureConfig( subFolder: "DivingMinigame", photoPrefix: "Diving_", metadataPrefix: "DivingPhoto_Meta_", indexKey: "DivingPhoto_Index" ) }; /// /// Get configuration for a specific capture type /// public static CaptureConfig GetConfig(CaptureType type) { if (Configs.TryGetValue(type, out CaptureConfig config)) { return config; } throw new ArgumentException($"No configuration found for CaptureType: {type}"); } } }