Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ItemTooltip.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
Terraria.Localization
;
3
4
namespace
Terraria.UI
;
5
6
public
class
ItemTooltip
7
{
8
public
static
readonly
ItemTooltip
None
=
new
ItemTooltip
();
9
10
private
static
readonly
List<TooltipProcessor>
_globalProcessors
=
new
List<TooltipProcessor>
();
11
12
private
static
ulong
_globalValidatorKey
= 1
uL
;
13
14
private
string
[]
_tooltipLines
;
15
16
private
ulong
_validatorKey
;
17
18
private
readonly
LocalizedText
_text
;
19
20
private
string
_processedText
;
21
22
public
int
Lines
23
{
24
get
25
{
26
ValidateTooltip
();
27
if
(
_tooltipLines
==
null
)
28
{
29
return
0;
30
}
31
return
_tooltipLines
.Length;
32
}
33
}
34
35
private
ItemTooltip
()
36
{
37
}
38
39
private
ItemTooltip
(
string
key)
40
{
41
_text
=
Language
.
GetText
(key);
42
}
43
44
public
static
ItemTooltip
FromLanguageKey
(
string
key)
45
{
46
if
(!
Language
.
Exists
(key))
47
{
48
return
None
;
49
}
50
return
new
ItemTooltip
(key);
51
}
52
53
public
string
GetLine
(
int
line
)
54
{
55
ValidateTooltip
();
56
return
_tooltipLines
[
line
];
57
}
58
59
private
void
ValidateTooltip
()
60
{
61
if
(
_validatorKey
==
_globalValidatorKey
)
62
{
63
return
;
64
}
65
_validatorKey
=
_globalValidatorKey
;
66
if
(
_text
==
null
)
67
{
68
_tooltipLines
=
null
;
69
_processedText
=
string
.Empty;
70
return
;
71
}
72
string
text =
_text
.
Value
;
73
foreach
(
TooltipProcessor
globalProcessor
in
_globalProcessors
)
74
{
75
text =
globalProcessor
(text);
76
}
77
_tooltipLines
= text.Split(
'\n'
);
78
_processedText
= text;
79
}
80
81
public
static
void
AddGlobalProcessor
(
TooltipProcessor
processor
)
82
{
83
_globalProcessors
.Add(
processor
);
84
}
85
86
public
static
void
RemoveGlobalProcessor
(
TooltipProcessor
processor
)
87
{
88
_globalProcessors
.Remove(
processor
);
89
}
90
91
public
static
void
ClearGlobalProcessors
()
92
{
93
_globalProcessors
.Clear();
94
}
95
96
public
static
void
InvalidateTooltips
()
97
{
98
_globalValidatorKey
++;
99
if
(
_globalValidatorKey
== ulong.MaxValue)
100
{
101
_globalValidatorKey
= 0
uL
;
102
}
103
}
104
}
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
Terraria.Localization.Language.GetText
static LocalizedText GetText(string key)
Definition
Language.cs:10
Terraria.Localization.Language.Exists
static bool Exists(string key)
Definition
Language.cs:45
Terraria.Localization.Language
Definition
Language.cs:7
Terraria.Localization.LocalizedText.Value
string Value
Definition
LocalizedText.cs:14
Terraria.Localization.LocalizedText
Definition
LocalizedText.cs:7
Terraria.UI.ItemTooltip.ItemTooltip
ItemTooltip(string key)
Definition
ItemTooltip.cs:39
Terraria.UI.ItemTooltip.ValidateTooltip
void ValidateTooltip()
Definition
ItemTooltip.cs:59
Terraria.UI.ItemTooltip._globalProcessors
static readonly List< TooltipProcessor > _globalProcessors
Definition
ItemTooltip.cs:10
Terraria.UI.ItemTooltip._globalValidatorKey
static ulong _globalValidatorKey
Definition
ItemTooltip.cs:12
Terraria.UI.ItemTooltip.ItemTooltip
ItemTooltip()
Definition
ItemTooltip.cs:35
Terraria.UI.ItemTooltip.AddGlobalProcessor
static void AddGlobalProcessor(TooltipProcessor processor)
Definition
ItemTooltip.cs:81
Terraria.UI.ItemTooltip.GetLine
string GetLine(int line)
Definition
ItemTooltip.cs:53
Terraria.UI.ItemTooltip._text
readonly LocalizedText _text
Definition
ItemTooltip.cs:18
Terraria.UI.ItemTooltip.InvalidateTooltips
static void InvalidateTooltips()
Definition
ItemTooltip.cs:96
Terraria.UI.ItemTooltip._validatorKey
ulong _validatorKey
Definition
ItemTooltip.cs:16
Terraria.UI.ItemTooltip.Lines
int Lines
Definition
ItemTooltip.cs:23
Terraria.UI.ItemTooltip.None
static readonly ItemTooltip None
Definition
ItemTooltip.cs:8
Terraria.UI.ItemTooltip._processedText
string _processedText
Definition
ItemTooltip.cs:20
Terraria.UI.ItemTooltip.ClearGlobalProcessors
static void ClearGlobalProcessors()
Definition
ItemTooltip.cs:91
Terraria.UI.ItemTooltip.RemoveGlobalProcessor
static void RemoveGlobalProcessor(TooltipProcessor processor)
Definition
ItemTooltip.cs:86
Terraria.UI.ItemTooltip._tooltipLines
string[] _tooltipLines
Definition
ItemTooltip.cs:14
Terraria.UI.ItemTooltip.FromLanguageKey
static ItemTooltip FromLanguageKey(string key)
Definition
ItemTooltip.cs:44
Terraria.UI.ItemTooltip
Definition
ItemTooltip.cs:7
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
Terraria.Localization
Definition
GameCulture.cs:5
Terraria.UI.TooltipProcessor
delegate string TooltipProcessor(string tooltip)
Terraria.UI
Definition
ChatLine.cs:3
source
Terraria.UI
ItemTooltip.cs
Generated by
1.10.0