Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIColoredImageButton.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
UIColoredImageButton
:
UIElement
10
{
11
private
Asset<Texture2D>
_backPanelTexture
;
12
13
private
Asset<Texture2D>
_texture
;
14
15
private
Asset<Texture2D>
_middleTexture
;
16
17
private
Asset<Texture2D>
_backPanelHighlightTexture
;
18
19
private
Asset<Texture2D>
_backPanelBorderTexture
;
20
21
private
Color
_color
;
22
23
private
float
_visibilityActive
= 1f;
24
25
private
float
_visibilityInactive
= 0.4f;
26
27
private
bool
_selected
;
28
29
private
bool
_hovered
;
30
31
public
UIColoredImageButton
(
Asset<Texture2D>
texture,
bool
isSmall =
false
)
32
{
33
_color
=
Color
.
White
;
34
_texture
= texture;
35
if
(isSmall)
36
{
37
_backPanelTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/SmallPanel"
, (
AssetRequestMode
)1);
38
}
39
else
40
{
41
_backPanelTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanel"
, (
AssetRequestMode
)1);
42
}
43
Width
.
Set
(
_backPanelTexture
.Width(), 0f);
44
Height
.
Set
(
_backPanelTexture
.Height(), 0f);
45
_backPanelHighlightTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelHighlight"
, (
AssetRequestMode
)1);
46
if
(isSmall)
47
{
48
_backPanelBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/SmallPanelBorder"
, (
AssetRequestMode
)1);
49
}
50
else
51
{
52
_backPanelBorderTexture
=
Main
.
Assets
.Request<
Texture2D
>(
"Images/UI/CharCreation/CategoryPanelBorder"
, (
AssetRequestMode
)1);
53
}
54
}
55
56
public
void
SetImage
(
Asset<Texture2D>
texture)
57
{
58
_texture
= texture;
59
Width
.
Set
(
_texture
.Width(), 0f);
60
Height
.
Set
(
_texture
.Height(), 0f);
61
}
62
63
public
void
SetImageWithoutSettingSize
(
Asset<Texture2D>
texture)
64
{
65
_texture
= texture;
66
}
67
68
protected
override
void
DrawSelf
(
SpriteBatch
spriteBatch)
69
{
70
CalculatedStyle
dimensions =
GetDimensions
();
71
Vector2
position = dimensions.
Position
() +
new
Vector2
(dimensions.
Width
, dimensions.
Height
) / 2f;
72
spriteBatch.
Draw
(
_backPanelTexture
.
Value
, position,
null
,
Color
.
White
* (base.IsMouseHovering ?
_visibilityActive
:
_visibilityInactive
), 0f,
_backPanelTexture
.Size() / 2f, 1f,
SpriteEffects
.None, 0f);
73
_ =
Color
.
White
;
74
if
(
_hovered
)
75
{
76
spriteBatch.
Draw
(
_backPanelBorderTexture
.
Value
, position,
null
,
Color
.
White
, 0f,
_backPanelBorderTexture
.Size() / 2f, 1f,
SpriteEffects
.None, 0f);
77
}
78
if
(
_selected
)
79
{
80
spriteBatch.
Draw
(
_backPanelHighlightTexture
.
Value
, position,
null
,
Color
.
White
, 0f,
_backPanelHighlightTexture
.Size() / 2f, 1f,
SpriteEffects
.None, 0f);
81
}
82
if
(
_middleTexture
!=
null
)
83
{
84
spriteBatch.
Draw
(
_middleTexture
.
Value
, position,
null
,
Color
.
White
, 0f,
_middleTexture
.Size() / 2f, 1f,
SpriteEffects
.None, 0f);
85
}
86
spriteBatch.
Draw
(
_texture
.
Value
, position,
null
,
_color
, 0f,
_texture
.Size() / 2f, 1f,
SpriteEffects
.None, 0f);
87
}
88
89
public
override
void
MouseOver
(
UIMouseEvent
evt)
90
{
91
base.MouseOver(evt);
92
SoundEngine
.
PlaySound
(12);
93
_hovered
=
true
;
94
}
95
96
public
void
SetVisibility
(
float
whenActive,
float
whenInactive)
97
{
98
_visibilityActive
=
MathHelper
.
Clamp
(whenActive, 0f, 1f);
99
_visibilityInactive
=
MathHelper
.
Clamp
(whenInactive, 0f, 1f);
100
}
101
102
public
void
SetColor
(
Color
color)
103
{
104
_color
= color;
105
}
106
107
public
void
SetMiddleTexture
(
Asset<Texture2D>
texAsset)
108
{
109
_middleTexture
= texAsset;
110
}
111
112
public
void
SetSelected
(
bool
selected)
113
{
114
_selected
= selected;
115
}
116
117
public
override
void
MouseOut
(
UIMouseEvent
evt)
118
{
119
base.MouseOut(evt);
120
_hovered
=
false
;
121
}
122
}
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
Microsoft.Xna.Framework.MathHelper.Clamp
static float Clamp(float value, float min, float max)
Definition
MathHelper.cs:46
Microsoft.Xna.Framework.MathHelper
Definition
MathHelper.cs:6
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.UIColoredImageButton._backPanelHighlightTexture
Asset< Texture2D > _backPanelHighlightTexture
Definition
UIColoredImageButton.cs:17
Terraria.GameContent.UI.Elements.UIColoredImageButton._selected
bool _selected
Definition
UIColoredImageButton.cs:27
Terraria.GameContent.UI.Elements.UIColoredImageButton._visibilityInactive
float _visibilityInactive
Definition
UIColoredImageButton.cs:25
Terraria.GameContent.UI.Elements.UIColoredImageButton._backPanelBorderTexture
Asset< Texture2D > _backPanelBorderTexture
Definition
UIColoredImageButton.cs:19
Terraria.GameContent.UI.Elements.UIColoredImageButton._color
Color _color
Definition
UIColoredImageButton.cs:21
Terraria.GameContent.UI.Elements.UIColoredImageButton.UIColoredImageButton
UIColoredImageButton(Asset< Texture2D > texture, bool isSmall=false)
Definition
UIColoredImageButton.cs:31
Terraria.GameContent.UI.Elements.UIColoredImageButton.SetVisibility
void SetVisibility(float whenActive, float whenInactive)
Definition
UIColoredImageButton.cs:96
Terraria.GameContent.UI.Elements.UIColoredImageButton._backPanelTexture
Asset< Texture2D > _backPanelTexture
Definition
UIColoredImageButton.cs:11
Terraria.GameContent.UI.Elements.UIColoredImageButton._middleTexture
Asset< Texture2D > _middleTexture
Definition
UIColoredImageButton.cs:15
Terraria.GameContent.UI.Elements.UIColoredImageButton.SetMiddleTexture
void SetMiddleTexture(Asset< Texture2D > texAsset)
Definition
UIColoredImageButton.cs:107
Terraria.GameContent.UI.Elements.UIColoredImageButton.MouseOver
override void MouseOver(UIMouseEvent evt)
Definition
UIColoredImageButton.cs:89
Terraria.GameContent.UI.Elements.UIColoredImageButton._texture
Asset< Texture2D > _texture
Definition
UIColoredImageButton.cs:13
Terraria.GameContent.UI.Elements.UIColoredImageButton.SetColor
void SetColor(Color color)
Definition
UIColoredImageButton.cs:102
Terraria.GameContent.UI.Elements.UIColoredImageButton.SetImage
void SetImage(Asset< Texture2D > texture)
Definition
UIColoredImageButton.cs:56
Terraria.GameContent.UI.Elements.UIColoredImageButton.SetSelected
void SetSelected(bool selected)
Definition
UIColoredImageButton.cs:112
Terraria.GameContent.UI.Elements.UIColoredImageButton.MouseOut
override void MouseOut(UIMouseEvent evt)
Definition
UIColoredImageButton.cs:117
Terraria.GameContent.UI.Elements.UIColoredImageButton.SetImageWithoutSettingSize
void SetImageWithoutSettingSize(Asset< Texture2D > texture)
Definition
UIColoredImageButton.cs:63
Terraria.GameContent.UI.Elements.UIColoredImageButton._visibilityActive
float _visibilityActive
Definition
UIColoredImageButton.cs:23
Terraria.GameContent.UI.Elements.UIColoredImageButton.DrawSelf
override void DrawSelf(SpriteBatch spriteBatch)
Definition
UIColoredImageButton.cs:68
Terraria.GameContent.UI.Elements.UIColoredImageButton._hovered
bool _hovered
Definition
UIColoredImageButton.cs:29
Terraria.GameContent.UI.Elements.UIColoredImageButton
Definition
UIColoredImageButton.cs:10
Terraria.Main.Assets
static IAssetRepository Assets
Definition
Main.cs:209
Terraria.Main
Definition
Main.cs:79
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.UIElement
Definition
UIElement.cs:12
Terraria.UI.UIMouseEvent
Definition
UIMouseEvent.cs:6
Microsoft.Xna.Framework.Graphics.SurfaceFormat.Vector2
@ Vector2
Microsoft.Xna.Framework.Graphics.SpriteEffects
SpriteEffects
Definition
SpriteEffects.cs:7
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.CalculatedStyle.Position
Vector2 Position()
Definition
CalculatedStyle.cs:28
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.Set
void Set(float pixels, float precent)
Definition
StyleDimension.cs:19
source
Terraria.GameContent.UI.Elements
UIColoredImageButton.cs
Generated by
1.10.0