Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIHairStyleButton.cs
Go to the documentation of this file.
5using Terraria.UI;
6
8
10{
11 private readonly Player _player;
12
13 public readonly int HairStyleId;
14
16
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;
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 {
48 }
49 _soundedHover = true;
50 }
51 else
52 {
53 _soundedHover = false;
54 }
55 Vector2 vector = new Vector2(-5f, -5f);
56 base.DrawSelf(spriteBatch);
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 {
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;
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}
void Draw(Texture2D texture, Vector2 position, Color color)
static void PlaySound(int type, Vector2 position, int style=1)
override void DrawSelf(SpriteBatch spriteBatch)
static IPlayerRenderer PlayerRenderer
Definition Main.cs:291
static Camera Camera
Definition Main.cs:289
static IAssetRepository Assets
Definition Main.cs:209
StyleDimension Height
Definition UIElement.cs:29
StyleDimension Width
Definition UIElement.cs:27
CalculatedStyle GetDimensions()
Definition UIElement.cs:382
static StyleDimension FromPixels(float pixels)