﻿using UnityEngine;
using UnityEngine.SceneManagement;

public class UddSceneManager : MonoBehaviour
{
    public static UddSceneManager instance { get; set; }
    [SerializeField] string[] scenes;
    [SerializeField] int sceneNo = 0;

    void Awake()
    {
        if (!instance) {
            instance = this;
        } else {
            Destroy(gameObject);
        }
    }

    void Start()
    {
        DontDestroyOnLoad(gameObject);
        Load();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.RightArrow)) {
            Next();
        } else if (Input.GetKeyDown(KeyCode.LeftArrow)) {
            Prev();
        }

        if (Input.GetKeyDown(KeyCode.R) && (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl))) {
            uDesktopDuplication.Manager.instance.Reinitialize();
        }

        if (Input.GetKeyDown(KeyCode.Escape)) {
            Application.Quit();
        }
    }

    void Next()
    {
        sceneNo = (sceneNo + 1) % scenes.Length;
        Load();
    }

    void Prev()
    {
        sceneNo = (sceneNo + scenes.Length - 1) % scenes.Length;
        Load();
    }

    void Load()
    {
        SceneManager.LoadScene(scenes[Mathf.Clamp(sceneNo, 0, scenes.Length - 1)]);
    }
}