Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_NTTextBase.c
Go to the documentation of this file.
1//------------------------------------------------------------------------------------------------
5{
6 [Attribute("14", UIWidgets.CheckBox, "Scaled text size at the beginning of the zone \n pixels")]
7 protected int m_fTextSizeMax;
8
9 [Attribute("14", UIWidgets.CheckBox, "Scaled text size at the end of the zone \n pixels")]
10 protected int m_fTextSizeMin;
11
12 [Attribute("{E2CBA6F76AAA42AF}UI/Fonts/Roboto/Roboto_Regular.fnt", UIWidgets.ResourceNamePicker, desc: "Font type", params: "fnt")]
14
15 //------------------------------------------------------------------------------------------------
20 protected void GetText(SCR_NameTagData data, out string name, out notnull array<string> nameParams)
21 {
22 return;
23 }
24
25 //------------------------------------------------------------------------------------------------
28 protected void SetText(SCR_NameTagData data, string text, notnull array<string> nameParams, int index)
29 {
30 if (!data.m_aNametagElements[index])
31 return;
32
33 int paramsCount = nameParams.Count();
34
35 if (paramsCount == 0)
36 TextWidget.Cast( data.m_aNametagElements[index] ).SetText(text);
37 else if (paramsCount == 3)
38 TextWidget.Cast( data.m_aNametagElements[index] ).SetTextFormat(text, nameParams[0], nameParams[1], nameParams[2]);
39 else
40 {
41 Print(string.Format("'SCR_NTTextBase' does not support nameParams of count '%1'!", paramsCount), LogLevel.ERROR);
42 TextWidget.Cast( data.m_aNametagElements[index] ).SetText(text);
43 }
44
45 }
46
47 //------------------------------------------------------------------------------------------------
48 override protected void ScaleElement(SCR_NameTagData data, int index)
49 {
50 Widget widget = data.m_aNametagElements[index];
51 if (!widget)
52 return;
53
54 //At least one zone always need to be defined
56 if (!zone)
57 return;
58
59 float diff = m_fTextSizeMax - m_fTextSizeMin;
60
61 // avoid 0 as a starting point
62 int zoneStart = zone.GetZoneStart();
63 if ( zoneStart < 1 )
64 zoneStart = 1;
65
66 float lerp = Math.InverseLerp(zoneStart, zone.m_iZoneEnd, data.m_fDistance);
67 diff = diff * lerp;
68
69 float x = FrameSlot.GetSizeX(widget);
70 float y = FrameSlot.GetSizeY(widget);
71 float ratio = x / y;
72
73 float scaledY = m_fTextSizeMax - diff;
74
75 FrameSlot.SetSizeY(widget, scaledY);
76 FrameSlot.SetSizeX(widget, scaledY * ratio);
77 }
78
79 //------------------------------------------------------------------------------------------------
81 {
82 TextWidget tWidget = TextWidget.Cast( data.m_aNametagElements[index] );
83 if (!tWidget)
84 return;
85
87 if (!stateConf)
88 return;
89
90 tWidget.SetFont(m_FontResource);
91
92 if (!m_bScaleElement)
93 tWidget.SetExactFontSize(m_fTextSizeMax);
94
95 tWidget.SetColor(stateConf.m_vColor);
96 tWidget.SetShadow( stateConf.m_fShadowSize, stateConf.m_vShadowColor.PackToInt(), stateConf.m_fShadowOpacity, 0, 0);
97
98 data.SetVisibility(tWidget, stateConf.m_fOpacityDefault != 0, stateConf.m_fOpacityDefault, stateConf.m_bAnimateTransition); // transitions
99 }
100};
101
102//------------------------------------------------------------------------------------------------
106{
107 //------------------------------------------------------------------------------------------------
108 override void GetText(SCR_NameTagData data, out string name, out notnull array<string> nameParams)
109 {
110 data.UpdateEntityType();
111 data.GetName(name, nameParams);
112 }
113
114 //------------------------------------------------------------------------------------------------
115 override void UpdateElement(SCR_NameTagData data, int index)
116 {
117 super.UpdateElement(data, index);
118
119 if (data.m_Flags & ENameTagFlags.NAME_UPDATE || data.m_Flags & ENameTagFlags.ENT_TYPE_UPDATE)
120 {
121 string name;
122 array<string> nameParams = {};
123
124 GetText(data, name, nameParams);
125
126 if (name.IsEmpty())
127 SetText(data, "GETNAME_ERROR", nameParams, index);
128 else
129 {
130 SetText(data, name, nameParams, index);
131 data.m_Flags &= ~ENameTagFlags.NAME_UPDATE;
132 data.m_Flags &= ~ENameTagFlags.ENT_TYPE_UPDATE;
133 }
134 }
135 }
136};
137
138//------------------------------------------------------------------------------------------------
142{
143 //------------------------------------------------------------------------------------------------
144 override void GetText(SCR_NameTagData data, out string name, out notnull array<string> nameParams)
145 {
146 name = Math.Round(Math.Sqrt(data.m_fDistance)).ToString();
147 }
148
149 //------------------------------------------------------------------------------------------------
150 override void UpdateElement(SCR_NameTagData data, int index)
151 {
152 super.UpdateElement(data, index);
153
154 string name;
155 array<string> nameParams = {};
156
157 GetText(data, name, nameParams);
158 SetText(data, name, nameParams, index);
159 }
160};
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
string GetText()
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Get all prefabs that have the spawner data
it takes to automatically cancel a task when no enemy has been killed in the zone
ENameTagFlags
Nametag flags.
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition Math.c:13
SCR_NTStateConfigBase GetEntityStateConfig(SCR_NameTagData data)
Nametag element for name text.
Nametag text element state config.
Base nametag element for text.
void ScaleElement(SCR_NameTagData data, int index)
void GetText(SCR_NameTagData data, out string name, out notnull array< string > nameParams)
override void SetDefaults(SCR_NameTagData data, int index)
void SetText(SCR_NameTagData data, string text, notnull array< string > nameParams, int index)
ResourceName m_FontResource
Nametag element for distance debug text.
Nametag data.
static array< ref SCR_NameTagZone > GetNametagZones()
Custom names nametag element config.
Nametag zone config setup.
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
SCR_FieldOfViewSettings Attribute