using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;

namespace PixelWizards.GameSystem.Utility.Editor
{
    public class GameDashboard : EditorWindow
    {
        static int MinWidth = 150;

        public static readonly string startupScene = "Assets/_Game/Scenes/Startup.unity";
        public static readonly string mainMenu = "Assets/_Game/Scenes/EndDays/FrontEnd/MainMenu.unity";

        // inventory scenes
        public static readonly string characterInventory = "Assets/_Game/Scenes/Inventory/Characters.unity";
        public static readonly string animalInventory = "Assets/_Game/Scenes/Inventory/Animals.unity";
        public static readonly string monsterInventory = "Assets/_Game/Scenes/Inventory/Monsters.unity";
        public static readonly string weaponInventory = "Assets/_Game/Scenes/Inventory/Weapons.unity";

        [MenuItem("Pixel Wizards/Game Dashboard", false, -100)]
        static void Init()
        {
            GameDashboard window = (GameDashboard)EditorWindow.GetWindow<GameDashboard>("Dashboard");
            window.minSize = new Vector2(MinWidth, 375);
        }
        Vector2 _scroll;

        void OnGUI()
        {
            EditorGUILayout.BeginScrollView(_scroll);
            GUILayout.Label("Scene List:");
            GUI.backgroundColor = Color.green;
            if (GUILayout.Button("Game Startup", GUILayout.MinHeight(100), GUILayout.Height(35)))
            {
                EditorSceneManager.OpenScene(startupScene, OpenSceneMode.Single);
            }
            if (GUILayout.Button("Main Menu", GUILayout.MinHeight(100), GUILayout.Height(35)))
            {
                EditorSceneManager.OpenScene(mainMenu, OpenSceneMode.Single);
            }
           
            GUILayout.Label("Inventory Scenes:");
            GUI.backgroundColor = Color.blue;
            if (GUILayout.Button("Characters", GUILayout.MinHeight(100), GUILayout.Height(35)))
            {
                EditorSceneManager.OpenScene(characterInventory, OpenSceneMode.Single);
            }
            if (GUILayout.Button("Animals", GUILayout.MinHeight(100), GUILayout.Height(35)))
            {
                EditorSceneManager.OpenScene(animalInventory, OpenSceneMode.Single);
            }
            if (GUILayout.Button("Monsters", GUILayout.MinHeight(100), GUILayout.Height(35)))
            {
                EditorSceneManager.OpenScene(monsterInventory, OpenSceneMode.Single);
            }
            if (GUILayout.Button("Weapons", GUILayout.MinHeight(100), GUILayout.Height(35)))
            {
                EditorSceneManager.OpenScene(weaponInventory, OpenSceneMode.Single);
            }

            EditorGUILayout.EndScrollView();

            GUI.backgroundColor = Color.red;

            if ( GUILayout.Button("Close Window", GUILayout.MinHeight(25), GUILayout.Height(35)))
            {
                Close();
            }
        }
    }
}