Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TitleLinkButton.cs
Go to the documentation of this file.
1
using
System
;
2
using
Microsoft.Xna.Framework
;
3
using
Microsoft.Xna.Framework.Graphics
;
4
using
ReLogic.Content
;
5
using
ReLogic.OS
;
6
using
Terraria.Audio
;
7
using
Terraria.GameInput
;
8
using
Terraria.Localization
;
9
10
namespace
Terraria.DataStructures
;
11
12
public
class
TitleLinkButton
13
{
14
private
static
Item
_fakeItem
=
new
Item
();
15
16
public
string
TooltipTextKey
;
17
18
public
string
LinkUrl
;
19
20
public
Asset<Texture2D>
Image
;
21
22
public
Rectangle
?
FrameWhenNotSelected
;
23
24
public
Rectangle
?
FrameWehnSelected
;
25
26
public
void
Draw
(
SpriteBatch
spriteBatch,
Vector2
anchorPosition)
27
{
28
Rectangle
r =
Image
.Frame();
29
if
(
FrameWhenNotSelected
.HasValue)
30
{
31
r =
FrameWhenNotSelected
.Value;
32
}
33
Vector2
vector = r.Size();
34
Vector2
vector2 = anchorPosition - vector / 2f;
35
bool
flag =
false
;
36
if
(
Main
.
MouseScreen
.Between(vector2, vector2 + vector))
37
{
38
Main.LocalPlayer.mouseInterface =
true
;
39
flag =
true
;
40
DrawTooltip
();
41
TryClicking
();
42
}
43
Rectangle
? rectangle = (flag ?
FrameWehnSelected
:
FrameWhenNotSelected
);
44
Rectangle
rectangle2 =
Image
.Frame();
45
if
(rectangle.HasValue)
46
{
47
rectangle2 = rectangle.Value;
48
}
49
Texture2D
value
=
Image
.
Value
;
50
spriteBatch.
Draw
(
value
, anchorPosition, rectangle2,
Color
.
White
, 0f, rectangle2.Size() / 2f, 1f,
SpriteEffects
.None, 0f);
51
}
52
53
private
void
DrawTooltip
()
54
{
55
Item
fakeItem =
_fakeItem
;
56
fakeItem.
SetDefaults
(0, noMatCheck:
true
);
57
string
textValue =
Language
.
GetTextValue
(
TooltipTextKey
);
58
fakeItem.
SetNameOverride
(textValue);
59
fakeItem.type = 1;
60
fakeItem.scale = 0f;
61
fakeItem.rare = 8;
62
fakeItem.value = -1;
63
Main.HoverItem =
_fakeItem
;
64
Main
.
instance
.MouseText(
""
, 0, 0);
65
Main.mouseText =
true
;
66
}
67
68
private
void
TryClicking
()
69
{
70
if
(!
PlayerInput
.
IgnoreMouseInterface
&&
Main
.
mouseLeft
&&
Main
.
mouseLeftRelease
)
71
{
72
SoundEngine
.
PlaySound
(10);
73
Main.mouseLeftRelease =
false
;
74
OpenLink
();
75
}
76
}
77
78
private
void
OpenLink
()
79
{
80
try
81
{
82
Platform
.Get<
IPathService
>().OpenURL(
LinkUrl
);
83
}
84
catch
85
{
86
Console
.
WriteLine
(
"Failed to open link?!"
);
87
}
88
}
89
}
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
ReLogic.OS.Platform
Definition
Platform.cs:10
System.Console.WriteLine
static void WriteLine()
Definition
Console.cs:733
System.Console
Definition
Console.cs:11
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.DataStructures.TitleLinkButton.OpenLink
void OpenLink()
Definition
TitleLinkButton.cs:78
Terraria.DataStructures.TitleLinkButton.TooltipTextKey
string TooltipTextKey
Definition
TitleLinkButton.cs:16
Terraria.DataStructures.TitleLinkButton.FrameWhenNotSelected
Rectangle? FrameWhenNotSelected
Definition
TitleLinkButton.cs:22
Terraria.DataStructures.TitleLinkButton.FrameWehnSelected
Rectangle? FrameWehnSelected
Definition
TitleLinkButton.cs:24
Terraria.DataStructures.TitleLinkButton.TryClicking
void TryClicking()
Definition
TitleLinkButton.cs:68
Terraria.DataStructures.TitleLinkButton.Draw
void Draw(SpriteBatch spriteBatch, Vector2 anchorPosition)
Definition
TitleLinkButton.cs:26
Terraria.DataStructures.TitleLinkButton.DrawTooltip
void DrawTooltip()
Definition
TitleLinkButton.cs:53
Terraria.DataStructures.TitleLinkButton.Image
Asset< Texture2D > Image
Definition
TitleLinkButton.cs:20
Terraria.DataStructures.TitleLinkButton._fakeItem
static Item _fakeItem
Definition
TitleLinkButton.cs:14
Terraria.DataStructures.TitleLinkButton.LinkUrl
string LinkUrl
Definition
TitleLinkButton.cs:18
Terraria.DataStructures.TitleLinkButton
Definition
TitleLinkButton.cs:13
Terraria.GameInput.PlayerInput.IgnoreMouseInterface
static bool IgnoreMouseInterface
Definition
PlayerInput.cs:345
Terraria.GameInput.PlayerInput
Definition
PlayerInput.cs:18
Terraria.Item.SetDefaults
void SetDefaults(int Type=0)
Definition
Item.cs:47332
Terraria.Item.SetNameOverride
void SetNameOverride(string name)
Definition
Item.cs:49944
Terraria.Item
Definition
Item.cs:22
Terraria.Localization.Language.GetTextValue
static string GetTextValue(string key)
Definition
Language.cs:15
Terraria.Localization.Language
Definition
Language.cs:7
Terraria.Main.mouseLeftRelease
static bool mouseLeftRelease
Definition
Main.cs:1755
Terraria.Main.instance
static Main instance
Definition
Main.cs:283
Terraria.Main.MouseScreen
static Vector2 MouseScreen
Definition
Main.cs:2773
Terraria.Main.mouseLeft
static bool mouseLeft
Definition
Main.cs:614
Terraria.Main
Definition
Main.cs:79
ReLogic.OS.IPathService
Definition
IPathService.cs:4
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
Definition
IAssetReader.cs:5
ReLogic.OS
Definition
Clipboard.cs:3
System.ExceptionArgument.value
@ value
System
Definition
BlockingCollection.cs:8
Terraria.Audio
Definition
ActiveSound.cs:4
Terraria.DataStructures
Definition
AEntitySource_OnHit.cs:1
Terraria.GameInput
Definition
CursorMode.cs:1
Terraria.Localization
Definition
GameCulture.cs:5
Microsoft.Xna.Framework.Color.White
static Color White
Definition
Color.cs:350
Microsoft.Xna.Framework.Color
Definition
Color.cs:12
Microsoft.Xna.Framework.Rectangle
Definition
Rectangle.cs:12
Microsoft.Xna.Framework.Vector2
Definition
Vector2.cs:12
source
Terraria.DataStructures
TitleLinkButton.cs
Generated by
1.10.0