Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MapUISpawnPoint.c
Go to the documentation of this file.
2{
3 [Attribute("Select")]
4 protected string m_sSelection;
5 [Attribute("Base_Main")]
6 protected string m_sSpawnPoint;
7
10 protected string m_sFactionKey;
18 protected RichTextWidget m_wSuppliesText
19
20 protected SCR_ResourceComponent m_ResourceComponent;
21 protected SCR_ResourceConsumer m_ResourceConsumer;
24
25 //------------------------------------------------------------------------------
26 void Init(notnull SCR_SpawnPoint spawnPoint)
27 {
28 m_SpawnPoint = spawnPoint;
29 m_SpawnPointId = spawnPoint.GetRplId();
30 m_sFactionKey = spawnPoint.GetFactionKey();
31 // TODO@AS: Api?
32 m_wSpawnPointName.SetText(spawnPoint.GetSpawnPointName());
33 UpdateIcon();
34
35 if (!m_wSuppliesText)
36 return;
37
38 m_ResourceComponent = SCR_ResourceComponent.FindResourceComponent(spawnPoint);
39
41 return;
42
44
46 return;
47
49 m_ResourceSubscriptionHandleConsumer = GetGame().GetResourceSystemSubscriptionManager().RequestSubscriptionListenerHandle(m_ResourceConsumer, m_ResourceInventoryPlayerComponentRplId);
50
51 m_ResourceComponent.TEMP_GetOnInteractorReplicated().Insert(UpdateResources);
53 }
54
55 //------------------------------------------------------------------------------------------------
56 override void SetName(string name)
57 {
59 m_wSpawnPointName.SetText(name);
60 }
61
62 //------------------------------------------------------------------------------------------------
63 override vector GetPos()
64 {
65 return m_SpawnPoint.GetOrigin();
66 }
67
68 //------------------------------------------------------------------------------------------------
69 protected void UpdateResources()
70 {
72 return;
73
74 m_wSuppliesText.SetText(string.ToString(m_ResourceConsumer.GetAggregatedResourceValue()));
75 }
76
77 //---- REFACTOR NOTE START: This code will need to be refactored as current implementation is not conforming to the standards ----
78 //------------------------------------------------------------------------------
80 {
82
84 if (!core)
85 return;
86
87 SCR_Faction faction = SCR_Faction.Cast(GetGame().GetFactionManager().GetFactionByKey(m_sFactionKey));
88 if (faction)
89 {
91 ruleSet.UpdateSymbol(symbol, faction);
92 }
93 else
94 {
96 }
97
98 //Selection visuals
99 string selection;
100 string highlight;
101 switch (symbol.GetIdentity())
102 {
103 case EMilitarySymbolIdentity.INDFOR:
104 {
105 selection = "Neutral_Select";
106 highlight = "Neutral_Focus";
107 break;
108 }
109 case EMilitarySymbolIdentity.OPFOR:
110 {
111 selection = "Hostile_Select";
112 highlight = "Hostile_Focus";
113 break;
114 }
115 case EMilitarySymbolIdentity.BLUFOR:
116 {
117 selection = "Friend_Select";
118 highlight = "Friend_Focus";
119 break;
120 }
121 case EMilitarySymbolIdentity.UNKNOWN:
122 {
123 selection = "Unknown_Select";
124 highlight = "Unknown_Focus";
125 break;
126 }
127 }
128 m_bVisible = true;
129
130 m_wHighlightImg.LoadImageFromSet(0, m_sImageSetARO, highlight);
131 m_wSelectImg.LoadImageFromSet(0, m_sImageSetARO, selection);
132
133 if (SCR_PlayerSpawnPoint.Cast(m_SpawnPoint))
134 symbol.SetIcons(EMilitarySymbolIcon.RELAY);
135 else
136 symbol.SetIcons(EMilitarySymbolIcon.RESPAWN);
137
139 if (m_wGradient)
141
142 if (faction)
143 m_MilitarySymbolComponent.Update(symbol);
144 }
145 //---- REFACTOR NOTE END ----
146
147 //------------------------------------------------------------------------------
148 override void HandlerAttached(Widget w)
149 {
150 super.HandlerAttached(w);
151
152 m_wImageOverlay = w.FindAnyWidget("IconOverlay");
153 m_wSizeLayout = SizeLayoutWidget.Cast(w.FindAnyWidget("SizeLayout"));
154 m_wSpawnPointName = TextWidget.Cast(w.FindAnyWidget("Name"));
155 m_wSymbolOverlay = OverlayWidget.Cast(m_wImageOverlay.FindWidget("Symbol"));
156
157 if (!m_wSymbolOverlay)
158 return;
159
161
162 m_wButton = ButtonWidget.Cast(w.FindAnyWidget("Button"));
163
164 if (m_wButton)
165 m_wButton.SetEnabled(false);
166
167 m_wSupplies = w.FindAnyWidget("w_Supplies");
168
169 if (m_wSupplies)
170 m_wSuppliesText = RichTextWidget.Cast(m_wSupplies.FindAnyWidget("SuppliesText"));
171 }
172
173 //------------------------------------------------------------------------------------------------
174 override void HandlerDeattached(Widget w)
175 {
176 super.HandlerDeattached(w);
177
179 m_ResourceComponent.TEMP_GetOnInteractorReplicated().Remove(UpdateResources);
180
182 }
183
184 //------------------------------------------------------------------------------
185 override void SelectIcon(bool invoke = true)
186 {
187 if (!m_wSelectImg)
188 return;
189
191 s_SelectedElement.Select(false);
192
193 Select();
194
195 m_wSelectImg.SetVisible(true);
196 if (m_wGradient)
197 m_wGradient.SetVisible(true);
198
199 if (m_bIsSelected && invoke)
200 m_Parent.OnSpawnPointSelected(m_SpawnPointId);
201 }
202
203 // todo@lk: plug this somewhere later
204 // protected void OnSelected(SCR_SpawnPoint sp)
205 // {
206 // if (!sp)
207 // return;
208 // if (sp == m_SpawnPoint)
209 // {
210 // AnimExpand();
211 // m_wRoot.SetZOrder(1);
212 // m_wSelectImg.SetVisible(true);
213 // if (m_wGradient)
214 // m_wGradient.SetVisible(true);
215 // }
216 // else
217 // {
218 // AnimCollapse();
219 // m_wRoot.SetZOrder(0);
220 // m_wSelectImg.SetVisible(false);
221 // if (m_wGradient)
222 // m_wGradient.SetVisible(false);
223 // }
224 // }
225
226 //------------------------------------------------------------------------------
227 override bool OnMouseEnter(Widget w, int x, int y)
228 {
230 m_wButton.SetEnabled(true);
231
232 GetGame().GetWorkspace().SetFocusedWidget(w);
233 super.OnMouseEnter(w, x, y);
234 m_wRoot.SetZOrder(1);
235 m_wHighlightImg.SetVisible(true);
236
237 if (m_wGradient)
238 m_wGradient.SetVisible(true);
239
240 if (!m_bIsSelected)
241 AnimExpand();
242
243 return false;
244 }
245
246 //------------------------------------------------------------------------------
247 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
248 {
249 super.OnMouseLeave(w, enterW, x, y);
250 m_wRoot.SetZOrder(0);
251 m_wHighlightImg.SetVisible(false);
253 m_wGradient.SetVisible(false);
254 if (!m_bIsSelected)
255 {
256 AnimCollapse();
257 }
258
259 if (RenderTargetWidget.Cast(enterW) && m_wButton.IsEnabled())
260 m_wButton.SetEnabled(false);
261
262 return false;
263 }
264
266 {
267 return m_SpawnPointId;
268 }
269};
EMilitarySymbolIdentity
EMilitarySymbolIcon
ArmaReforgerScripted GetGame()
Definition game.c:1398
EResourceGeneratorID
Main replication API.
Definition Replication.c:14
Replication item identifier.
Definition RplId.c:14
SCR_MilitarySymbolRuleSet GetSymbolRuleSet()
Color GetColorForFaction(string factionKey)
ResourceName m_sImageSetARO
static SCR_MapUIElement s_SelectedElement
ImageWidget m_wSelectImg
SCR_MapUIElementContainer m_Parent
ImageWidget m_wGradient
ImageWidget m_wHighlightImg
void Select(bool select=true)
override void HandlerAttached(Widget w)
SCR_ResourceComponent m_ResourceComponent
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
override RplId GetSpawnPointId()
SCR_ResourceConsumer m_ResourceConsumer
SizeLayoutWidget m_wSizeLayout
void Init(notnull SCR_SpawnPoint spawnPoint)
SCR_MilitarySymbolUIComponent m_MilitarySymbolComponent
override void SelectIcon(bool invoke=true)
override void SetName(string name)
override bool OnMouseEnter(Widget w, int x, int y)
RplId m_ResourceInventoryPlayerComponentRplId
SCR_SpawnPoint m_SpawnPoint
override void HandlerDeattached(Widget w)
OverlayWidget m_wSymbolOverlay
override vector GetPos()
ref SCR_ResourceSystemSubscriptionHandleBase m_ResourceSubscriptionHandleConsumer
void SetIcons(EMilitarySymbolIcon icons)
EMilitarySymbolIdentity GetIdentity()
void SetIdentity(EMilitarySymbolIdentity identity)
void UpdateSymbol(out notnull SCR_MilitarySymbol outSymbol, SCR_Faction faction)
Spawn point entity defines positions on which players can possibly spawn.
SCR_FieldOfViewSettings Attribute
FactionManagerClass GenericEntityClass GetFactionByKey(FactionKey factionKey)
proto external PlayerController GetPlayerController()
proto external string ToString()
Plain C++ pointer, no weak pointers, no memory management.