209 lines
7.8 KiB
C#
209 lines
7.8 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Terraria.GameContent.UI.States.UIResourcePackInfoMenu
|
|
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
|
|
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
|
|
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
|
|
|
|
using Microsoft.Xna.Framework;
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
using ReLogic.Content;
|
|
using System.Collections.Generic;
|
|
using Terraria.Audio;
|
|
using Terraria.GameContent.UI.Elements;
|
|
using Terraria.GameInput;
|
|
using Terraria.ID;
|
|
using Terraria.IO;
|
|
using Terraria.Localization;
|
|
using Terraria.UI;
|
|
using Terraria.UI.Gamepad;
|
|
|
|
namespace Terraria.GameContent.UI.States
|
|
{
|
|
public class UIResourcePackInfoMenu : UIState
|
|
{
|
|
private UIResourcePackSelectionMenu _resourceMenu;
|
|
private ResourcePack _pack;
|
|
private UIElement _container;
|
|
private UIList _list;
|
|
private UIScrollbar _scrollbar;
|
|
private bool _isScrollbarAttached;
|
|
private const string _backPointName = "GoBack";
|
|
private UIGamepadHelper _helper;
|
|
|
|
public UIResourcePackInfoMenu(UIResourcePackSelectionMenu parent, ResourcePack pack)
|
|
{
|
|
this._resourceMenu = parent;
|
|
this._pack = pack;
|
|
this.BuildPage();
|
|
}
|
|
|
|
private void BuildPage()
|
|
{
|
|
this.RemoveAllChildren();
|
|
UIElement element1 = new UIElement();
|
|
element1.Width.Set(0.0f, 0.8f);
|
|
element1.MaxWidth.Set(500f, 0.0f);
|
|
element1.MinWidth.Set(300f, 0.0f);
|
|
element1.Top.Set(230f, 0.0f);
|
|
element1.Height.Set(-element1.Top.Pixels, 1f);
|
|
element1.HAlign = 0.5f;
|
|
this.Append(element1);
|
|
UIPanel uiPanel = new UIPanel();
|
|
uiPanel.Width.Set(0.0f, 1f);
|
|
uiPanel.Height.Set(-110f, 1f);
|
|
uiPanel.BackgroundColor = new Color(33, 43, 79) * 0.8f;
|
|
element1.Append((UIElement) uiPanel);
|
|
UIElement element2 = new UIElement()
|
|
{
|
|
Width = StyleDimension.Fill,
|
|
Height = StyleDimension.FromPixelsAndPercent(0.0f, 1f)
|
|
};
|
|
uiPanel.Append(element2);
|
|
UIElement element3 = new UIElement()
|
|
{
|
|
Width = new StyleDimension(0.0f, 1f),
|
|
Height = new StyleDimension(52f, 0.0f)
|
|
};
|
|
element3.SetPadding(0.0f);
|
|
element2.Append(element3);
|
|
UIText uiText1 = new UIText(this._pack.Name, 0.7f, true)
|
|
{
|
|
TextColor = Color.Gold
|
|
};
|
|
uiText1.HAlign = 0.5f;
|
|
uiText1.VAlign = 0.0f;
|
|
element3.Append((UIElement) uiText1);
|
|
UIText uiText2 = new UIText(Language.GetTextValue("UI.Author", (object) this._pack.Author), 0.9f);
|
|
uiText2.HAlign = 0.0f;
|
|
uiText2.VAlign = 1f;
|
|
UIText uiText3 = uiText2;
|
|
uiText3.Top.Set(-6f, 0.0f);
|
|
element3.Append((UIElement) uiText3);
|
|
UIText uiText4 = new UIText(Language.GetTextValue("UI.Version", (object) this._pack.Version.GetFormattedVersion()), 0.9f);
|
|
uiText4.HAlign = 1f;
|
|
uiText4.VAlign = 1f;
|
|
uiText4.TextColor = Color.Silver;
|
|
UIText uiText5 = uiText4;
|
|
uiText5.Top.Set(-6f, 0.0f);
|
|
element3.Append((UIElement) uiText5);
|
|
Asset<Texture2D> asset = Main.Assets.Request<Texture2D>("Images/UI/Divider", (AssetRequestMode) 1);
|
|
UIImage uiImage1 = new UIImage(asset);
|
|
uiImage1.Width = StyleDimension.FromPixelsAndPercent(0.0f, 1f);
|
|
uiImage1.Height = StyleDimension.FromPixels((float) asset.Height());
|
|
uiImage1.ScaleToFit = true;
|
|
UIImage uiImage2 = uiImage1;
|
|
uiImage2.Top.Set(52f, 0.0f);
|
|
uiImage2.SetPadding(6f);
|
|
element2.Append((UIElement) uiImage2);
|
|
UIElement element4 = new UIElement()
|
|
{
|
|
HAlign = 0.5f,
|
|
VAlign = 1f,
|
|
Width = StyleDimension.FromPixelsAndPercent(0.0f, 1f),
|
|
Height = StyleDimension.FromPixelsAndPercent(-74f, 1f)
|
|
};
|
|
element2.Append(element4);
|
|
this._container = element4;
|
|
UIText uiText6 = new UIText(this._pack.Description);
|
|
uiText6.HAlign = 0.5f;
|
|
uiText6.VAlign = 0.0f;
|
|
uiText6.Width = StyleDimension.FromPixelsAndPercent(0.0f, 1f);
|
|
uiText6.Height = StyleDimension.FromPixelsAndPercent(0.0f, 0.0f);
|
|
uiText6.IsWrapped = true;
|
|
uiText6.WrappedTextBottomPadding = 0.0f;
|
|
UIText uiText7 = uiText6;
|
|
UIList uiList1 = new UIList();
|
|
uiList1.HAlign = 0.5f;
|
|
uiList1.VAlign = 0.0f;
|
|
uiList1.Width = StyleDimension.FromPixelsAndPercent(0.0f, 1f);
|
|
uiList1.Height = StyleDimension.FromPixelsAndPercent(0.0f, 1f);
|
|
uiList1.PaddingRight = 20f;
|
|
UIList uiList2 = uiList1;
|
|
uiList2.ListPadding = 5f;
|
|
uiList2.Add((UIElement) uiText7);
|
|
element4.Append((UIElement) uiList2);
|
|
this._list = uiList2;
|
|
UIScrollbar scrollbar = new UIScrollbar();
|
|
scrollbar.SetView(100f, 1000f);
|
|
scrollbar.Height.Set(0.0f, 1f);
|
|
scrollbar.HAlign = 1f;
|
|
this._scrollbar = scrollbar;
|
|
uiList2.SetScrollbar(scrollbar);
|
|
UITextPanel<LocalizedText> uiTextPanel = new UITextPanel<LocalizedText>(Language.GetText("UI.Back"), 0.7f, true);
|
|
uiTextPanel.Width.Set(-10f, 0.5f);
|
|
uiTextPanel.Height.Set(50f, 0.0f);
|
|
uiTextPanel.VAlign = 1f;
|
|
uiTextPanel.HAlign = 0.5f;
|
|
uiTextPanel.Top.Set(-45f, 0.0f);
|
|
uiTextPanel.OnMouseOver += new UIElement.MouseEvent(UIResourcePackInfoMenu.FadedMouseOver);
|
|
uiTextPanel.OnMouseOut += new UIElement.MouseEvent(UIResourcePackInfoMenu.FadedMouseOut);
|
|
uiTextPanel.OnClick += new UIElement.MouseEvent(this.GoBackClick);
|
|
uiTextPanel.SetSnapPoint("GoBack", 0);
|
|
element1.Append((UIElement) uiTextPanel);
|
|
}
|
|
|
|
public override void Recalculate()
|
|
{
|
|
if (this._scrollbar != null)
|
|
{
|
|
if (this._isScrollbarAttached && !this._scrollbar.CanScroll)
|
|
{
|
|
this._container.RemoveChild((UIElement) this._scrollbar);
|
|
this._isScrollbarAttached = false;
|
|
this._list.Width.Set(0.0f, 1f);
|
|
}
|
|
else if (!this._isScrollbarAttached && this._scrollbar.CanScroll)
|
|
{
|
|
this._container.Append((UIElement) this._scrollbar);
|
|
this._isScrollbarAttached = true;
|
|
this._list.Width.Set(-25f, 1f);
|
|
}
|
|
}
|
|
base.Recalculate();
|
|
}
|
|
|
|
private void GoBackClick(UIMouseEvent evt, UIElement listeningElement) => Main.MenuUI.SetState((UIState) this._resourceMenu);
|
|
|
|
private static void FadedMouseOver(UIMouseEvent evt, UIElement listeningElement)
|
|
{
|
|
SoundEngine.PlaySound(12);
|
|
((UIPanel) evt.Target).BackgroundColor = new Color(73, 94, 171);
|
|
((UIPanel) evt.Target).BorderColor = Colors.FancyUIFatButtonMouseOver;
|
|
}
|
|
|
|
private static void FadedMouseOut(UIMouseEvent evt, UIElement listeningElement)
|
|
{
|
|
((UIPanel) evt.Target).BackgroundColor = new Color(63, 82, 151) * 0.8f;
|
|
((UIPanel) evt.Target).BorderColor = Color.Black;
|
|
}
|
|
|
|
public override void Draw(SpriteBatch spriteBatch)
|
|
{
|
|
base.Draw(spriteBatch);
|
|
this.SetupGamepadPoints(spriteBatch);
|
|
}
|
|
|
|
private void SetupGamepadPoints(SpriteBatch spriteBatch)
|
|
{
|
|
UILinkPointNavigator.Shortcuts.BackButtonCommand = 1;
|
|
int idRangeStartInclusive = 3000;
|
|
int idRangeEndExclusive = idRangeStartInclusive;
|
|
List<SnapPoint> snapPoints = this.GetSnapPoints();
|
|
UILinkPoint uiLinkPoint = (UILinkPoint) null;
|
|
for (int index = 0; index < snapPoints.Count; ++index)
|
|
{
|
|
SnapPoint snap = snapPoints[index];
|
|
if (snap.Name == "GoBack")
|
|
uiLinkPoint = this._helper.MakeLinkPointFromSnapPoint(idRangeEndExclusive++, snap);
|
|
}
|
|
if (PlayerInput.UsingGamepadUI)
|
|
this._helper.MoveToVisuallyClosestPoint(idRangeStartInclusive, idRangeEndExclusive);
|
|
if (!Main.CreativeMenu.GamepadMoveToSearchButtonHack)
|
|
return;
|
|
Main.CreativeMenu.GamepadMoveToSearchButtonHack = false;
|
|
if (uiLinkPoint == null)
|
|
return;
|
|
UILinkPointNavigator.ChangePoint(uiLinkPoint.ID);
|
|
}
|
|
}
|
|
}
|