Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_BudgetUIComponent.c
Go to the documentation of this file.
1
3{
4 [Attribute("0", UIWidgets.ComboBox, "", enums: ParamEnumArray.FromEnum(EEditableEntityBudget))]
6
7 [Attribute("")]
8 protected string m_sBudgetProgressRoot;
9
10 protected SCR_CampaignBuildingEditorComponent m_CampaignBuildingComponent;
13
14 protected int m_iCurrentBudget;
15 protected int m_iMaxBudget;
16 protected const int INVALID_BUDGET = -1;
17
18 //------------------------------------------------------------------------------------------------
19 // Override
20 //------------------------------------------------------------------------------------------------
21
22 //------------------------------------------------------------------------------------------------
24 {
25 super.HandlerAttachedScripted(w);
26
27 // Widget
28 Widget budgetRoot = w.FindAnyWidget(m_sBudgetProgressRoot);
29 if (!budgetRoot)
30 budgetRoot = w;
31
32 m_CampaignBuildingComponent = SCR_CampaignBuildingEditorComponent.Cast(SCR_CampaignBuildingEditorComponent.GetInstance(SCR_CampaignBuildingEditorComponent));
34
35 // Setup budget
38 {
40 m_BudgetManager.Event_OnBudgetUpdated.Insert(OnBudgetUpdate);
41 m_BudgetManager.Event_OnBudgetMaxUpdated.Insert(OnBudgetMaxUpdate);
42 m_BudgetManager.Event_OnBudgetPreviewUpdated.Insert(OnBudgetPreviewUpdate);
43 m_BudgetManager.Event_OnBudgetPreviewReset.Insert(ResetWidgetPreviewData);
44 }
45 }
46
47 //------------------------------------------------------------------------------------------------
48 override void HandlerDeattached(Widget w)
49 {
50 if (!m_BudgetManager)
51 return;
52
53 m_BudgetManager.Event_OnBudgetUpdated.Remove(OnBudgetUpdate);
54 m_BudgetManager.Event_OnBudgetMaxUpdated.Remove(OnBudgetMaxUpdate);
55 m_BudgetManager.Event_OnBudgetPreviewUpdated.Remove(OnBudgetPreviewUpdate);
56 m_BudgetManager.Event_OnBudgetPreviewReset.Remove(ResetWidgetPreviewData);
57 }
58
59 //------------------------------------------------------------------------------------------------
60 override protected bool IsUnique()
61 {
62 return false;
63 }
64
65 //------------------------------------------------------------------------------------------------
66 // Protected
67 //------------------------------------------------------------------------------------------------
68
69 //------------------------------------------------------------------------------------------------
70 protected void InitializeBudgets()
71 {
73 return;
74
75 SCR_CampaignBuildingProviderComponent providerComponent = m_CampaignBuildingComponent.GetProviderComponent();
76 if (!providerComponent)
77 {
78 m_CampaignBuildingComponent.GetManager().Close(); // build mode must have a provider
79 return;
80 }
81
82 EEditableEntityBudget budgetToShow = m_CampaignBuildingComponent.GetShownBudget();
83 if (budgetToShow == INVALID_BUDGET)
84 {
85 m_BudgetProgress.GetRootWidget().SetVisible(false);
86 return;
87 }
88
89 SetBudgetType(budgetToShow);
90
91 // Setup values
92 m_iCurrentBudget = m_BudgetManager.GetCurrentBudgetValue(m_BudgetType);
93 m_BudgetManager.GetMaxBudgetValue(m_BudgetType, m_iMaxBudget);
94
96 return;
97
98 m_BudgetProgress.HideBudgetChange();
99
100 if (m_iMaxBudget != 0)
102 }
103
104 //------------------------------------------------------------------------------------------------
105 // Callback
106 //------------------------------------------------------------------------------------------------
107
108 //------------------------------------------------------------------------------------------------
109 protected void OnBudgetUpdate(EEditableEntityBudget budgetType, int originalBudgetValue, int updatedBudgetValue, int maxBudgetValue)
110 {
111 m_iCurrentBudget = m_BudgetManager.GetCurrentBudgetValue(m_BudgetType);
112 m_BudgetManager.GetMaxBudgetValue(m_BudgetType, m_iMaxBudget);
113
114 m_BudgetProgress.HideBudgetChange();
116 }
117
118 //------------------------------------------------------------------------------------------------
119 protected void OnBudgetMaxUpdate(EEditableEntityBudget budgetType, int currentBudgetValue, int maxBudgetValue)
120 {
121 m_BudgetManager.GetMaxBudgetValue(m_BudgetType, m_iMaxBudget);
122 }
123
124 //------------------------------------------------------------------------------------------------
125 protected void OnBudgetPreviewUpdate(EEditableEntityBudget budgetType, float previewBudgetValue, float budgetChange)
126 {
127 if (m_BudgetType != budgetType)
128 return;
129
130 m_BudgetProgress.ShowBudgetChange(budgetChange, previewBudgetValue);
131 }
132
133 //------------------------------------------------------------------------------------------------
134 protected void ResetWidgetPreviewData()
135 {
136 m_BudgetProgress.HideBudgetChange();
137 }
138
139 //------------------------------------------------------------------------------------------------
141 protected void SetBudgetUIIcon(EEditableEntityBudget budgetType)
142 {
144 return;
145
146 SCR_EditableEntityCoreBudgetSetting budgetSettings = m_BudgetManager.GetBudgetSetting(budgetType);
147 if (!budgetSettings)
148 return;
149
150 SCR_UIInfo info = budgetSettings.GetInfo();
151 if (!info)
152 return;
153
154 info.SetIconTo(m_BudgetProgress.GetIconWidhget());
155 }
156
157 //------------------------------------------------------------------------------------------------
158 // Public
159 //------------------------------------------------------------------------------------------------
160
161 //------------------------------------------------------------------------------------------------
168
169 //------------------------------------------------------------------------------------------------
174
175 //------------------------------------------------------------------------------------------------
180}
EEditableEntityBudget
EDamageType type
Component to display budget progress.
EEditableEntityBudget m_BudgetType
void OnBudgetMaxUpdate(EEditableEntityBudget budgetType, int currentBudgetValue, int maxBudgetValue)
EEditableEntityBudget GetBudgetType()
SCR_BudgetProgressEditorUIComponent m_BudgetProgress
override void HandlerDeattached(Widget w)
void SetBudgetType(EEditableEntityBudget type)
Set a budget which will will be used in UI of provider detail.
SCR_CampaignBuildingEditorComponent m_CampaignBuildingComponent
void OnBudgetPreviewUpdate(EEditableEntityBudget budgetType, float previewBudgetValue, float budgetChange)
override void HandlerAttachedScripted(Widget w)
SCR_BudgetProgressEditorUIComponent GetUIComponent()
void SetBudgetUIIcon(EEditableEntityBudget budgetType)
Load icon of given budget from budgetUI and set it.
SCR_BudgetEditorComponent m_BudgetManager
void OnBudgetUpdate(EEditableEntityBudget budgetType, int originalBudgetValue, int updatedBudgetValue, int maxBudgetValue)
bool SetIconTo(ImageWidget imageWidget)
Definition SCR_UIInfo.c:102
static SCR_UIInfo GetInfo(BaseContainer source, string varName)
Definition SCR_UIInfo.c:133
SCR_FieldOfViewSettings Attribute