Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIDifficultyButton.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.Localization
;
6
using
Terraria.UI
;
7
8
namespace
Terraria.GameContent.UI.Elements
;
9
10
public
class
UIDifficultyButton
:
UIElement
11
{
12
private
readonly
Player
_player
;
13
14
private
readonly
Asset<Texture2D>
_BasePanelTexture
;
15
16
private
readonly
Asset<Texture2D>
_selectedBorderTexture
;
17
18
private
readonly
Asset<Texture2D>
_hoveredBorderTexture
;
19
20
private
readonly
byte
_difficulty
;
21
22
private
readonly
Color
_color
;
23
24
private
bool
_hovered
;
25
26
private
bool
_soundedHover
;
27
28
public
UIDifficultyButton
(
Player
player,
LocalizedText
title,
LocalizedText
description,
byte
difficulty,
Color
color)
29
{
30
_player
= player;
31
_difficulty
= difficulty;
32
Width
=
StyleDimension
.
FromPixels
(44f);
33
Height
=
StyleDimension
.
FromPixels
(110f);
34
_BasePanelTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/PanelGrayscale"
, (
AssetRequestMode
)1);
35
_selectedBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelHighlight"
, (
AssetRequestMode
)1);
36
_hoveredBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelBorder"
, (
AssetRequestMode
)1);
37
_color
= color;
38
UIText
element =
new
UIText
(title, 0.9f)
39
{
40
HAlign
= 0.5f,
41
VAlign
= 0f,
42
Width
=
StyleDimension
.
FromPixelsAndPercent
(-10f, 1f),
43
Top
=
StyleDimension
.
FromPixels
(5f)
44
};
45
Append
(element);
46
}
47
48
protected
override
void
DrawSelf
(
SpriteBatch
spriteBatch)
49
{
50
if
(
_hovered
)
51
{
52
if
(!
_soundedHover
)
53
{
54
SoundEngine
.
PlaySound
(12);
55
}
56
_soundedHover
=
true
;
57
}
58
else
59
{
60
_soundedHover
=
false
;
61
}
62
CalculatedStyle
dimensions =
GetDimensions
();
63
int
num = 7;
64
if
(dimensions.
Height
< 30f)
65
{
66
num = 5;
67
}
68
int
num2 = 10;
69
int
num3 = 10;
70
bool
num4 =
_difficulty
==
_player
.
difficulty
;
71
Utils
.
DrawSplicedPanel
(spriteBatch,
_BasePanelTexture
.
Value
, (
int
)dimensions.
X
, (
int
)dimensions.
Y
, (
int
)dimensions.
Width
, (
int
)dimensions.
Height
, num2, num2, num3, num3,
Color
.
Lerp
(
Color
.
Black
,
_color
, 0.8f) * 0.5f);
72
if
(num4)
73
{
74
Utils
.
DrawSplicedPanel
(spriteBatch,
_BasePanelTexture
.
Value
, (
int
)dimensions.
X
+ num, (
int
)dimensions.
Y
+ num - 2, (
int
)dimensions.
Width
- num * 2, (
int
)dimensions.
Height
- num * 2, num2, num2, num3, num3,
Color
.
Lerp
(
_color
,
Color
.
White
, 0.7f) * 0.5f);
75
}
76
if
(
_hovered
)
77
{
78
Utils
.
DrawSplicedPanel
(spriteBatch,
_hoveredBorderTexture
.
Value
, (
int
)dimensions.
X
, (
int
)dimensions.
Y
, (
int
)dimensions.
Width
, (
int
)dimensions.
Height
, num2, num2, num3, num3,
Color
.
White
);
79
}
80
}
81
82
public
override
void
LeftMouseDown
(
UIMouseEvent
evt)
83
{
84
_player.difficulty =
_difficulty
;
85
SoundEngine
.
PlaySound
(12);
86
base.LeftMouseDown(evt);
87
}
88
89
public
override
void
MouseOver
(
UIMouseEvent
evt)
90
{
91
base.MouseOver(evt);
92
_hovered
=
true
;
93
}
94
95
public
override
void
MouseOut
(
UIMouseEvent
evt)
96
{
97
base.MouseOut(evt);
98
_hovered
=
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.UIDifficultyButton._player
readonly Player _player
Definition
UIDifficultyButton.cs:12
Terraria.GameContent.UI.Elements.UIDifficultyButton.DrawSelf
override void DrawSelf(SpriteBatch spriteBatch)
Definition
UIDifficultyButton.cs:48
Terraria.GameContent.UI.Elements.UIDifficultyButton.MouseOver
override void MouseOver(UIMouseEvent evt)
Definition
UIDifficultyButton.cs:89
Terraria.GameContent.UI.Elements.UIDifficultyButton.MouseOut
override void MouseOut(UIMouseEvent evt)
Definition
UIDifficultyButton.cs:95
Terraria.GameContent.UI.Elements.UIDifficultyButton._soundedHover
bool _soundedHover
Definition
UIDifficultyButton.cs:26
Terraria.GameContent.UI.Elements.UIDifficultyButton._selectedBorderTexture
readonly Asset< Texture2D > _selectedBorderTexture
Definition
UIDifficultyButton.cs:16
Terraria.GameContent.UI.Elements.UIDifficultyButton._hoveredBorderTexture
readonly Asset< Texture2D > _hoveredBorderTexture
Definition
UIDifficultyButton.cs:18
Terraria.GameContent.UI.Elements.UIDifficultyButton._color
readonly Color _color
Definition
UIDifficultyButton.cs:22
Terraria.GameContent.UI.Elements.UIDifficultyButton.LeftMouseDown
override void LeftMouseDown(UIMouseEvent evt)
Definition
UIDifficultyButton.cs:82
Terraria.GameContent.UI.Elements.UIDifficultyButton.UIDifficultyButton
UIDifficultyButton(Player player, LocalizedText title, LocalizedText description, byte difficulty, Color color)
Definition
UIDifficultyButton.cs:28
Terraria.GameContent.UI.Elements.UIDifficultyButton._difficulty
readonly byte _difficulty
Definition
UIDifficultyButton.cs:20
Terraria.GameContent.UI.Elements.UIDifficultyButton._BasePanelTexture
readonly Asset< Texture2D > _BasePanelTexture
Definition
UIDifficultyButton.cs:14
Terraria.GameContent.UI.Elements.UIDifficultyButton._hovered
bool _hovered
Definition
UIDifficultyButton.cs:24
Terraria.GameContent.UI.Elements.UIDifficultyButton
Definition
UIDifficultyButton.cs:11
Terraria.GameContent.UI.Elements.UIText
Definition
UIText.cs:12
Terraria.Localization.LocalizedText
Definition
LocalizedText.cs:7
Terraria.Main.Assets
static IAssetRepository Assets
Definition
Main.cs:209
Terraria.Main
Definition
Main.cs:79
Terraria.Player.difficulty
byte difficulty
Definition
Player.cs:1319
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.Top
StyleDimension Top
Definition
UIElement.cs:23
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.Localization
Definition
GameCulture.cs:5
Terraria.UI
Definition
ChatLine.cs:3
Microsoft.Xna.Framework.Color.Black
static Color Black
Definition
Color.cs:92
Microsoft.Xna.Framework.Color.Lerp
static Color Lerp(Color value1, Color value2, float amount)
Definition
Color.cs:491
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.FromPixelsAndPercent
static StyleDimension FromPixelsAndPercent(float pixels, float percent)
Definition
StyleDimension.cs:40
Terraria.UI.StyleDimension
Definition
StyleDimension.cs:4
source
Terraria.GameContent.UI.Elements
UIDifficultyButton.cs
Generated by
1.10.0