using GatherAndDefend.Events;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class GoToScene : MonoBehaviour
{
    [SerializeField]
    private bool _useLoadingScreen = true;
    [SerializeField][Scene]
    private string _loadingScreenScene;
    [SerializeField][Scene]
    private string _sceneToLoad;
    [SerializeField]
    [Tooltip("Keep loaded scene")]
    private int _levelToLoad = -1;
    public void Execute()
    {
        if (_useLoadingScreen)
        {
            PlayerPrefs.SetString(LoadingManager.SceneToLoad, _sceneToLoad);

            if(_levelToLoad != -1)
                PlayerPrefs.SetInt(LoadingManager.LevelToLoad, _levelToLoad);

            SceneManager.LoadScene(_loadingScreenScene, LoadSceneMode.Additive);
        }
        else
        {
            SceneManager.LoadScene(_sceneToLoad);
        }

        EventAggregator.Instance.GetEvent<ExitingLevelEvent>().Invoke();
    }
}
