Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_InventoryIdentityItemWidgetComponent.c
Go to the documentation of this file.
2{
3 [Attribute("CharacterIdentityHolder")]
4 protected string m_sCharacterIdentityHolder;
5
6 [Attribute("GenericIdentityHolder")]
7 protected string m_sGenericIdentityHolder;
8
9 [Attribute("NameHolder")]
10 protected string m_sNameHolder;
11
12 [Attribute("Name")]
13 protected string m_sNameText;
14
15 [Attribute("CallsignHolder")]
16 protected string m_sCallsignHolder;
17
18 [Attribute("Callsign")]
19 protected string m_sCallsignText;
20
21 [Attribute("CreationHolder")]
22 protected string m_sCreationHolder;
23
24 [Attribute("CreationDate")]
25 protected string m_sCreationDateText;
26
27 [Attribute("BirthdayIcon")]
28 protected string m_sBirthdayIcon;
29
30 [Attribute("BloodTypeHolder")]
31 protected string m_sBloodTypeHolder;
32
33 [Attribute("BloodType")]
34 protected string m_sBloodTypeText;
35
36 [Attribute("PlaceOfCreation")]
37 protected string m_sPlaceOfCreationText;
38
39 [Attribute("BioHolder")]
40 protected string m_sBioHolder;
41
42 [Attribute("Bio")]
43 protected string m_sBioText;
44
45 [Attribute("ValuableIntelHolder")]
46 protected string m_sValuableIntelHolder;
47
48 //------------------------------------------------------------------------------------------------
49 void SetIdentityData(notnull SCR_IdentityInventoryItemComponent identityItemComponent, notnull SCR_ExtendedIdentityComponent linkedIdentity, SCR_IdentityBio identityBio)
50 {
52
53 ShowValuableIntelHint(identityManager);
54
55 Widget characterIdentityHolder = GetRootWidget().FindAnyWidget(m_sCharacterIdentityHolder);
56 Widget genericIdentityHolder = GetRootWidget().FindAnyWidget(m_sGenericIdentityHolder);
57
58 Widget activeIdentityHolder, inactiveIdentityHolder;
59
60 //~ Set character identity
61 if (linkedIdentity.GetIdentityType() == SCR_EIdentityType.CHARACTER)
62 {
63 activeIdentityHolder = characterIdentityHolder;
64 inactiveIdentityHolder = genericIdentityHolder;
65 }
66 //~ Set generic identity
67 else
68 {
69 activeIdentityHolder = genericIdentityHolder;
70 inactiveIdentityHolder = characterIdentityHolder;
71 }
72
73 if (inactiveIdentityHolder)
74 inactiveIdentityHolder.SetVisible(false);
75
76 //~ Could not find Identity Holder
77 if (!activeIdentityHolder)
78 return;
79
80 //~ Set name
81 Widget nameHolder = activeIdentityHolder.FindAnyWidget(m_sNameHolder);
82 if (nameHolder)
83 {
84 bool nameSet = false;
85
86 TextWidget nameText = TextWidget.Cast(nameHolder.FindAnyWidget(m_sNameText));
87
88 if (nameText)
89 {
90 //~ Get player name instead of Identity name
91 SCR_ExtendedCharacterIdentityComponent extendedCharacterIdentity = SCR_ExtendedCharacterIdentityComponent.Cast(linkedIdentity);
92 if (identityManager && extendedCharacterIdentity && identityManager.ShowPlayerNameOnIdentityItem())
93 {
94 if (extendedCharacterIdentity.GetPlayerID() > 0)
95 {
96 string playerName = SCR_PlayerNamesFilterCache.GetInstance().GetPlayerDisplayName(extendedCharacterIdentity.GetPlayerID());
97 nameText.SetText(playerName);
98
99 nameSet = !playerName.IsEmpty();
100 }
101 //~ Get player name via linked identity owner instead
102 else
103 {
104 IEntity identityOwner = linkedIdentity.GetOwner();
105 if (identityOwner)
106 {
107 int ownerPlayerId = GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(identityOwner);
108 if (ownerPlayerId > 0)
109 {
110 string ownerName = SCR_PlayerNamesFilterCache.GetInstance().GetPlayerDisplayName(ownerPlayerId);
111
112 nameText.SetText(ownerName);
113 nameSet = !ownerName.IsEmpty();
114 }
115 }
116 }
117 }
118
119 //~ Use Identity name instead
120 if (!nameSet)
121 {
122 SCR_CharacterIdentityComponent characterIdentity = SCR_CharacterIdentityComponent.Cast(linkedIdentity.GetOwner().FindComponent(SCR_CharacterIdentityComponent));
123 if (characterIdentity)
124 {
125 string format, fistName, alias, surName;
126 characterIdentity.GetFormattedFullName(format, fistName, alias, surName);
127
128 nameText.SetTextFormat(format, fistName, alias, surName);
129 nameSet = true;
130 }
131 else
132 {
133 SCR_EditableEntityComponent editableEntity = SCR_EditableEntityComponent.Cast(linkedIdentity.GetOwner().FindComponent(SCR_EditableEntityComponent));
134 if (editableEntity && editableEntity.GetEntityType() != EEditableEntityType.CHARACTER)
135 {
136 nameText.SetText(editableEntity.GetDisplayName());
137 nameSet = true;
138 }
139 }
140 }
141
142
143 }
144
145 if (!nameSet)
146 nameHolder.SetVisible(false);
147 }
148
149 //~ Set Callsign
150 Widget callsignHolder = activeIdentityHolder.FindAnyWidget(m_sCallsignHolder);
151 if (callsignHolder)
152 {
153 bool showCallsign = true;
154
155 FactionAffiliationComponent factionAffiliation = FactionAffiliationComponent.Cast(linkedIdentity.GetOwner().FindComponent(FactionAffiliationComponent));
156 if (factionAffiliation)
157 {
158 SCR_Faction faction = SCR_Faction.Cast(factionAffiliation.GetAffiliatedFaction());
159
160 if (faction)
161 showCallsign = faction.IsMilitary();
162 }
163
164 TextWidget callsignText = TextWidget.Cast(callsignHolder.FindAnyWidget(m_sCallsignText));
165 if (showCallsign && callsignText)
166 {
167 SCR_CallsignBaseComponent callsignComp = SCR_CallsignBaseComponent.Cast(linkedIdentity.GetOwner().FindComponent(SCR_CallsignBaseComponent));
168 if (callsignComp)
169 {
170 string company, platoon, squad, character, format;
171
172 if (callsignComp.GetCallsignNames(company, platoon, squad, character, format))
173 callsignText.SetTextFormat(format, company, platoon, squad, character);
174 else
175 callsignHolder.SetVisible(false);
176
177 }
178 else
179 {
180 callsignHolder.SetVisible(false);
181 }
182 }
183 else
184 {
185 callsignHolder.SetVisible(false);
186 }
187 }
188
189 //~ Creation / Birthday
190 Widget creationHolder = activeIdentityHolder.FindAnyWidget(m_sCreationHolder);
191 if (creationHolder)
192 {
193 TextWidget creationDateText = TextWidget.Cast(creationHolder.FindAnyWidget(m_sCreationDateText));
194 if (identityManager && creationDateText)
195 {
196 string format, day, month, year, age;
197 if (identityManager.GetCreationdayString(linkedIdentity, format, day, month, year, age))
198 {
199 creationDateText.SetTextFormat(format, day, month, year, age);
200
201 if (identityManager.IsCreationDay(linkedIdentity))
202 {
203 Widget birthDayWidget = creationHolder.FindAnyWidget(m_sBirthdayIcon);
204 if (birthDayWidget)
205 birthDayWidget.SetVisible(true);
206 }
207 }
208 else
209 {
210 creationDateText.SetVisible(false);
211 }
212 }
213
214 //~ Place of creation / Place of birth
215 TextWidget placeOfCreationText = TextWidget.Cast(creationHolder.FindAnyWidget(m_sPlaceOfCreationText));
216 if (placeOfCreationText)
217 {
218 SCR_ExtendedIdentity extendedIdentity = linkedIdentity.GetExtendedIdentity();
219 SCR_UIInfo uiInfo;
220
221 if (extendedIdentity)
222 uiInfo = extendedIdentity.GetPlaceOfOriginUIInfo();
223
224 if (uiInfo && !uiInfo.GetName().IsEmpty())
225 uiInfo.SetNameTo(placeOfCreationText);
226 else
227 placeOfCreationText.SetVisible(false);
228 }
229
230 //~ None set hide holder
231 if ((!creationDateText || !creationDateText.IsVisible()) && (!placeOfCreationText || !placeOfCreationText.IsVisible()))
232 creationHolder.SetVisible(false);
233 }
234
235 //~ Blood type
236 Widget bloodTypeHolder = activeIdentityHolder.FindAnyWidget(m_sBloodTypeHolder);
237 if (bloodTypeHolder)
238 {
239 TextWidget bloodTypeText = TextWidget.Cast(bloodTypeHolder.FindAnyWidget(m_sBloodTypeText));
240 if (identityManager && bloodTypeText)
241 {
242 SCR_ExtendedCharacterIdentity extendedIdentity = SCR_ExtendedCharacterIdentity.Cast(linkedIdentity.GetExtendedIdentity());
243 if (extendedIdentity)
244 {
245 SCR_UIInfo uiInfo = identityManager.GetBloodTypeUIInfo(extendedIdentity.GetBloodType());
246 if (uiInfo)
247 uiInfo.SetNameTo(bloodTypeText);
248 else
249 bloodTypeHolder.SetVisible(false);
250 }
251 else
252 {
253 bloodTypeHolder.SetVisible(false);
254 }
255 }
256 else
257 {
258 bloodTypeHolder.SetVisible(false);
259 }
260 }
261
262 //~ Set Bio
263 Widget bioHolder = activeIdentityHolder.FindAnyWidget(m_sBioHolder);
264 if (bioHolder)
265 {
266 if (identityBio)
267 {
268 TextWidget bioHolderText = TextWidget.Cast(bioHolder.FindAnyWidget(m_sBioText));
269 if (bioHolderText && !identityBio.GetBioText().IsEmpty())
270 {
271 bioHolderText.SetText(identityBio.GetBioText());
272 }
273 else
274 {
275 bioHolder.SetVisible(false);
276 }
277 }
278 else
279 {
280 bioHolder.SetVisible(false);
281 }
282 }
283
284 //~ Set ValuableIntel
285 Widget ValuableIntelHolder = activeIdentityHolder.FindAnyWidget(m_sValuableIntelHolder);
286 if (ValuableIntelHolder)
287 ValuableIntelHolder.SetVisible(identityItemComponent.HasValuableIntel());
288 }
289
290 //------------------------------------------------------------------------------------------------
292 {
293 if (!identityManager || !identityManager.IsGenerateValuableIntelEnabled())
294 return;
295
296 //~ Show hint when hovering over the item
297 identityManager.ShowHint(EHint.GAMEPLAY_PERSONAL_BELONGINGS);
298 }
299
300 //------------------------------------------------------------------------------------------------
301 protected bool GetCreationDay(notnull SCR_ExtendedIdentityComponent linkedIdentity, out string format, out string day, out string month, out string year, out string age, out bool isCreationDay)
302 {
304 if (!identityManager)
305 return false;
306
307 if (!identityManager.GetCreationdayString(linkedIdentity, format, day, month, year, age))
308 return false;
309
310 isCreationDay = identityManager.IsCreationDay(linkedIdentity);
311
312 return true;
313 }
314}
EHint
Definition EHint.c:11
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_EIdentityType
Component of assigning and storing squad names.
bool GetCallsignNames(out string company, out string platoon, out string squad, out string character, out string format)
EEditableEntityType GetEntityType(IEntity owner=null)
bool IsMilitary()
bool IsCreationDay(SCR_ExtendedIdentityComponent identityComponent)
bool GetCreationdayString(SCR_ExtendedIdentityComponent identityComponent, out string format, out string day, out string month, out string year, out string age)
SCR_UIInfo GetBloodTypeUIInfo(SCR_EBloodType bloodType)
static SCR_IdentityManagerComponent GetInstance()
void ShowHint(EHint hintType)
Show Extended Identity specific hints.
void SetIdentityData(notnull SCR_IdentityInventoryItemComponent identityItemComponent, notnull SCR_ExtendedIdentityComponent linkedIdentity, SCR_IdentityBio identityBio)
void ShowValuableIntelHint(SCR_IdentityManagerComponent identityManager)
bool GetCreationDay(notnull SCR_ExtendedIdentityComponent linkedIdentity, out string format, out string day, out string month, out string year, out string age, out bool isCreationDay)
EEditableEntityType
Defines type of SCR_EditableEntityComponent. Assigned automatically based on IEntity inheritance.
SCR_FieldOfViewSettings Attribute