Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIResourcePackInfoMenu.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
Microsoft.Xna.Framework
;
3
using
Microsoft.Xna.Framework.Graphics
;
4
using
ReLogic.Content
;
5
using
Terraria.Audio
;
6
using
Terraria.GameContent.UI.Elements
;
7
using
Terraria.ID
;
8
using
Terraria.IO
;
9
using
Terraria.Localization
;
10
using
Terraria.UI
;
11
using
Terraria.UI.Gamepad
;
12
13
namespace
Terraria.GameContent.UI.States
;
14
15
public
class
UIResourcePackInfoMenu
:
UIState
16
{
17
private
UIResourcePackSelectionMenu
_resourceMenu
;
18
19
private
ResourcePack
_pack
;
20
21
private
UIElement
_container
;
22
23
private
UIList
_list
;
24
25
private
UIScrollbar
_scrollbar
;
26
27
private
bool
_isScrollbarAttached
;
28
29
private
const
string
_backPointName
=
"GoBack"
;
30
31
private
UIGamepadHelper
_helper
;
32
33
public
UIResourcePackInfoMenu
(
UIResourcePackSelectionMenu
parent,
ResourcePack
pack)
34
{
35
_resourceMenu
= parent;
36
_pack
= pack;
37
BuildPage
();
38
}
39
40
private
void
BuildPage
()
41
{
42
RemoveAllChildren
();
43
UIElement
uIElement
=
new
UIElement
();
44
uIElement
.Width.Set(0f, 0.8f);
45
uIElement
.MaxWidth.Set(500f, 0f);
46
uIElement
.MinWidth.Set(300f, 0f);
47
uIElement
.Top.Set(230f, 0f);
48
uIElement
.Height.Set(0f -
uIElement
.Top.Pixels, 1f);
49
uIElement.HAlign = 0.5f;
50
Append
(
uIElement
);
51
UIPanel
uIPanel
=
new
UIPanel
();
52
uIPanel
.Width.Set(0f, 1f);
53
uIPanel
.Height.Set(-110f, 1f);
54
uIPanel.BackgroundColor =
new
Color
(33, 43, 79) * 0.8f;
55
uIElement
.Append(
uIPanel
);
56
UIElement
uIElement2
=
new
UIElement
57
{
58
Width
=
StyleDimension
.
Fill
,
59
Height
=
StyleDimension
.
FromPixelsAndPercent
(0f, 1f)
60
};
61
uIPanel
.Append(
uIElement2
);
62
UIElement
uIElement3
=
new
UIElement
63
{
64
Width
=
new
StyleDimension
(0f, 1f),
65
Height
=
new
StyleDimension
(52f, 0f)
66
};
67
uIElement3
.SetPadding(0f);
68
uIElement2
.Append(
uIElement3
);
69
UIText
uIText
=
new
UIText
(
_pack
.
Name
, 0.7f,
large
:
true
)
70
{
71
TextColor = Color.Gold
72
};
73
uIText.HAlign = 0.5f;
74
uIText.VAlign = 0f;
75
uIElement3
.Append(
uIText
);
76
UIText
uIText2
=
new
UIText
(
Language
.
GetTextValue
(
"UI.Author"
,
_pack
.
Author
), 0.9f)
77
{
78
HAlign
= 0f,
79
VAlign
= 1f
80
};
81
uIText2
.Top.Set(-6f, 0f);
82
uIElement3
.Append(
uIText2
);
83
UIText
uIText3
=
new
UIText
(
Language
.
GetTextValue
(
"UI.Version"
,
_pack
.
Version
.
GetFormattedVersion
()), 0.9f)
84
{
85
HAlign
= 1f,
86
VAlign
= 1f,
87
TextColor = Color.Silver
88
};
89
uIText3
.Top.Set(-6f, 0f);
90
uIElement3
.Append(
uIText3
);
91
Asset<Texture2D>
val =
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/Divider"
, (
AssetRequestMode
)1);
92
UIImage
uIImage
=
new
UIImage
(val)
93
{
94
Width
=
StyleDimension
.
FromPixelsAndPercent
(0f, 1f),
95
Height
=
StyleDimension
.
FromPixels
(val.Height()),
96
ScaleToFit =
true
97
};
98
uIImage
.Top.Set(52f, 0f);
99
uIImage
.SetPadding(6f);
100
uIElement2
.Append(
uIImage
);
101
UIElement
uIElement4
=
new
UIElement
102
{
103
HAlign
= 0.5f,
104
VAlign
= 1f,
105
Width
=
StyleDimension
.
FromPixelsAndPercent
(0f, 1f),
106
Height
=
StyleDimension
.
FromPixelsAndPercent
(-74f, 1f)
107
};
108
uIElement2
.Append(
uIElement4
);
109
_container
=
uIElement4
;
110
UIText
item =
new
UIText
(
_pack
.
Description
)
111
{
112
HAlign
= 0.5f,
113
VAlign
= 0f,
114
Width
=
StyleDimension
.
FromPixelsAndPercent
(0f, 1f),
115
Height
=
StyleDimension
.
FromPixelsAndPercent
(0f, 0f),
116
IsWrapped =
true
,
117
WrappedTextBottomPadding = 0f
118
};
119
UIList
uIList
=
new
UIList
120
{
121
HAlign
= 0.5f,
122
VAlign
= 0f,
123
Width
=
StyleDimension
.
FromPixelsAndPercent
(0f, 1f),
124
Height
=
StyleDimension
.
FromPixelsAndPercent
(0f, 1f),
125
PaddingRight
= 20f
126
};
127
uIList.ListPadding = 5f;
128
uIList
.
Add
(item);
129
uIElement4
.Append(
uIList
);
130
_list
=
uIList
;
131
UIScrollbar
uIScrollbar
=
new
UIScrollbar
();
132
uIScrollbar
.SetView(100f, 1000f);
133
uIScrollbar
.Height.Set(0f, 1f);
134
uIScrollbar.HAlign = 1f;
135
_scrollbar
=
uIScrollbar
;
136
uIList
.SetScrollbar(
uIScrollbar
);
137
UITextPanel<LocalizedText>
uITextPanel
=
new
UITextPanel<LocalizedText>
(
Language
.
GetText
(
"UI.Back"
), 0.7f,
large
:
true
);
138
uITextPanel
.Width.Set(-10f, 0.5f);
139
uITextPanel
.Height.Set(50f, 0f);
140
uITextPanel.VAlign = 1f;
141
uITextPanel.HAlign = 0.5f;
142
uITextPanel
.Top.Set(-45f, 0f);
143
uITextPanel.OnMouseOver +=
FadedMouseOver
;
144
uITextPanel.OnMouseOut +=
FadedMouseOut
;
145
uITextPanel.OnLeftClick +=
GoBackClick
;
146
uITextPanel
.SetSnapPoint(
"GoBack"
, 0);
147
uIElement
.Append(
uITextPanel
);
148
}
149
150
public
override
void
Recalculate
()
151
{
152
if
(
_scrollbar
!=
null
)
153
{
154
if
(
_isScrollbarAttached
&& !
_scrollbar
.
CanScroll
)
155
{
156
_container
.
RemoveChild
(
_scrollbar
);
157
_isScrollbarAttached
=
false
;
158
_list
.
Width
.
Set
(0f, 1f);
159
}
160
else
if
(!
_isScrollbarAttached
&&
_scrollbar
.
CanScroll
)
161
{
162
_container
.
Append
(
_scrollbar
);
163
_isScrollbarAttached
=
true
;
164
_list
.
Width
.
Set
(-25f, 1f);
165
}
166
}
167
base
.Recalculate();
168
}
169
170
private
void
GoBackClick
(
UIMouseEvent
evt
,
UIElement
listeningElement
)
171
{
172
Main
.
MenuUI
.SetState(
_resourceMenu
);
173
}
174
175
private
static
void
FadedMouseOver
(
UIMouseEvent
evt
,
UIElement
listeningElement
)
176
{
177
SoundEngine
.
PlaySound
(12);
178
((
UIPanel
)
evt
.Target).BackgroundColor =
new
Color
(73, 94, 171);
179
((
UIPanel
)
evt
.Target).BorderColor =
Colors
.
FancyUIFatButtonMouseOver
;
180
}
181
182
private
static
void
FadedMouseOut
(
UIMouseEvent
evt
,
UIElement
listeningElement
)
183
{
184
((
UIPanel
)
evt
.Target).BackgroundColor =
new
Color
(63, 82, 151) * 0.8f;
185
((
UIPanel
)
evt
.Target).BorderColor =
Color
.
Black
;
186
}
187
188
public
override
void
Draw
(
SpriteBatch
spriteBatch)
189
{
190
base
.Draw(spriteBatch);
191
SetupGamepadPoints
(spriteBatch);
192
}
193
194
private
void
SetupGamepadPoints
(
SpriteBatch
spriteBatch)
195
{
196
UILinkPointNavigator.Shortcuts.BackButtonCommand = 1;
197
int
num = 3000;
198
int
idRangeEndExclusive
= num;
199
List<SnapPoint>
snapPoints
=
GetSnapPoints
();
200
for
(
int
i = 0; i <
snapPoints
.
Count
; i++)
201
{
202
SnapPoint
snapPoint
=
snapPoints
[i];
203
string
name =
snapPoint
.Name;
204
if
(name ==
"GoBack"
)
205
{
206
_helper
.
MakeLinkPointFromSnapPoint
(
idRangeEndExclusive
++,
snapPoint
);
207
}
208
}
209
_helper
.
MoveToVisuallyClosestPoint
(num,
idRangeEndExclusive
);
210
}
211
}
Microsoft.Xna.Framework.Graphics.SpriteBatch
Definition
SpriteBatch.cs:8
Microsoft.Xna.Framework.Graphics.Texture2D
Definition
Texture2D.cs:13
System.Collections.Generic.Dictionary.Count
int Count
Definition
Dictionary.cs:682
System.Collections.Generic.Dictionary.Add
void Add(TKey key, TValue value)
Definition
Dictionary.cs:873
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
Terraria.Audio.SoundEngine.PlaySound
static void PlaySound(int type, Vector2 position, int style=1)
Definition
SoundEngine.cs:71
Terraria.Audio.SoundEngine
Definition
SoundEngine.cs:10
Terraria.GameContent.UI.Elements.UIImage
Definition
UIImage.cs:9
Terraria.GameContent.UI.Elements.UIList
Definition
UIList.cs:11
Terraria.GameContent.UI.Elements.UIPanel
Definition
UIPanel.cs:9
Terraria.GameContent.UI.Elements.UIScrollbar.CanScroll
bool CanScroll
Definition
UIScrollbar.cs:39
Terraria.GameContent.UI.Elements.UIScrollbar
Definition
UIScrollbar.cs:10
Terraria.GameContent.UI.Elements.UIText
Definition
UIText.cs:12
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.Draw
override void Draw(SpriteBatch spriteBatch)
Definition
UIResourcePackInfoMenu.cs:188
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._pack
ResourcePack _pack
Definition
UIResourcePackInfoMenu.cs:19
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._backPointName
const string _backPointName
Definition
UIResourcePackInfoMenu.cs:29
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.SetupGamepadPoints
void SetupGamepadPoints(SpriteBatch spriteBatch)
Definition
UIResourcePackInfoMenu.cs:194
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.BuildPage
void BuildPage()
Definition
UIResourcePackInfoMenu.cs:40
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.FadedMouseOver
static void FadedMouseOver(UIMouseEvent evt, UIElement listeningElement)
Definition
UIResourcePackInfoMenu.cs:175
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._container
UIElement _container
Definition
UIResourcePackInfoMenu.cs:21
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.GoBackClick
void GoBackClick(UIMouseEvent evt, UIElement listeningElement)
Definition
UIResourcePackInfoMenu.cs:170
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._resourceMenu
UIResourcePackSelectionMenu _resourceMenu
Definition
UIResourcePackInfoMenu.cs:17
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._isScrollbarAttached
bool _isScrollbarAttached
Definition
UIResourcePackInfoMenu.cs:27
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._helper
UIGamepadHelper _helper
Definition
UIResourcePackInfoMenu.cs:31
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._scrollbar
UIScrollbar _scrollbar
Definition
UIResourcePackInfoMenu.cs:25
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.UIResourcePackInfoMenu
UIResourcePackInfoMenu(UIResourcePackSelectionMenu parent, ResourcePack pack)
Definition
UIResourcePackInfoMenu.cs:33
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.Recalculate
override void Recalculate()
Definition
UIResourcePackInfoMenu.cs:150
Terraria.GameContent.UI.States.UIResourcePackInfoMenu._list
UIList _list
Definition
UIResourcePackInfoMenu.cs:23
Terraria.GameContent.UI.States.UIResourcePackInfoMenu.FadedMouseOut
static void FadedMouseOut(UIMouseEvent evt, UIElement listeningElement)
Definition
UIResourcePackInfoMenu.cs:182
Terraria.GameContent.UI.States.UIResourcePackInfoMenu
Definition
UIResourcePackInfoMenu.cs:16
Terraria.GameContent.UI.States.UIResourcePackSelectionMenu
Definition
UIResourcePackSelectionMenu.cs:18
Terraria.ID.Colors.FancyUIFatButtonMouseOver
static readonly Color FancyUIFatButtonMouseOver
Definition
Colors.cs:91
Terraria.ID.Colors
Definition
Colors.cs:6
Terraria.IO.ResourcePack.Version
ResourcePackVersion Version
Definition
ResourcePack.cs:62
Terraria.IO.ResourcePack.Author
string Author
Definition
ResourcePack.cs:60
Terraria.IO.ResourcePack.Name
string Name
Definition
ResourcePack.cs:56
Terraria.IO.ResourcePack.Description
string Description
Definition
ResourcePack.cs:58
Terraria.IO.ResourcePack
Definition
ResourcePack.cs:15
Terraria.Localization.Language.GetText
static LocalizedText GetText(string key)
Definition
Language.cs:10
Terraria.Localization.Language.GetTextValue
static string GetTextValue(string key)
Definition
Language.cs:15
Terraria.Localization.Language
Definition
Language.cs:7
Terraria.Main.MenuUI
static UserInterface MenuUI
Definition
Main.cs:381
Terraria.Main.Assets
static IAssetRepository Assets
Definition
Main.cs:209
Terraria.Main
Definition
Main.cs:79
Terraria.UI.SnapPoint
Definition
SnapPoint.cs:8
Terraria.UI.UIElement.UIElement
UIElement()
Definition
UIElement.cs:117
Terraria.UI.UIElement.Height
StyleDimension Height
Definition
UIElement.cs:29
Terraria.UI.UIElement.HAlign
float HAlign
Definition
UIElement.cs:63
Terraria.UI.UIElement.Append
void Append(UIElement element)
Definition
UIElement.cs:166
Terraria.UI.UIElement.RemoveAllChildren
void RemoveAllChildren()
Definition
UIElement.cs:188
Terraria.UI.UIElement.Width
StyleDimension Width
Definition
UIElement.cs:27
Terraria.UI.UIElement.PaddingRight
float PaddingRight
Definition
UIElement.cs:51
Terraria.UI.UIElement.VAlign
float VAlign
Definition
UIElement.cs:65
Terraria.UI.UIElement.RemoveChild
void RemoveChild(UIElement child)
Definition
UIElement.cs:182
Terraria.UI.UIElement.GetSnapPoints
virtual List< SnapPoint > GetSnapPoints()
Definition
UIElement.cs:267
Terraria.UI.UIElement
Definition
UIElement.cs:12
Terraria.UI.UIMouseEvent
Definition
UIMouseEvent.cs:6
Terraria.UI.UIState
Definition
UIState.cs:4
Microsoft.Xna.Framework.Graphics.SurfaceFormat.Color
@ Color
Microsoft.Xna.Framework.Graphics
Definition
AlphaTestEffect.cs:1
Microsoft.Xna.Framework
Definition
AlphaTestEffect.cs:1
ReLogic.Content.AssetRequestMode
AssetRequestMode
Definition
AssetRequestMode.cs:4
ReLogic.Content
Definition
IAssetReader.cs:5
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
Terraria.Audio
Definition
ActiveSound.cs:4
Terraria.GameContent.UI.Elements
Definition
AWorldListItem.cs:8
Terraria.GameContent.UI.States
Definition
AWorkshopPublishInfoState.cs:19
Terraria.ID
Definition
AchievementHelperID.cs:1
Terraria.IO
Definition
FavoritesFile.cs:8
Terraria.Localization
Definition
GameCulture.cs:5
Terraria.UI.Gamepad
Definition
GamepadMainMenuHandler.cs:6
Terraria.UI
Definition
ChatLine.cs:3
Microsoft.Xna.Framework.Color.Black
static Color Black
Definition
Color.cs:92
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Terraria.GameContent.UI.States.UIGamepadHelper.MakeLinkPointFromSnapPoint
UILinkPoint MakeLinkPointFromSnapPoint(int id, SnapPoint snap)
Definition
UIGamepadHelper.cs:253
Terraria.GameContent.UI.States.UIGamepadHelper.MoveToVisuallyClosestPoint
void MoveToVisuallyClosestPoint(List< UILinkPoint > lostrefpoints)
Definition
UIGamepadHelper.cs:209
Terraria.GameContent.UI.States.UIGamepadHelper
Definition
UIGamepadHelper.cs:15
Terraria.IO.ResourcePackVersion.GetFormattedVersion
string GetFormattedVersion()
Definition
ResourcePackVersion.cs:83
Terraria.UI.StyleDimension.Fill
static StyleDimension Fill
Definition
StyleDimension.cs:5
Terraria.UI.StyleDimension.FromPixels
static StyleDimension FromPixels(float pixels)
Definition
StyleDimension.cs:30
Terraria.UI.StyleDimension.Set
void Set(float pixels, float precent)
Definition
StyleDimension.cs:19
Terraria.UI.StyleDimension.FromPixelsAndPercent
static StyleDimension FromPixelsAndPercent(float pixels, float percent)
Definition
StyleDimension.cs:40
Terraria.UI.StyleDimension
Definition
StyleDimension.cs:4
source
Terraria.GameContent.UI.States
UIResourcePackInfoMenu.cs
Generated by
1.10.0