Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIClothStyleButton.cs
Go to the documentation of this file.
1
using
Microsoft.Xna.Framework
;
2
using
Microsoft.Xna.Framework.Graphics
;
3
using
ReLogic.Content
;
4
using
Terraria.Audio
;
5
using
Terraria.UI
;
6
7
namespace
Terraria.GameContent.UI.Elements
;
8
9
public
class
UIClothStyleButton
:
UIElement
10
{
11
private
readonly
Player
_player
;
12
13
public
readonly
int
ClothStyleId
;
14
15
private
readonly
Asset<Texture2D>
_BasePanelTexture
;
16
17
private
readonly
Asset<Texture2D>
_selectedBorderTexture
;
18
19
private
readonly
Asset<Texture2D>
_hoveredBorderTexture
;
20
21
private
readonly
UICharacter
_char
;
22
23
private
bool
_hovered
;
24
25
private
bool
_soundedHover
;
26
27
private
int
_realSkinVariant
;
28
29
public
UIClothStyleButton
(
Player
player,
int
clothStyleId)
30
{
31
_player
= player;
32
ClothStyleId
= clothStyleId;
33
Width
=
StyleDimension
.
FromPixels
(44f);
34
Height
=
StyleDimension
.
FromPixels
(80f);
35
_BasePanelTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanel"
, (
AssetRequestMode
)1);
36
_selectedBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelHighlight"
, (
AssetRequestMode
)1);
37
_hoveredBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelBorder"
, (
AssetRequestMode
)1);
38
_char
=
new
UICharacter
(
_player
, animated:
false
, hasBackPanel:
false
)
39
{
40
HAlign
= 0.5f,
41
VAlign
= 0.5f
42
};
43
Append
(
_char
);
44
}
45
46
public
override
void
Draw
(
SpriteBatch
spriteBatch)
47
{
48
_realSkinVariant
=
_player
.
skinVariant
;
49
_player.skinVariant =
ClothStyleId
;
50
base.Draw(spriteBatch);
51
_player.skinVariant =
_realSkinVariant
;
52
}
53
54
protected
override
void
DrawSelf
(
SpriteBatch
spriteBatch)
55
{
56
if
(
_hovered
)
57
{
58
if
(!
_soundedHover
)
59
{
60
SoundEngine
.
PlaySound
(12);
61
}
62
_soundedHover
=
true
;
63
}
64
else
65
{
66
_soundedHover
=
false
;
67
}
68
CalculatedStyle
dimensions =
GetDimensions
();
69
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);
70
if
(
_realSkinVariant
==
ClothStyleId
)
71
{
72
Utils
.
DrawSplicedPanel
(spriteBatch,
_selectedBorderTexture
.
Value
, (
int
)dimensions.
X
+ 3, (
int
)dimensions.
Y
+ 3, (
int
)dimensions.
Width
- 6, (
int
)dimensions.
Height
- 6, 10, 10, 10, 10,
Color
.
White
);
73
}
74
if
(
_hovered
)
75
{
76
Utils
.
DrawSplicedPanel
(spriteBatch,
_hoveredBorderTexture
.
Value
, (
int
)dimensions.
X
, (
int
)dimensions.
Y
, (
int
)dimensions.
Width
, (
int
)dimensions.
Height
, 10, 10, 10, 10,
Color
.
White
);
77
}
78
}
79
80
public
override
void
LeftMouseDown
(
UIMouseEvent
evt)
81
{
82
_player.skinVariant =
ClothStyleId
;
83
SoundEngine
.
PlaySound
(12);
84
base.LeftMouseDown(evt);
85
}
86
87
public
override
void
MouseOver
(
UIMouseEvent
evt)
88
{
89
base.MouseOver(evt);
90
_hovered
=
true
;
91
_char
.
SetAnimated
(animated:
true
);
92
}
93
94
public
override
void
MouseOut
(
UIMouseEvent
evt)
95
{
96
base.MouseOut(evt);
97
_hovered
=
false
;
98
_char
.
SetAnimated
(animated:
false
);
99
}
100
}
Microsoft.Xna.Framework.Graphics.SpriteBatch
Definition
SpriteBatch.cs:8
Microsoft.Xna.Framework.Graphics.Texture2D
Definition
Texture2D.cs:13
ReLogic.Content.Asset.Value
T Value
Definition
Asset.cs:26
ReLogic.Content.Asset
Definition
Asset.cs:8
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.UICharacter.SetAnimated
void SetAnimated(bool animated)
Definition
UICharacter.cs:147
Terraria.GameContent.UI.Elements.UICharacter
Definition
UICharacter.cs:10
Terraria.GameContent.UI.Elements.UIClothStyleButton._char
readonly UICharacter _char
Definition
UIClothStyleButton.cs:21
Terraria.GameContent.UI.Elements.UIClothStyleButton.ClothStyleId
readonly int ClothStyleId
Definition
UIClothStyleButton.cs:13
Terraria.GameContent.UI.Elements.UIClothStyleButton.MouseOver
override void MouseOver(UIMouseEvent evt)
Definition
UIClothStyleButton.cs:87
Terraria.GameContent.UI.Elements.UIClothStyleButton._BasePanelTexture
readonly Asset< Texture2D > _BasePanelTexture
Definition
UIClothStyleButton.cs:15
Terraria.GameContent.UI.Elements.UIClothStyleButton._realSkinVariant
int _realSkinVariant
Definition
UIClothStyleButton.cs:27
Terraria.GameContent.UI.Elements.UIClothStyleButton.MouseOut
override void MouseOut(UIMouseEvent evt)
Definition
UIClothStyleButton.cs:94
Terraria.GameContent.UI.Elements.UIClothStyleButton._selectedBorderTexture
readonly Asset< Texture2D > _selectedBorderTexture
Definition
UIClothStyleButton.cs:17
Terraria.GameContent.UI.Elements.UIClothStyleButton.UIClothStyleButton
UIClothStyleButton(Player player, int clothStyleId)
Definition
UIClothStyleButton.cs:29
Terraria.GameContent.UI.Elements.UIClothStyleButton.DrawSelf
override void DrawSelf(SpriteBatch spriteBatch)
Definition
UIClothStyleButton.cs:54
Terraria.GameContent.UI.Elements.UIClothStyleButton._player
readonly Player _player
Definition
UIClothStyleButton.cs:11
Terraria.GameContent.UI.Elements.UIClothStyleButton.Draw
override void Draw(SpriteBatch spriteBatch)
Definition
UIClothStyleButton.cs:46
Terraria.GameContent.UI.Elements.UIClothStyleButton._soundedHover
bool _soundedHover
Definition
UIClothStyleButton.cs:25
Terraria.GameContent.UI.Elements.UIClothStyleButton.LeftMouseDown
override void LeftMouseDown(UIMouseEvent evt)
Definition
UIClothStyleButton.cs:80
Terraria.GameContent.UI.Elements.UIClothStyleButton._hovered
bool _hovered
Definition
UIClothStyleButton.cs:23
Terraria.GameContent.UI.Elements.UIClothStyleButton._hoveredBorderTexture
readonly Asset< Texture2D > _hoveredBorderTexture
Definition
UIClothStyleButton.cs:19
Terraria.GameContent.UI.Elements.UIClothStyleButton
Definition
UIClothStyleButton.cs:10
Terraria.Main.Assets
static IAssetRepository Assets
Definition
Main.cs:209
Terraria.Main
Definition
Main.cs:79
Terraria.Player.skinVariant
int skinVariant
Definition
Player.cs:1033
Terraria.Player
Definition
Player.cs:42
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.Width
StyleDimension Width
Definition
UIElement.cs:27
Terraria.UI.UIElement.VAlign
float VAlign
Definition
UIElement.cs:65
Terraria.UI.UIElement.GetDimensions
CalculatedStyle GetDimensions()
Definition
UIElement.cs:382
Terraria.UI.UIElement
Definition
UIElement.cs:12
Terraria.UI.UIMouseEvent
Definition
UIMouseEvent.cs:6
Terraria.Utils.DrawSplicedPanel
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
Terraria.Utils
Definition
Utils.cs:29
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
Terraria.Audio
Definition
ActiveSound.cs:4
Terraria.GameContent.UI.Elements
Definition
AWorldListItem.cs:8
Terraria.UI
Definition
ChatLine.cs:3
Microsoft.Xna.Framework.Color.White
static Color White
Definition
Color.cs:350
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Terraria.UI.CalculatedStyle.X
float X
Definition
CalculatedStyle.cs:7
Terraria.UI.CalculatedStyle.Y
float Y
Definition
CalculatedStyle.cs:9
Terraria.UI.CalculatedStyle.Height
float Height
Definition
CalculatedStyle.cs:13
Terraria.UI.CalculatedStyle.Width
float Width
Definition
CalculatedStyle.cs:11
Terraria.UI.CalculatedStyle
Definition
CalculatedStyle.cs:6
Terraria.UI.StyleDimension.FromPixels
static StyleDimension FromPixels(float pixels)
Definition
StyleDimension.cs:30
Terraria.UI.StyleDimension
Definition
StyleDimension.cs:4
source
Terraria.GameContent.UI.Elements
UIClothStyleButton.cs
Generated by
1.10.0