Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MapCampaignBuildingUI.c
Go to the documentation of this file.
2{
3 protected SCR_MapCampaignUI m_MapCampaignUI
4 protected SCR_CampaignBuildingProviderComponent m_TemporaryProviderComponent;
6
7 //------------------------------------------------------------------------------------------------
8 override void Init()
9 {
10 super.Init();
11
12 m_MapCampaignUI = SCR_MapCampaignUI.Cast(m_MapEntity.GetMapUIComponent(SCR_MapCampaignUI));
13 if (!m_MapCampaignUI)
14 return;
15
16 m_MapCampaignUI.GetOnBasesInited().Insert(OnBasesInited);
17 }
18
19 //------------------------------------------------------------------------------------------------
20 protected void OnBasesInited()
21 {
22 // register to base OnClick Event
23 array<SCR_CampaignMapUIBase> bases = {};
24 int count = m_MapCampaignUI.GetBases(bases);
25 for (int i = 0; i < count; i++)
26 {
27 bases[i].m_OnClick.Insert(OnBaseClicked);
28 }
29 }
30
31 //------------------------------------------------------------------------------------------------
32 protected void OnBaseClicked(SCR_CampaignMapUIBase baseUI)
33 {
34 array<SCR_CampaignBuildingProviderComponent> campaignBuildingProvides = {};
35 m_Base = baseUI.GetBase();
36
37 if (!m_Base)
38 return;
39
40 int providerCount = m_Base.GetBuildingProviders(campaignBuildingProvides);
42 if (providerCount > 0)
43 {
44 for (int i = 0; i < providerCount; i++)
45 {
46 if (campaignBuildingProvides[i].IsMasterProvider())
47 {
48 m_TemporaryProviderComponent = campaignBuildingProvides[i];
49 break;
50 }
51 }
52 }
53
55 return;
56
58 if (!playerEntity)
59 return;
60
61 // check player faction
62 if (!m_TemporaryProviderComponent.IsEntityFactionSame(playerEntity, m_TemporaryProviderComponent.GetOwner()))
63 return;
64
65 m_TemporaryProviderComponent.SetUseAllAvailableProvidersByPlayer(true);
66
68 aiBudgetData.SetShowBudgetInUI(true);
69
71 if (!editorManager)
72 return;
73
74 editorManager.GetOnModeAdd().Insert(OnModeAdded);
75 editorManager.GetOnClosed().Insert(OnModeClosed);
76
78 m_TemporaryProviderComponent.RequestEnterBuildingMode(playerID, true, true);
79 }
80
81 //------------------------------------------------------------------------------------------------
82 protected void OnCameraCreate(SCR_ManualCamera manualCamera)
83 {
85 if (!editorCameraManager)
86 return;
87
88 editorCameraManager.GetOnCameraCreate().Remove(OnCameraCreate);
89
90 // set the camera to the base position
91 if (m_Base)
92 editorCameraManager.SetPreActivateCameraPosition(m_Base.GetOwner().GetOrigin());
93 }
94
95 //------------------------------------------------------------------------------------------------
96 protected void OnModeAdded(SCR_EditorModeEntity modeEntity)
97 {
99 if (!editorManager)
100 return;
101
102 editorManager.GetOnModeAdd().Remove(OnModeAdded);
103
105 if (!editorCameraManager)
106 return;
107
108 editorCameraManager.GetOnCameraCreate().Insert(OnCameraCreate);
109 }
110
111 //------------------------------------------------------------------------------------------------
112 protected void OnModeClosed()
113 {
115 if (!editorManager)
116 return;
117
118 editorManager.GetOnClosed().Remove(OnModeClosed);
119
121 return;
122
123 m_TemporaryProviderComponent.SetUseAllAvailableProvidersByPlayer(false);
124
126 aiBudgetData.SetShowBudgetInUI(false);
127 }
128
129 //------------------------------------------------------------------------------------------------
131 {
133 if (!editorManager)
134 return null;
135
136 SCR_EditorModeEntity modeEntity = editorManager.FindModeEntity(EEditorMode.BUILDING);
137 if (!modeEntity)
138 return null;
139
141 }
142
143 //------------------------------------------------------------------------------------------------
146 {
148 if (!core)
149 return null;
150
151 return core.GetEditorManager();
152 }
153}
EEditableEntityBudget
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
SCR_CampaignMilitaryBaseComponent GetBase()
Core component to manage SCR_EditorManagerEntity.
SCR_EditorManagerEntity GetEditorManager()
void OnCameraCreate(SCR_ManualCamera manualCamera)
SCR_CampaignMilitaryBaseComponent m_Base
SCR_CampaignBuildingCameraEditorComponent GetCampaignBuildingCameraEditorComponent()
SCR_EditorManagerEntity GetEditorManager()
void OnModeAdded(SCR_EditorModeEntity modeEntity)
void OnBaseClicked(SCR_CampaignMapUIBase baseUI)
SCR_CampaignBuildingProviderComponent m_TemporaryProviderComponent
ScriptInvokerVoid GetOnBasesInited()
static int GetLocalPlayerId()
Returns either a valid ID of local player or 0.
static IEntity GetLocalControlledEntity()
EEditorMode
Editor mode that defines overall functionality.
Definition EEditorMode.c:6