using Assets.Source.CommonWorkers;
using Assets.Source.Content.UI.Canvases;
using Assets.Source.Content.Workers;
using Assets.Source.Core.Managers;
using Assets.Source.Settings;
using Assets.Source.UI;
using UnityEngine;

public static class Get
{
    public static bool DebugLogsOn => DebugSettings.DebugLogs;
    public static UICanvasController MainUI => UITopdownCanvas.Instance?.Controller;

    #region Settings
    public static CoreSettings CoreSettings => CoreSettings.Asset;
    public static MechanicSettings MechanicSettings => CoreSettings.MechanicSettings;
    public static UISettings UISettings => CoreSettings.UISettings;
    public static DebugSettings DebugSettings => CoreSettings.DebugSettings;
    public static PrefabSettings CommonPrefabs => CoreSettings.PrefabSettings;
    public static ArtSettings Art => CoreSettings.ArtSettings;
    public static IconSettings Icons => CoreSettings.IconSettings;
    public static AnimationSettings Animations => CoreSettings.AnimationSettings;
    #endregion

    #region Workers

    public static WorkerScenes Scenes => Worker<WorkerScenes>();
    public static WorkerPlayerProgress Progress => Worker<WorkerPlayerProgress>();

    #endregion

    public static T Worker<T>() where T : ScriptableObject
    {
        return ScriptableWorkersController.Get<T>();
    }
}