namespace ChillConnect
{
    public abstract class BaseScene
    {
        public abstract int SceneIdx { get; }

        public void Enter()
        {
            App.DisplayLoadingUI();
            OnEnter();
        }

        public void Leave()
        {
            OnLeave();
        }

        public void SwitchSceneComplete(object param)
        {
            OnSwitchSceneComplete(param);
        }

        protected abstract void OnEnter();
        protected abstract void OnLeave();
        protected abstract void OnSwitchSceneComplete(object param);

        public abstract void Dispose();
    }
}