Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_BudgetUIComponent.c
Go to the documentation of this file.
1
2
class
SCR_BudgetUIComponent
:
SCR_BaseEditorUIComponent
3
{
4
[
Attribute
(
"0"
,
UIWidgets
.ComboBox,
""
, enums: ParamEnumArray.FromEnum(
EEditableEntityBudget
))]
5
protected
EEditableEntityBudget
m_BudgetType
;
6
7
[
Attribute
(
""
)]
8
protected
string
m_sBudgetProgressRoot
;
9
10
protected
SCR_CampaignBuildingEditorComponent
m_CampaignBuildingComponent
;
11
protected
SCR_BudgetEditorComponent
m_BudgetManager
;
12
protected
SCR_BudgetProgressEditorUIComponent
m_BudgetProgress
;
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
//------------------------------------------------------------------------------------------------
23
override
void
HandlerAttachedScripted
(
Widget
w)
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));
33
m_BudgetProgress
=
SCR_BudgetProgressEditorUIComponent
.Cast(budgetRoot.FindHandler(
SCR_BudgetProgressEditorUIComponent
));
34
35
// Setup budget
36
m_BudgetManager
=
SCR_BudgetEditorComponent
.Cast(
SCR_BudgetEditorComponent
.GetInstance(
SCR_BudgetEditorComponent
,
false
,
true
));
37
if
(
m_BudgetManager
)
38
{
39
InitializeBudgets
();
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
{
72
if
(!
m_CampaignBuildingComponent
|| !
m_BudgetManager
)
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
95
if
(!
m_CampaignBuildingComponent
)
96
return
;
97
98
m_BudgetProgress
.HideBudgetChange();
99
100
if
(
m_iMaxBudget
!= 0)
101
m_BudgetProgress
.ShowBudget(
m_iCurrentBudget
/
m_iMaxBudget
);
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();
115
m_BudgetProgress
.ShowBudget(
m_iCurrentBudget
/
m_iMaxBudget
);
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
{
143
if
(!
m_BudgetManager
|| !
m_BudgetProgress
)
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
//------------------------------------------------------------------------------------------------
163
void
SetBudgetType
(
EEditableEntityBudget
type
)
164
{
165
m_BudgetType
=
type
;
166
SetBudgetUIIcon
(
m_BudgetType
);
167
}
168
169
//------------------------------------------------------------------------------------------------
170
EEditableEntityBudget
GetBudgetType
()
171
{
172
return
m_BudgetType
;
173
}
174
175
//------------------------------------------------------------------------------------------------
176
SCR_BudgetProgressEditorUIComponent
GetUIComponent
()
177
{
178
return
m_BudgetProgress
;
179
}
180
}
EEditableEntityBudget
EEditableEntityBudget
Definition
EEditableEntityBudget.c:2
type
EDamageType type
Definition
SCR_DestructibleTreeV2.c:32
SCR_BaseEditorUIComponent
Definition
SCR_BaseEditorUIComponent.c:4
SCR_BudgetEditorComponent
Definition
SCR_BudgetEditorComponent.c:22
SCR_BudgetProgressEditorUIComponent
Definition
SCR_BudgetProgressEditorUIComponent.c:2
SCR_BudgetUIComponent
Component to display budget progress.
Definition
SCR_BudgetUIComponent.c:3
SCR_BudgetUIComponent::m_BudgetType
EEditableEntityBudget m_BudgetType
Definition
SCR_BudgetUIComponent.c:5
SCR_BudgetUIComponent::OnBudgetMaxUpdate
void OnBudgetMaxUpdate(EEditableEntityBudget budgetType, int currentBudgetValue, int maxBudgetValue)
Definition
SCR_BudgetUIComponent.c:119
SCR_BudgetUIComponent::m_iCurrentBudget
int m_iCurrentBudget
Definition
SCR_BudgetUIComponent.c:14
SCR_BudgetUIComponent::m_iMaxBudget
int m_iMaxBudget
Definition
SCR_BudgetUIComponent.c:15
SCR_BudgetUIComponent::INVALID_BUDGET
const int INVALID_BUDGET
Definition
SCR_BudgetUIComponent.c:16
SCR_BudgetUIComponent::GetBudgetType
EEditableEntityBudget GetBudgetType()
Definition
SCR_BudgetUIComponent.c:170
SCR_BudgetUIComponent::ResetWidgetPreviewData
void ResetWidgetPreviewData()
Definition
SCR_BudgetUIComponent.c:134
SCR_BudgetUIComponent::m_BudgetProgress
SCR_BudgetProgressEditorUIComponent m_BudgetProgress
Definition
SCR_BudgetUIComponent.c:12
SCR_BudgetUIComponent::HandlerDeattached
override void HandlerDeattached(Widget w)
Definition
SCR_BudgetUIComponent.c:48
SCR_BudgetUIComponent::m_sBudgetProgressRoot
string m_sBudgetProgressRoot
Definition
SCR_BudgetUIComponent.c:8
SCR_BudgetUIComponent::SetBudgetType
void SetBudgetType(EEditableEntityBudget type)
Set a budget which will will be used in UI of provider detail.
Definition
SCR_BudgetUIComponent.c:163
SCR_BudgetUIComponent::InitializeBudgets
void InitializeBudgets()
Definition
SCR_BudgetUIComponent.c:70
SCR_BudgetUIComponent::m_CampaignBuildingComponent
SCR_CampaignBuildingEditorComponent m_CampaignBuildingComponent
Definition
SCR_BudgetUIComponent.c:10
SCR_BudgetUIComponent::IsUnique
bool IsUnique()
Definition
SCR_BudgetUIComponent.c:60
SCR_BudgetUIComponent::OnBudgetPreviewUpdate
void OnBudgetPreviewUpdate(EEditableEntityBudget budgetType, float previewBudgetValue, float budgetChange)
Definition
SCR_BudgetUIComponent.c:125
SCR_BudgetUIComponent::HandlerAttachedScripted
override void HandlerAttachedScripted(Widget w)
Definition
SCR_BudgetUIComponent.c:23
SCR_BudgetUIComponent::GetUIComponent
SCR_BudgetProgressEditorUIComponent GetUIComponent()
Definition
SCR_BudgetUIComponent.c:176
SCR_BudgetUIComponent::SetBudgetUIIcon
void SetBudgetUIIcon(EEditableEntityBudget budgetType)
Load icon of given budget from budgetUI and set it.
Definition
SCR_BudgetUIComponent.c:141
SCR_BudgetUIComponent::m_BudgetManager
SCR_BudgetEditorComponent m_BudgetManager
Definition
SCR_BudgetUIComponent.c:11
SCR_BudgetUIComponent::OnBudgetUpdate
void OnBudgetUpdate(EEditableEntityBudget budgetType, int originalBudgetValue, int updatedBudgetValue, int maxBudgetValue)
Definition
SCR_BudgetUIComponent.c:109
SCR_UIInfo
Definition
SCR_UIInfo.c:8
SCR_UIInfo::SetIconTo
bool SetIconTo(ImageWidget imageWidget)
Definition
SCR_UIInfo.c:102
SCR_UIInfo::GetInfo
static SCR_UIInfo GetInfo(BaseContainer source, string varName)
Definition
SCR_UIInfo.c:133
UIWidgets
Definition
attributes.c:40
Widget
Definition
Widget.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
Editor
UI
Components
Toolbar
Building
SCR_BudgetUIComponent.c
Generated by
1.17.0