Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIHairStyleButton.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
UIHairStyleButton
:
UIImageButton
10
{
11
private
readonly
Player
_player
;
12
13
public
readonly
int
HairStyleId
;
14
15
private
readonly
Asset<Texture2D>
_selectedBorderTexture
;
16
17
private
readonly
Asset<Texture2D>
_hoveredBorderTexture
;
18
19
private
bool
_hovered
;
20
21
private
bool
_soundedHover
;
22
23
private
int
_framesToSkip
;
24
25
public
UIHairStyleButton
(
Player
player,
int
hairStyleId)
26
: base(
Main
.Assets.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanel"
, (
AssetRequestMode
)1))
27
{
28
_player
= player;
29
HairStyleId
= hairStyleId;
30
Width
=
StyleDimension
.
FromPixels
(44f);
31
Height
=
StyleDimension
.
FromPixels
(44f);
32
_selectedBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelHighlight"
, (
AssetRequestMode
)1);
33
_hoveredBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelBorder"
, (
AssetRequestMode
)1);
34
}
35
36
public
void
SkipRenderingContent
(
int
timeInFrames)
37
{
38
_framesToSkip
= timeInFrames;
39
}
40
41
protected
override
void
DrawSelf
(
SpriteBatch
spriteBatch)
42
{
43
if
(
_hovered
)
44
{
45
if
(!
_soundedHover
)
46
{
47
SoundEngine
.
PlaySound
(12);
48
}
49
_soundedHover
=
true
;
50
}
51
else
52
{
53
_soundedHover
=
false
;
54
}
55
Vector2
vector =
new
Vector2
(-5f, -5f);
56
base.DrawSelf(spriteBatch);
57
if
(
_player
.
hair
==
HairStyleId
)
58
{
59
spriteBatch.
Draw
(
_selectedBorderTexture
.
Value
,
GetDimensions
().Center() -
_selectedBorderTexture
.Size() / 2f,
Color
.
White
);
60
}
61
if
(
_hovered
)
62
{
63
spriteBatch.
Draw
(
_hoveredBorderTexture
.
Value
,
GetDimensions
().Center() -
_hoveredBorderTexture
.Size() / 2f,
Color
.
White
);
64
}
65
if
(
_framesToSkip
> 0)
66
{
67
_framesToSkip
--;
68
return
;
69
}
70
int
hair =
_player
.
hair
;
71
_player.hair =
HairStyleId
;
72
Main
.
PlayerRenderer
.DrawPlayerHead(
Main
.
Camera
,
_player
,
GetDimensions
().Center() + vector);
73
_player.hair = hair;
74
}
75
76
public
override
void
LeftMouseDown
(
UIMouseEvent
evt)
77
{
78
_player.hair =
HairStyleId
;
79
SoundEngine
.
PlaySound
(12);
80
base.LeftMouseDown(evt);
81
}
82
83
public
override
void
MouseOver
(
UIMouseEvent
evt)
84
{
85
base.MouseOver(evt);
86
_hovered
=
true
;
87
}
88
89
public
override
void
MouseOut
(
UIMouseEvent
evt)
90
{
91
base.MouseOut(evt);
92
_hovered
=
false
;
93
}
94
}
Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw
void Draw(Texture2D texture, Vector2 position, Color color)
Definition
SpriteBatch.cs:397
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.UIHairStyleButton._framesToSkip
int _framesToSkip
Definition
UIHairStyleButton.cs:23
Terraria.GameContent.UI.Elements.UIHairStyleButton._selectedBorderTexture
readonly Asset< Texture2D > _selectedBorderTexture
Definition
UIHairStyleButton.cs:15
Terraria.GameContent.UI.Elements.UIHairStyleButton._hovered
bool _hovered
Definition
UIHairStyleButton.cs:19
Terraria.GameContent.UI.Elements.UIHairStyleButton._hoveredBorderTexture
readonly Asset< Texture2D > _hoveredBorderTexture
Definition
UIHairStyleButton.cs:17
Terraria.GameContent.UI.Elements.UIHairStyleButton.SkipRenderingContent
void SkipRenderingContent(int timeInFrames)
Definition
UIHairStyleButton.cs:36
Terraria.GameContent.UI.Elements.UIHairStyleButton.MouseOut
override void MouseOut(UIMouseEvent evt)
Definition
UIHairStyleButton.cs:89
Terraria.GameContent.UI.Elements.UIHairStyleButton._player
readonly Player _player
Definition
UIHairStyleButton.cs:11
Terraria.GameContent.UI.Elements.UIHairStyleButton.UIHairStyleButton
UIHairStyleButton(Player player, int hairStyleId)
Definition
UIHairStyleButton.cs:25
Terraria.GameContent.UI.Elements.UIHairStyleButton.LeftMouseDown
override void LeftMouseDown(UIMouseEvent evt)
Definition
UIHairStyleButton.cs:76
Terraria.GameContent.UI.Elements.UIHairStyleButton.DrawSelf
override void DrawSelf(SpriteBatch spriteBatch)
Definition
UIHairStyleButton.cs:41
Terraria.GameContent.UI.Elements.UIHairStyleButton.HairStyleId
readonly int HairStyleId
Definition
UIHairStyleButton.cs:13
Terraria.GameContent.UI.Elements.UIHairStyleButton.MouseOver
override void MouseOver(UIMouseEvent evt)
Definition
UIHairStyleButton.cs:83
Terraria.GameContent.UI.Elements.UIHairStyleButton._soundedHover
bool _soundedHover
Definition
UIHairStyleButton.cs:21
Terraria.GameContent.UI.Elements.UIHairStyleButton
Definition
UIHairStyleButton.cs:10
Terraria.GameContent.UI.Elements.UIImageButton
Definition
UIImageButton.cs:10
Terraria.Main.PlayerRenderer
static IPlayerRenderer PlayerRenderer
Definition
Main.cs:291
Terraria.Main.Camera
static Camera Camera
Definition
Main.cs:289
Terraria.Main.Assets
static IAssetRepository Assets
Definition
Main.cs:209
Terraria.Main
Definition
Main.cs:79
Terraria.Player.hair
int hair
Definition
Player.cs:2147
Terraria.Player
Definition
Player.cs:42
Terraria.UI.UIElement.Height
StyleDimension Height
Definition
UIElement.cs:29
Terraria.UI.UIElement.Width
StyleDimension Width
Definition
UIElement.cs:27
Terraria.UI.UIElement.GetDimensions
CalculatedStyle GetDimensions()
Definition
UIElement.cs:382
Terraria.UI.UIMouseEvent
Definition
UIMouseEvent.cs:6
Microsoft.Xna.Framework.Graphics.SurfaceFormat.Vector2
@ Vector2
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
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
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
UIHairStyleButton.cs
Generated by
1.10.0