// In OnInitialize, we place various UIElements onto our UIState (this class).
        // UIState classes have width and height equal to the full screen, because of this, usually we first define a UIElement that will act as the container for our UI.
        // We then place various other UIElement onto that container UIElement positioned relative to the container UIElement.
        public override void OnInitialize()
        {
            // Here we define our container UIElement. In DragableUIPanel.cs, you can see that DragableUIPanel is a UIPanel with a couple added features.
            mainPanel = new DragableUIPanel();
            mainPanel.SetPadding(0);
            // We need to place this UIElement in relation to its Parent. Later we will be calling `base.Append(mainPanel);`.
            // This means that this class, ExampleUI, will be our Parent. Since ExampleUI is a UIState, the Left and Top are relative to the top left of the screen.
            mainPanel.Left.Set(75f, 0f);
            mainPanel.Top.Set(100f, 0f);
            mainPanel.Width.Set(210, 0f);
            mainPanel.Height.Set(133f, 0f);

            //pokemon icons


            // Next, we create another UIElement that we will place. Since we will be calling `mainPanel.Append(playButton);`, Left and Top are relative to the top left of the mainPanel UIElement.
            // By properly nesting UIElements, we can position things relatively to each other easily.

            Texture2D pokegearmenu = ModContent.GetTexture("Terramon/UI/PokegearMenu");
            UIImagez  pokegear     = new UIImagez(pokegearmenu);

            pokegear.Left.Set(41, 0f);
            pokegear.Top.Set(0, 0f);
            pokegear.Width.Set(1, 0f);
            pokegear.Height.Set(1, 0f);
            mainPanel.Append(pokegear);

            Texture2D          buttonDeleteTexture = ModContent.GetTexture("Terraria/UI/ButtonDelete");
            UIHoverImageButton closeButton         =
                new UIHoverImageButton(buttonDeleteTexture,
                                       Language.GetTextValue("LegacyInterface.52")); // Localized text for "Close"

            closeButton.Left.Set(13, 0f);
            closeButton.Top.Set(10, 0f);
            closeButton.Width.Set(30, 0f);
            closeButton.Height.Set(30, 0f);
            closeButton.OnClick += CloseButtonClicked;
            mainPanel.Append(closeButton);

            Texture2D eventsButtonTexture = ModContent.GetTexture("Terramon/UI/EventsButton");
            UIHoverImageButton
                eventsButton =
                new UIHoverImageButton(eventsButtonTexture, "Browse Ongoing Events");     // Localized text for "Close"

            eventsButton.Left.Set(63, 0f);
            eventsButton.Top.Set(70, 0f);
            eventsButton.Width.Set(132, 0f);
            eventsButton.Height.Set(44, 0f);
            eventsButton.OnClick += EventsButtonClicked;
            mainPanel.Append(eventsButton);

            Append(mainPanel);

            // As a recap, ExampleUI is a UIState, meaning it covers the whole screen. We attach mainPanel to ExampleUI some distance from the top left corner.
            // We then place playButton, closeButton, and moneyDiplay onto mainPanel so we can easily place these UIElements relative to mainPanel.
            // Since mainPanel will move, this proper organization will move playButton, closeButton, and moneyDiplay properly when mainPanel moves.
        }
        // In OnInitialize, we place various UIElements onto our UIState (this class).
        // UIState classes have width and height equal to the full screen, because of this, usually we first define a UIElement that will act as the container for our UI.
        // We then place various other UIElement onto that container UIElement positioned relative to the container UIElement.
        public override void OnInitialize()
        {
            // Here we define our container UIElement. In DragableUIPanel.cs, you can see that DragableUIPanel is a UIPanel with a couple added features.
            mainPanel = new DragableUIPanel();
            mainPanel.SetPadding(0);
            // We need to place this UIElement in relation to its Parent. Later we will be calling `base.Append(mainPanel);`.
            // This means that this class, ExampleUI, will be our Parent. Since ExampleUI is a UIState, the Left and Top are relative to the top left of the screen.
            mainPanel.Left.Set(320f, 0f);
            mainPanel.Top.Set(125f, 0f);
            mainPanel.Width.Set(352, 0f);
            mainPanel.Height.Set(264f, 0f);

            //pokemon icons


            // Next, we create another UIElement that we will place. Since we will be calling `mainPanel.Append(playButton);`, Left and Top are relative to the top left of the mainPanel UIElement.
            // By properly nesting UIElements, we can position things relatively to each other easily.

            Texture2D pokegearmenu = ModContent.GetTexture("Terramon/UI/PokegearMenu-Events");
            UIImagez  pokegear     = new UIImagez(pokegearmenu);

            pokegear.Left.Set(0, 0f);
            pokegear.Top.Set(0, 0f);
            pokegear.Width.Set(1, 0f);
            pokegear.Height.Set(1, 0f);
            mainPanel.Append(pokegear);

            Texture2D buttonDeleteTexture = ModContent.GetTexture("Terramon/UI/Close");
            UIHoverImageButton
                closeButton = new UIHoverImageButton(buttonDeleteTexture, "Close Menu"); // Localized text for "Close"

            closeButton.Left.Set(30, 0f);
            closeButton.Top.Set(190, 0f);
            closeButton.Width.Set(112, 0f);
            closeButton.Height.Set(44, 0f);
            closeButton.OnClick += CloseButtonClicked;
            mainPanel.Append(closeButton);

            Texture2D          buttonDiscordTexture = ModContent.GetTexture("Terramon/UI/Discord");
            UIHoverImageButton discButton           = new UIHoverImageButton(buttonDiscordTexture,
                                                                             "Join our [c/9370DB:Discord]\nfor future Event Codes!"); // Localized text for "Close"

            discButton.Left.Set(271, 0f);
            discButton.Top.Set(183, 0f);
            discButton.Width.Set(64, 0f);
            discButton.Height.Set(64, 0f);
            discButton.OnClick += DiscButtonClicked;
            mainPanel.Append(discButton);

            Append(mainPanel);

            // As a recap, ExampleUI is a UIState, meaning it covers the whole screen. We attach mainPanel to ExampleUI some distance from the top left corner.
            // We then place playButton, closeButton, and moneyDiplay onto mainPanel so we can easily place these UIElements relative to mainPanel.
            // Since mainPanel will move, this proper organization will move playButton, closeButton, and moneyDiplay properly when mainPanel moves.
        }