Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UICharacterNameButton.cs
Go to the documentation of this file.
6using Terraria.UI;
7
9
11{
13
15
17
18 private bool _hovered;
19
20 private bool _soundedHover;
21
23
24 private string actualContents;
25
26 private UIText _text;
27
28 private UIText _title;
29
30 public readonly LocalizedText Description;
31
32 public float DistanceFromTitleToOption = 20f;
33
34 public UICharacterNameButton(LocalizedText titleText, LocalizedText emptyContentText, LocalizedText description = null)
35 {
38 Description = description;
39 _BasePanelTexture = Main.Assets.Request<Texture2D>("Images/UI/CharCreation/CategoryPanel", (AssetRequestMode)1);
40 _selectedBorderTexture = Main.Assets.Request<Texture2D>("Images/UI/CharCreation/CategoryPanelHighlight", (AssetRequestMode)1);
41 _hoveredBorderTexture = Main.Assets.Request<Texture2D>("Images/UI/CharCreation/CategoryPanelBorder", (AssetRequestMode)1);
42 _textToShowWhenEmpty = emptyContentText;
43 float textScale = 1f;
44 UIText uIText = new UIText(titleText, textScale)
45 {
46 HAlign = 0f,
47 VAlign = 0.5f,
49 };
50 Append(uIText);
51 _title = uIText;
52 UIText uIText2 = new UIText(Language.GetText("UI.PlayerNameSlot"), textScale)
53 {
54 HAlign = 0f,
55 VAlign = 0.5f,
57 };
58 Append(uIText2);
59 _text = uIText2;
60 SetContents(null);
61 }
62
63 protected override void DrawSelf(SpriteBatch spriteBatch)
64 {
65 if (_hovered)
66 {
67 if (!_soundedHover)
68 {
70 }
71 _soundedHover = true;
72 }
73 else
74 {
75 _soundedHover = false;
76 }
77 CalculatedStyle dimensions = GetDimensions();
78 Utils.DrawSplicedPanel(spriteBatch, _BasePanelTexture.Value, (int)dimensions.X, (int)dimensions.Y, (int)dimensions.Width, (int)dimensions.Height, 10, 10, 10, 10, Color.White * 0.5f);
79 if (_hovered)
80 {
81 Utils.DrawSplicedPanel(spriteBatch, _hoveredBorderTexture.Value, (int)dimensions.X, (int)dimensions.Y, (int)dimensions.Width, (int)dimensions.Height, 10, 10, 10, 10, Color.White);
82 }
83 }
84
85 public void SetContents(string name)
86 {
87 actualContents = name;
88 if (string.IsNullOrEmpty(actualContents))
89 {
90 _text.TextColor = Color.Gray;
92 }
93 else
94 {
95 _text.TextColor = Color.White;
97 }
99 }
100
101 public void TrimDisplayIfOverElementDimensions(int padding)
102 {
103 CalculatedStyle dimensions = GetDimensions();
104 Point point = new Point((int)dimensions.X, (int)dimensions.Y);
105 Point point2 = new Point(point.X + (int)dimensions.Width, point.Y + (int)dimensions.Height);
106 Rectangle rectangle = new Rectangle(point.X, point.Y, point2.X - point.X, point2.Y - point.Y);
107 CalculatedStyle dimensions2 = _text.GetDimensions();
108 Point point3 = new Point((int)dimensions2.X, (int)dimensions2.Y);
109 Point point4 = new Point(point3.X + (int)dimensions2.Width, point3.Y + (int)dimensions2.Height);
110 Rectangle rectangle2 = new Rectangle(point3.X, point3.Y, point4.X - point3.X, point4.Y - point3.Y);
111 int num = 0;
112 while (rectangle2.Right > rectangle.Right - padding)
113 {
114 _text.SetText(_text.Text.Substring(0, _text.Text.Length - 1));
115 num++;
117 dimensions2 = _text.GetDimensions();
118 point3 = new Point((int)dimensions2.X, (int)dimensions2.Y);
119 point4 = new Point(point3.X + (int)dimensions2.Width, point3.Y + (int)dimensions2.Height);
120 rectangle2 = new Rectangle(point3.X, point3.Y, point4.X - point3.X, point4.Y - point3.Y);
121 }
122 if (num > 0)
123 {
124 _text.SetText(_text.Text.Substring(0, _text.Text.Length - 1) + "…");
125 }
126 }
127
128 public override void LeftMouseDown(UIMouseEvent evt)
129 {
130 base.LeftMouseDown(evt);
131 }
132
133 public override void MouseOver(UIMouseEvent evt)
134 {
135 base.MouseOver(evt);
136 _hovered = true;
137 }
138
139 public override void MouseOut(UIMouseEvent evt)
140 {
141 base.MouseOut(evt);
142 _hovered = false;
143 }
144}
static void PlaySound(int type, Vector2 position, int style=1)
UICharacterNameButton(LocalizedText titleText, LocalizedText emptyContentText, LocalizedText description=null)
static LocalizedText GetText(string key)
Definition Language.cs:10
static IAssetRepository Assets
Definition Main.cs:209
StyleDimension Height
Definition UIElement.cs:29
void Append(UIElement element)
Definition UIElement.cs:166
CalculatedStyle GetInnerDimensions()
Definition UIElement.cs:377
StyleDimension Left
Definition UIElement.cs:25
virtual void RecalculateChildren()
Definition UIElement.cs:369
StyleDimension Width
Definition UIElement.cs:27
CalculatedStyle GetDimensions()
Definition UIElement.cs:382
static void DrawSplicedPanel(SpriteBatch sb, Texture2D texture, int x, int y, int w, int h, int leftEnd, int rightEnd, int topEnd, int bottomEnd, Color c)
Definition Utils.cs:1964
static StyleDimension FromPixels(float pixels)