static void SetButtons()
        {
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            closeButton = (new Button(new Rectangle(relativeScreen.Width + relativeScreen.X, relativeScreen.Y, closeTexture.Width, closeTexture.Height), "CloseButton"));
            closeButton.LoadTexture(closeTexture);

            Vector2 buttonDimensions = new Vector2((Width - 200) / 4, (Height - 200) / 5);
            buttonDimensions.X -= 20;
            buttonDimensions.Y -= 10;

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Texture2D txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = Color.Yellow;
            txt.SetData(data);

            string[] buttonsText = new string[] { "Crea colonia", "Terraforma"};
            string[] buttonsType = new string[] { "Found", "Terraform"};
            for (int i = 0; i < buttonsText.Length; i++)
            {
                int x = relativeScreen.X + 3 * relativeScreen.Width / 4 + 10;
                int y = relativeScreen.Y + relativeScreen.Height / 5 + i * relativeScreen.Height / 5 + 5;
                Rectangle r = new Rectangle(x, y, txt.Width, txt.Height);
                dishabitedButtons.Add(new Button(r, buttonsText[i], buttonsType[i]));

            }
            foreach (Button b in dishabitedButtons)
            {
                b.LoadTextureAndFont(txt, font);
                b.SetTextPosition();
                b.SetTextColor(Color.Black);
            }

            buttonDimensions = new Vector2(Width / 10, Height / 16);

            data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = new Color(64, 64, 128, 128);
            txt.SetData(data);

            ChoiceButtons.Add(new Button(new Rectangle(), "Crea colonia", "YesButton"));
            ChoiceButtons[0].LoadTexture(txt);
            ChoiceButtons.Add(new Button(new Rectangle(), "Annulla", "CancelButton"));
            ChoiceButtons[1].LoadTexture(txt);

            int w = ChoiceButtons[0].ButtonTexture.Width;
            int h = ChoiceButtons[0].ButtonTexture.Height;
            int s = 25;
            int X = (int)GraphicSettings.CenterScreen.X - (w + s);
            int j = 0;
            foreach (Button b in ChoiceButtons)
            {
                b.Position = new Rectangle(X + j * w + j * s, (int)GraphicSettings.CenterScreen.Y, w, h);
                b.SetTextColor(Color.Black);
                j++;
            }
        }
        static void SetButtons()
        {
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            closeButton = (new Button(new Rectangle(relativeScreen.Width, relativeScreen.Y, closeTexture.Width, closeTexture.Height), "CloseButton"));
            closeButton.LoadTexture(closeTexture);

            Vector2 buttonDimensions = new Vector2((Width - 200) / 6, (Height - 250) / 8);

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Color[] dataClicked = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            buttonTexture = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));
            buttonClickedTexture = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
            {
                data[i] = Color.Yellow;
                dataClicked[i] = Color.Orange;
            }
            buttonTexture.SetData(data);
            buttonClickedTexture.SetData(dataClicked);

            commerceButtons.Add(new Button(new Rectangle(relativeScreen.Width - (int)buttonDimensions.X - 10, relativeScreen.Y + 50, (int)buttonDimensions.X, (int)buttonDimensions.Y), "Compra", "Buy"));
            commerceButtons.Add(new Button(new Rectangle(relativeScreen.Width - (int)buttonDimensions.X - 10, relativeScreen.Y + 60 + (int)buttonDimensions.Y, (int)buttonDimensions.X, (int)buttonDimensions.Y), "Vendi", "Sell"));
            commerceButtons.Add(new Button(new Rectangle(relativeScreen.Width - (int)buttonDimensions.X - 10, relativeScreen.Y + 70 + 2 * (int)buttonDimensions.Y, (int)buttonDimensions.X, (int)buttonDimensions.Y), "Potenziamenti", "PowerUps"));

            foreach (Button b in commerceButtons)
            {
                b.LoadTextureAndFont(buttonTexture, font);
                b.SetTextPosition();
                b.SetTextColor(Color.Black);
            }
        }
        static void SetButtons()
        {
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            closeButton = (new Button(new Rectangle(relativeScreen.Width + relativeScreen.X, relativeScreen.Y, closeTexture.Width, closeTexture.Height), "CloseButton"));
            closeButton.LoadTexture(closeTexture);

            Vector2 buttonDimensions = new Vector2((Width - 200) / 4, (Height - 200) / 5);
            buttonDimensions.X -= 20;
            buttonDimensions.Y -= 10;

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Texture2D txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = Color.Yellow;
            txt.SetData(data);

            /*
            string[] buttonsText = new string[] { "Commercia", "Rotta commerciale", "Regala", "Eventi", "Spia", "Attacca", "Ripara", "Ricarica" };
            string[] buttonsType = new string[] { "Commerce", "CommercialRoute", "Gift", "Events", "Spy", "Attack", "Repair", "Recharge" };
            for (int i = 0; i < buttonsText.Length; i++)
            {
                int x = relativeScreen.X + relativeScreen.Width / 2 + (i % 2) * relativeScreen.Width / 4 + 10;
                int y = relativeScreen.Y + relativeScreen.Height / 5 + (i / 2) * relativeScreen.Height / 5 + 5;
                Rectangle r = new Rectangle(x, y, txt.Width, txt.Height);
                inhabitedButtons.Add(new Button(r, buttonsText[i], buttonsType[i]));
            }
            */
            string[] buttonsText = new string[] { "Commercia", "Regala", "Ripara", "Ricarica" };
            string[] buttonsType = new string[] { "Commerce", "Gift", "Repair", "Recharge" };
            for (int i = 0; i < buttonsText.Length; i++)
            {
                int x = relativeScreen.X + relativeScreen.Width / 2 + relativeScreen.Width / 4 + 10;
                int y = relativeScreen.Y + relativeScreen.Height / 5 + i * relativeScreen.Height / 5 + 5;
                Rectangle r = new Rectangle(x, y, txt.Width, txt.Height);
                inhabitedButtons.Add(new Button(r, buttonsText[i], buttonsType[i]));
            }

            foreach (Button b in inhabitedButtons)
            {
                b.LoadTextureAndFont(txt, font);
                b.SetTextPosition();
                b.SetTextColor(Color.Black);
            }
        }
        public static void Load(Game game)
        {
            state = PauseState.PAUSE; lastClickTime = 0;
            string GUIFolder = GraphicSettings.GetGUIFolder();

            OnScreenButtons = new List<Button>();
            ChoiceButtons = new List<Button>();
            spriteBatch = (SpriteBatch)game.Services.GetService(typeof(SpriteBatch));

            font = game.Content.Load<SpriteFont>(GUIFolder + "Consolas");

            device = game.GraphicsDevice;
            int Width = GraphicSettings.ScreenBounds.Width;
            int Height = GraphicSettings.ScreenBounds.Height;
            Vector2 buttonDimensions = new Vector2(Width / 6, Height / 12);

            Color[] data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            Texture2D txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = new Color(64, 64, 128, 128);
            txt.SetData(data);

            OnScreenButtons.Add(new Button(new Rectangle(), "Continua gioco", "ContinueButton"));
            OnScreenButtons[0].LoadTexture(txt);
            OnScreenButtons.Add(new Button(new Rectangle(), "Salva gioco", "SaveButton"));
            OnScreenButtons[1].LoadTexture(txt);
            OnScreenButtons.Add(new Button(new Rectangle(), "Torna al menu", "MenuButton"));
            OnScreenButtons[2].LoadTexture(txt);
            OnScreenButtons.Add(new Button(new Rectangle(), "Torna a Windows", "ExitButton"));
            OnScreenButtons[3].LoadTexture(txt);

            buttonDimensions = new Vector2(Width / 10, Height / 16);

            data = new Color[(int)(buttonDimensions.X * buttonDimensions.Y)];
            txt = new Texture2D(device, (int)(buttonDimensions.X), (int)(buttonDimensions.Y));

            for (int i = 0; i < data.Length; ++i)
                data[i] = new Color(64, 64, 128, 128);
            txt.SetData(data);

            ChoiceButtons.Add(new Button(new Rectangle(), "Salva ed esci", "YesButton"));
            ChoiceButtons[0].LoadTexture(txt);
            ChoiceButtons.Add(new Button(new Rectangle(), "Esci senza salvare", "NoButton"));
            ChoiceButtons[1].LoadTexture(txt);
            ChoiceButtons.Add(new Button(new Rectangle(), "Annulla", "CancelButton"));
            ChoiceButtons[2].LoadTexture(txt);

            SavedFileButton = new Button(new Rectangle(), "Ok", "SavedFileButton");
            SavedFileButton.LoadTexture(txt);
            SetButtonPositions();
        }