using Core; using Core.Lifecycle; namespace Minigames.StatueDressup.Controllers { /// /// Singleton manager for StatueDressup settings access. /// Loads settings once and provides global access point. /// public class StatueDressupSettings : ManagedBehaviour { public static StatueDressupSettings Instance { get; private set; } private AppleHills.Core.Settings.IStatueDressupSettings settings; /// /// Get the settings instance /// public AppleHills.Core.Settings.IStatueDressupSettings Settings => settings; internal override void OnManagedAwake() { base.OnManagedAwake(); // Singleton pattern if (Instance != null && Instance != this) { Logging.Warning("[StatueDressupSettings] Duplicate instance detected. Destroying duplicate."); Destroy(gameObject); return; } Instance = this; // Load settings once settings = GameManager.GetSettingsObject(); if (settings == null) { Logging.Error("[StatueDressupSettings] Failed to load StatueDressupSettings!"); } else { Logging.Debug("[StatueDressupSettings] Settings loaded successfully"); } } internal override void OnManagedDestroy() { base.OnManagedDestroy(); if (Instance == this) { Instance = null; } } } }