﻿// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

using UnityEngine;
using UnityEngine.SceneManagement;

namespace MixedRealityToolkit.Examples.Prototyping
{
    /// <summary>
    /// Switches scenes, next scene or previous scene
    /// </summary>
    public class SceneSwitcher : MonoBehaviour
    {
        /// <summary>
        /// Load the next scene, if at the end of the list, load the first scene
        /// </summary>
        public void NextScene()
        {
            int sceneCount = SceneManager.sceneCountInBuildSettings;

            for (int i = 0; i < sceneCount; ++i)
            {
                if (i < sceneCount - 1)
                {
                    if (SceneManager.GetActiveScene() == SceneManager.GetSceneByBuildIndex(i))
                    {
                        SceneManager.LoadScene(i + 1);
                        break;
                    }
                }
                else
                {
                    SceneManager.LoadScene(0);
                }
            }
        }

        /// <summary>
        /// Load the previous scene, if at the beginning of the list, load the first scene
        /// </summary>
        public void PreviousScene()
        {
            int sceneCount = SceneManager.sceneCount;

            for (int i = 0; i < sceneCount; ++i)
            {
                if (i > 1)
                {
                    if (SceneManager.GetActiveScene() == SceneManager.GetSceneAt(i))
                    {
                        SceneManager.LoadScene(i - 1);
                        break;
                    }
                }
                else
                {
                    SceneManager.LoadScene(sceneCount - 1);
                }
            }
        }
    }
}
