﻿using System;

namespace JLGames.RocketDriver.Games.PanelManager
{
    public static class PanelManagerShared
    {
        private static IPanelManager m_SharedManager;

        public static IPanelManager Manager
        {
            get
            {
                if (m_SharedManager == null)
                {
                    m_SharedManager = new PanelManager();
                    m_SharedManager.Init();
                }

                return m_SharedManager;
            }
        }

        public static void OverrideManager(IPanelManager manger)
        {
            if (null == manger)
            {
                throw new ArgumentNullException();
            }

            if (manger == m_SharedManager) return;
            m_SharedManager?.Dispose();
            m_SharedManager = manger;
            m_SharedManager.Init();
        }

        public static void DisposeManager()
        {
            m_SharedManager?.Dispose();
            m_SharedManager = null;
        }
    }
}