Files
AppleHillsProduction/Assets/Scripts/Minigames/StatueDressup/Controllers/StatueDressupSettings.cs

60 lines
1.7 KiB
C#

using Core;
using Core.Lifecycle;
namespace Minigames.StatueDressup.Controllers
{
/// <summary>
/// Singleton manager for StatueDressup settings access.
/// Loads settings once and provides global access point.
/// </summary>
public class StatueDressupSettings : ManagedBehaviour
{
public static StatueDressupSettings Instance { get; private set; }
private AppleHills.Core.Settings.IStatueDressupSettings settings;
/// <summary>
/// Get the settings instance
/// </summary>
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<AppleHills.Core.Settings.IStatueDressupSettings>();
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;
}
}
}
}