Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MapLogisticUI.c
Go to the documentation of this file.
2{
3 [Attribute("{722AE78E8C0D6B71}UI/layouts/Campaign/LogisticBaseElement.layout", params: "layout")]
5
6 [Attribute("{94F1E2223D7E0588}UI/layouts/Campaign/ServiceHint.layout", params: "layout")]
8
9 //------------------------------------------------------------------------------------------------
10 protected void InitBases()
11 {
12 SCR_CampaignFaction faction = SCR_CampaignFaction.Cast(SCR_FactionManager.SGetLocalPlayerFaction());
13 if (!faction)
14 return;
15
17 array<SCR_MilitaryBaseComponent> bases = {};
18 militaryBaseSystem.GetBases(bases);
19
20 SCR_CampaignMilitaryBaseComponent campaignBasebase;
21 foreach (SCR_MilitaryBaseComponent base : bases)
22 {
23 campaignBasebase = SCR_CampaignMilitaryBaseComponent.Cast(base);
24
25 if (!campaignBasebase || !campaignBasebase.IsInitialized())
26 continue;
27
28 // Don't display enemy HQs and established bases which are out of radio range
29 if (faction != campaignBasebase.GetFaction() && (campaignBasebase.IsHQ() || (campaignBasebase.GetBuiltByPlayers() && !campaignBasebase.IsHQRadioTrafficPossible(faction))))
30 continue;
31
32 Widget w = GetGame().GetWorkspace().CreateWidgets(m_sBaseElement, m_wIconsContainer);
34 if (!handler)
35 return;
36
37 handler.SetParent(this);
38 handler.InitBase(campaignBasebase);
39 m_mIcons.Set(w, handler);
40 campaignBasebase.SetBaseUI(handler);
41
42 FrameSlot.SetSizeToContent(w, true);
43 FrameSlot.SetAlignment(w, 0.5, 0.5);
44 }
45
47 }
48
49 //------------------------------------------------------------------------------------------------
50 override void OnMapOpen(MapConfiguration config)
51 {
52 super.OnMapOpen(config);
53
54 Widget serviceHint = GetGame().GetWorkspace().CreateWidgets(m_sServiceHint, SCR_MapEntity.GetMapInstance().GetMapMenuRoot());
55 if (serviceHint)
56 {
57 FrameSlot.SetSizeToContent(serviceHint, true);
58 serviceHint.SetName("ServiceHintRoot");
59 serviceHint.SetVisible(false);
60 }
61
62 InitBases();
63 }
64
65 //------------------------------------------------------------------------------------------------
66 override void OnMapClose(MapConfiguration config)
67 {
68 super.OnMapClose(config);
69
70 foreach (Widget w, SCR_MapUIElement i : m_mIcons)
71 {
72 w.RemoveFromHierarchy();
73 delete w;
74 }
75
76 m_mIcons.Clear();
77 }
78
79 //------------------------------------------------------------------------------------------------
80 override void Update(float timeSlice)
81 {
82 super.Update(timeSlice);
83
84 SCR_CampaignLogisticMapUIBase logisticMapBase;
85 foreach (Widget w, SCR_MapUIElement mapUIElement : m_mIcons)
86 {
87 logisticMapBase = SCR_CampaignLogisticMapUIBase.Cast(mapUIElement);
88 if (!logisticMapBase)
89 continue;
90
91 if (logisticMapBase.IsSelected() && logisticMapBase.IsOpened())
92 {
93 GetGame().GetInputManager().ActivateContext("LogisticMapContext");
94 break;
95 }
96
97 }
98 }
99
100 //------------------------------------------------------------------------------------------------
102 {
103 foreach (Widget w, SCR_MapUIElement i : m_mIcons)
104 {
105 delete w;
106 }
107 }
108}
ArmaReforgerScripted GetGame()
Definition game.c:1398
void SCR_FactionManager(IEntitySource src, IEntity parent)
override void InitBase(SCR_CampaignMilitaryBaseComponent base)
void SetBaseUI(SCR_CampaignMapUIBase base)
Called from SCR_MapCampaignUI when base UI elements are initialized.
bool IsHQRadioTrafficPossible(notnull SCR_CampaignFaction faction, SCR_ERadioCoverageStatus direction=SCR_ERadioCoverageStatus.RECEIVE)
Widget GetMapMenuRoot()
Get map menu root widget.
static SCR_MapEntity GetMapInstance()
Get map entity instance.
override void OnMapClose(MapConfiguration config)
override void OnMapOpen(MapConfiguration config)
override void Update(float timeSlice)
ResourceName m_sServiceHint
ResourceName m_sBaseElement
ref map< Widget, SCR_MapUIElement > m_mIcons
int GetBases(notnull out array< SCR_MilitaryBaseComponent > bases)
static SCR_MilitaryBaseSystem GetInstance()
SCR_FieldOfViewSettings Attribute