Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIResourcePack.cs
Go to the documentation of this file.
4using Terraria.IO;
6using Terraria.UI;
7
9
10public class UIResourcePack : UIPanel
11{
12 private const int PANEL_PADDING = 5;
13
14 private const int ICON_SIZE = 64;
15
16 private const int ICON_BORDER_PADDING = 4;
17
18 private const int HEIGHT_FLUFF = 10;
19
20 private const float HEIGHT = 102f;
21
22 private const float MIN_WIDTH = 102f;
23
24 private static readonly Color DefaultBackgroundColor = new Color(26, 40, 89) * 0.8f;
25
26 private static readonly Color DefaultBorderColor = new Color(13, 20, 44) * 0.8f;
27
28 private static readonly Color HoverBackgroundColor = new Color(46, 60, 119);
29
30 private static readonly Color HoverBorderColor = new Color(20, 30, 56);
31
32 public readonly ResourcePack ResourcePack;
33
35
36 public int Order { get; set; }
37
38 public UIElement ContentPanel { get; private set; }
39
40 public UIResourcePack(ResourcePack pack, int order)
41 {
42 ResourcePack = pack;
43 Order = order;
51 SetPadding(5f);
52 _iconBorderTexture = Main.Assets.Request<Texture2D>("Images/UI/Achievement_Borders", (AssetRequestMode)1);
53 OverflowHidden = true;
55 }
56
57 private void BuildChildren()
58 {
61 UIText uIText = new UIText(ResourcePack.Name)
62 {
63 Left = left,
64 Top = top
65 };
66 Append(uIText);
67 top.Pixels += uIText.GetOuterDimensions().Height + 6f;
68 UIText uIText2 = new UIText(Language.GetTextValue("UI.Author", ResourcePack.Author), 0.7f)
69 {
70 Left = left,
71 Top = top
72 };
73 Append(uIText2);
74 top.Pixels += uIText2.GetOuterDimensions().Height + 10f;
75 Asset<Texture2D> val = Main.Assets.Request<Texture2D>("Images/UI/Divider", (AssetRequestMode)1);
76 UIImage uIImage = new UIImage(val)
77 {
79 Top = top,
80 Height = StyleDimension.FromPixels(val.Height()),
82 ScaleToFit = true
83 };
85 Append(uIImage);
86 top.Pixels += uIImage.GetOuterDimensions().Height + 5f;
87 UIElement uIElement = new UIElement
88 {
89 Left = left,
90 Top = top,
93 };
94 Append(uIElement);
95 ContentPanel = uIElement;
96 }
97
98 protected override void DrawSelf(SpriteBatch spriteBatch)
99 {
100 base.DrawSelf(spriteBatch);
101 DrawIcon(spriteBatch);
102 if (ResourcePack.Branding == ResourcePack.BrandingType.SteamWorkshop)
103 {
105 spriteBatch.Draw(val.Value, new Vector2(GetDimensions().X + GetDimensions().Width - (float)val.Width() - 3f, GetDimensions().Y + 2f), val.Frame(), Color.White);
106 }
107 }
108
109 private void DrawIcon(SpriteBatch spriteBatch)
110 {
111 CalculatedStyle innerDimensions = GetInnerDimensions();
112 spriteBatch.Draw(ResourcePack.Icon, new Rectangle((int)innerDimensions.X + 4, (int)innerDimensions.Y + 4 + 10, 64, 64), Color.White);
113 spriteBatch.Draw(_iconBorderTexture.Value, new Rectangle((int)innerDimensions.X, (int)innerDimensions.Y + 10, 72, 72), Color.White);
114 }
115
116 public override int CompareTo(object obj)
117 {
118 return Order.CompareTo(((UIResourcePack)obj).Order);
119 }
120
121 public override void MouseOver(UIMouseEvent evt)
122 {
123 base.MouseOver(evt);
126 }
127
128 public override void MouseOut(UIMouseEvent evt)
129 {
130 base.MouseOut(evt);
133 }
134}
void Draw(Texture2D texture, Vector2 position, Color color)
static Asset< Texture2D >[] Extra
override void DrawSelf(SpriteBatch spriteBatch)
override void MouseOver(UIMouseEvent evt)
UIResourcePack(ResourcePack pack, int order)
readonly BrandingType Branding
static string GetTextValue(string key)
Definition Language.cs:15
static IAssetRepository Assets
Definition Main.cs:209
CalculatedStyle GetOuterDimensions()
Definition UIElement.cs:387
StyleDimension Height
Definition UIElement.cs:29
StyleDimension MinWidth
Definition UIElement.cs:35
void Append(UIElement element)
Definition UIElement.cs:166
CalculatedStyle GetInnerDimensions()
Definition UIElement.cs:377
StyleDimension Left
Definition UIElement.cs:25
StyleDimension MaxHeight
Definition UIElement.cs:33
StyleDimension Width
Definition UIElement.cs:27
virtual void Recalculate()
Definition UIElement.cs:281
StyleDimension MinHeight
Definition UIElement.cs:37
CalculatedStyle GetDimensions()
Definition UIElement.cs:382
void SetPadding(float pixels)
Definition UIElement.cs:361
StyleDimension Top
Definition UIElement.cs:23
static StyleDimension FromPixels(float pixels)
static StyleDimension FromPercent(float percent)
static StyleDimension FromPixelsAndPercent(float pixels, float percent)