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_ContentBrowser_ScenarioLineComponent.c
Go to the documentation of this file.
1
/*
2
Component for a line in scenario browser.
3
*/
4
class
SCR_ContentBrowser_ScenarioLineComponent
:
SCR_BrowserListMenuEntryComponent
5
{
6
protected
ref
SCR_ContentBrowser_ScenarioLineWidgets
m_Widgets
=
new
SCR_ContentBrowser_ScenarioLineWidgets
;
7
8
protected
MissionWorkshopItem
m_Mission
;
9
10
protected
bool
m_bMouseButtonsEnabled
=
true
;
11
12
protected
const
string
MOD_ICON
=
"modIcon"
;
13
14
//------------------------------------------------------------------------------------------------
15
override
void
HandlerAttached
(
Widget
w)
16
{
17
m_Widgets
.Init(w);
18
19
if
(!
GetGame
().InPlayMode())
20
return
;
21
22
// Mouse interaction buttons
23
m_aMouseButtons
.Insert(
m_Widgets
.m_PlayComponent0);
24
m_aMouseButtons
.Insert(
m_Widgets
.m_ContinueComponent0);
25
m_aMouseButtons
.Insert(
m_Widgets
.m_RestartComponent0);
26
m_aMouseButtons
.Insert(
m_Widgets
.m_HostComponent0);
27
m_aMouseButtons
.Insert(
m_Widgets
.m_FindServersComponent0);
28
29
m_Widgets
.m_PlayComponent0.m_OnClicked.Insert(
OnPlay
);
30
m_Widgets
.m_ContinueComponent0.m_OnClicked.Insert(
OnContinue
);
31
m_Widgets
.m_RestartComponent0.m_OnClicked.Insert(
OnRestart
);
32
m_Widgets
.m_HostComponent0.m_OnClicked.Insert(
OnHost
);
33
m_Widgets
.m_FindServersComponent0.m_OnClicked.Insert(
OnFindServers
);
34
35
SCR_ServicesStatusHelper
.
RefreshPing
();
36
SCR_ServicesStatusHelper
.
GetOnCommStatusCheckFinished
().Insert(
OnCommStatusCheckFinished
);
37
38
super.HandlerAttached(w);
39
}
40
41
//------------------------------------------------------------------------------------------------
42
override
void
HandlerDeattached
(
Widget
w)
43
{
44
super.HandlerDeattached(w);
45
SCR_ServicesStatusHelper
.
GetOnCommStatusCheckFinished
().Remove(
OnCommStatusCheckFinished
);
46
}
47
48
//------------------------------------------------------------------------------------------------
49
override
void
UpdateModularButtons
()
50
{
51
if
(!
m_Mission
)
52
return
;
53
54
SCR_ScenarioUICommon
.
UpdateMouseButtonTooltips
(
m_CurrentTooltip
,
m_Mission
);
55
56
SCR_ERevisionAvailability availability =
SCR_ScenarioUICommon
.
GetOwnerRevisionAvailability
(
m_Mission
);
57
bool
inError = availability != SCR_ERevisionAvailability.ERA_AVAILABLE && availability != SCR_ERevisionAvailability.ERA_UNKNOWN_AVAILABILITY;
58
59
if
(
m_Widgets
.m_wSourceImageCommunity.IsVisible())
60
{
61
string
icon =
MOD_ICON
;
62
Color
color =
Color
.FromInt(
UIColors
.NEUTRAL_INFORMATION.PackToInt());
63
64
if
(inError)
65
{
66
icon =
SCR_WorkshopUiCommon
.
GetRevisionAvailabilityErrorTexture
(availability);
67
if
(
m_bFocused
)
68
color =
Color
.FromInt(
UIColors
.WARNING.PackToInt());
69
else
70
color =
Color
.FromInt(
UIColors
.WARNING_DISABLED.PackToInt());
71
}
72
73
m_Widgets
.m_wSourceImageCommunity.LoadImageFromSet(0,
UIConstants
.ICONS_IMAGE_SET, icon);
74
m_Widgets
.m_wSourceImageCommunity.SetIsColorInherited(!inError);
75
m_Widgets
.m_wSourceImageCommunity.SetColor(color);
76
}
77
78
SCR_ScenarioUICommon
.
UpdatePlayMouseButton
(
m_Widgets
.m_PlayComponent0,
m_Mission
,
m_bFocused
,
m_bMouseButtonsEnabled
);
79
SCR_ScenarioUICommon
.
UpdateContinueMouseButton
(
m_Widgets
.m_ContinueComponent0,
m_Mission
,
m_bFocused
,
m_bMouseButtonsEnabled
);
80
SCR_ScenarioUICommon
.
UpdateRestartMouseButton
(
m_Widgets
.m_RestartComponent0,
m_Mission
,
m_bFocused
,
m_bMouseButtonsEnabled
);
81
SCR_ScenarioUICommon
.
UpdateHostMouseButton
(
m_Widgets
.m_HostComponent0,
m_Mission
,
m_bFocused
,
m_bMouseButtonsEnabled
);
82
SCR_ScenarioUICommon
.
UpdateJoinMouseButton
(
m_Widgets
.m_FindServersComponent0,
m_Mission
,
m_bFocused
,
m_bMouseButtonsEnabled
);
83
84
super.UpdateModularButtons();
85
}
86
87
//------------------------------------------------------------------------------------------------
88
override
bool
SetFavorite
(
bool
favorite)
89
{
90
if
(!
m_Mission
|| !super.SetFavorite(favorite))
91
return
false
;
92
93
m_Mission
.SetFavorite(favorite);
94
return
true
;
95
}
96
97
//------------------------------------------------------------------------------------------------
98
override
void
OnTooltipShow
(
SCR_ScriptedWidgetTooltip
tooltip)
99
{
100
SCR_ScenarioUICommon
.
UpdateMouseButtonTooltips
(tooltip,
m_Mission
);
101
102
super.OnTooltipShow(tooltip);
103
}
104
105
//------------------------------------------------------------------------------------------------
106
protected
void
UpdateAllWidgets
()
107
{
108
if
(!
m_Mission
)
109
return
;
110
111
// Fav button
112
if
(
m_Mission
)
113
SetFavorite
(
m_Mission
.IsFavorite());
114
116
m_Widgets
.m_wNameText.SetText(
m_Mission
.Name());
117
119
/*
120
// Not supported yet - todo
121
*/
122
124
int
playerCount =
m_Mission
.GetPlayerCount();
125
bool
mp =
SCR_ScenarioUICommon
.
IsMultiplayer
(
m_Mission
);
126
127
m_Widgets
.m_wSinglePlayerImage.SetVisible(!
m_bMouseButtonsEnabled
&& !mp);
128
m_Widgets
.m_wMultiPlayerImage.SetVisible(!
m_bMouseButtonsEnabled
&& mp);
129
m_Widgets
.m_wPlayerCountText.SetText(playerCount.ToString());
130
132
int
timeSinceLastPlayedSeconds =
m_Mission
.GetTimeSinceLastPlay();
133
string
timeSinceLastPlayText;
134
135
if
(timeSinceLastPlayedSeconds > 0)
136
timeSinceLastPlayText =
SCR_FormatHelper
.
GetTimeSinceEventImprecise
(timeSinceLastPlayedSeconds);
137
else
138
timeSinceLastPlayText =
"-"
;
139
140
m_Widgets
.m_wLastPlayedText.SetText(timeSinceLastPlayText);
141
143
WorkshopItem
sourceAddon =
m_Mission
.GetOwner();
144
m_Widgets
.m_wSourceImageOfficial.SetVisible(sourceAddon == null);
145
m_Widgets
.m_wSourceImageCommunity.SetVisible(sourceAddon != null);
146
m_Widgets
.m_wSourceNameTextOfficial.SetVisible(sourceAddon == null);
147
m_Widgets
.m_wSourceNameTextCommunity.SetVisible(sourceAddon != null);
148
string
sourceAddonText =
string
.Empty;
149
if
(sourceAddon)
150
m_Widgets
.m_wSourceNameTextCommunity.SetText(sourceAddon.Name());
151
else
152
m_Widgets
.m_wSourceNameTextOfficial.SetText(
"#AR-Editor_Attribute_OverlayLogo_Reforger"
);
153
155
UpdateModularButtons
();
156
}
157
158
//------------------------------------------------------------------------------------------------
159
protected
void
OnPlay
()
160
{
161
if
(
m_OnMouseInteractionButtonClicked
)
162
m_OnMouseInteractionButtonClicked
.Invoke(
SCR_ScenarioUICommon
.BUTTON_PLAY);
163
}
164
165
//------------------------------------------------------------------------------------------------
166
protected
void
OnContinue
()
167
{
168
if
(
m_OnMouseInteractionButtonClicked
)
169
m_OnMouseInteractionButtonClicked
.Invoke(
SCR_ScenarioUICommon
.BUTTON_CONTINUE);
170
}
171
172
//------------------------------------------------------------------------------------------------
173
protected
void
OnRestart
()
174
{
175
if
(
m_OnMouseInteractionButtonClicked
)
176
m_OnMouseInteractionButtonClicked
.Invoke(
SCR_ScenarioUICommon
.BUTTON_RESTART);
177
}
178
179
//------------------------------------------------------------------------------------------------
180
protected
void
OnHost
()
181
{
182
if
(!
SCR_ScenarioUICommon
.
CanHost
(
m_Mission
))
183
return
;
184
185
if
(
m_OnMouseInteractionButtonClicked
)
186
m_OnMouseInteractionButtonClicked
.Invoke(
SCR_ScenarioUICommon
.BUTTON_HOST);
187
}
188
189
//------------------------------------------------------------------------------------------------
190
protected
void
OnFindServers
()
191
{
192
if
(!
SCR_ScenarioUICommon
.
CanJoin
(
m_Mission
))
193
return
;
194
195
if
(
m_OnMouseInteractionButtonClicked
)
196
m_OnMouseInteractionButtonClicked
.Invoke(
SCR_ScenarioUICommon
.BUTTON_FIND_SERVERS);
197
}
198
199
//------------------------------------------------------------------------------------------------
200
protected
void
OnCommStatusCheckFinished
(
SCR_ECommStatus
status,
float
responseTime,
float
lastSuccessTime,
float
lastFailTime)
201
{
202
UpdateModularButtons
();
203
}
204
205
//------------------------------------------------------------------------------------------------
207
void
NotifyScenarioUpdate
(
bool
itemDownloaded)
208
{
209
m_bMouseButtonsEnabled
= itemDownloaded;
210
UpdateModularButtons
();
211
212
m_Widgets
.m_wFavouriteButtonOverlay.SetVisible(itemDownloaded);
213
m_Widgets
.m_wLastPlayedTextSize.SetVisible(itemDownloaded);
214
215
UpdateAllWidgets
();
216
}
217
218
//------------------------------------------------------------------------------------------------
219
void
SetScenario
(
MissionWorkshopItem
mission)
220
{
221
m_Mission
= mission;
222
223
UpdateAllWidgets
();
224
}
225
226
//------------------------------------------------------------------------------------------------
227
MissionWorkshopItem
GetScenario
()
228
{
229
return
m_Mission
;
230
}
231
232
//------------------------------------------------------------------------------------------------
233
static
SCR_ContentBrowser_ScenarioLineComponent
FindComponent
(
Widget
w)
234
{
235
return
SCR_ContentBrowser_ScenarioLineComponent
.Cast(w.FindHandler(
SCR_ContentBrowser_ScenarioLineComponent
));
236
}
237
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_ECommStatus
SCR_ECommStatus
This class may become obsolete on BackendAPI update.
Definition
SCR_ServicesStatusHelper.c:3
Color
Definition
Color.c:13
MissionWorkshopItem
Definition
MissionWorkshopItem.c:13
SCR_BrowserListMenuEntryComponent
Definition
SCR_BrowserListMenuEntryComponent.c:9
SCR_ContentBrowser_ScenarioLineComponent
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:5
SCR_ContentBrowser_ScenarioLineComponent::SetFavorite
override bool SetFavorite(bool favorite)
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:88
SCR_ContentBrowser_ScenarioLineComponent::UpdateAllWidgets
void UpdateAllWidgets()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:106
SCR_ContentBrowser_ScenarioLineComponent::HandlerDeattached
override void HandlerDeattached(Widget w)
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:42
SCR_ContentBrowser_ScenarioLineComponent::OnFindServers
void OnFindServers()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:190
SCR_ContentBrowser_ScenarioLineComponent::OnPlay
void OnPlay()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:159
SCR_ContentBrowser_ScenarioLineComponent::m_Widgets
ref SCR_ContentBrowser_ScenarioLineWidgets m_Widgets
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:6
SCR_ContentBrowser_ScenarioLineComponent::OnCommStatusCheckFinished
void OnCommStatusCheckFinished(SCR_ECommStatus status, float responseTime, float lastSuccessTime, float lastFailTime)
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:200
SCR_ContentBrowser_ScenarioLineComponent::OnRestart
void OnRestart()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:173
SCR_ContentBrowser_ScenarioLineComponent::m_bMouseButtonsEnabled
bool m_bMouseButtonsEnabled
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:10
SCR_ContentBrowser_ScenarioLineComponent::HandlerAttached
override void HandlerAttached(Widget w)
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:15
SCR_ContentBrowser_ScenarioLineComponent::MOD_ICON
const string MOD_ICON
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:12
SCR_ContentBrowser_ScenarioLineComponent::FindComponent
static SCR_ContentBrowser_ScenarioLineComponent FindComponent(Widget w)
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:233
SCR_ContentBrowser_ScenarioLineComponent::SetScenario
void SetScenario(MissionWorkshopItem mission)
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:219
SCR_ContentBrowser_ScenarioLineComponent::NotifyScenarioUpdate
void NotifyScenarioUpdate(bool itemDownloaded)
Must be called when the scenario properties have been updated (set/clear favourite or similar).
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:207
SCR_ContentBrowser_ScenarioLineComponent::UpdateModularButtons
override void UpdateModularButtons()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:49
SCR_ContentBrowser_ScenarioLineComponent::OnHost
void OnHost()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:180
SCR_ContentBrowser_ScenarioLineComponent::GetScenario
MissionWorkshopItem GetScenario()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:227
SCR_ContentBrowser_ScenarioLineComponent::OnTooltipShow
override void OnTooltipShow(SCR_ScriptedWidgetTooltip tooltip)
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:98
SCR_ContentBrowser_ScenarioLineComponent::OnContinue
void OnContinue()
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:166
SCR_ContentBrowser_ScenarioLineComponent::m_Mission
MissionWorkshopItem m_Mission
Definition
SCR_ContentBrowser_ScenarioLineComponent.c:8
SCR_ContentBrowser_ScenarioLineWidgets
Definition
SCR_ContentBrowser_ScenarioLineWidgets.c:4
SCR_FormatHelper
Definition
SCR_FormatHelper.c:2
SCR_FormatHelper::GetTimeSinceEventImprecise
static string GetTimeSinceEventImprecise(int timeDiffSeconds)
Definition
SCR_FormatHelper.c:254
SCR_ListMenuEntryComponent::m_CurrentTooltip
SCR_ScriptedWidgetTooltip m_CurrentTooltip
Definition
SCR_ListMenuEntryComponent.c:21
SCR_ListMenuEntryComponent::m_OnMouseInteractionButtonClicked
ref ScriptInvokerString m_OnMouseInteractionButtonClicked
Definition
SCR_ListMenuEntryComponent.c:25
SCR_ListMenuEntryComponent::m_bFocused
bool m_bFocused
Definition
SCR_ListMenuEntryComponent.c:18
SCR_ListMenuEntryComponent::m_aMouseButtons
ref array< SCR_ModularButtonComponent > m_aMouseButtons
Definition
SCR_ListMenuEntryComponent.c:13
SCR_ScenarioUICommon
Definition
SCR_ScenarioUICommon.c:5
SCR_ScenarioUICommon::UpdateContinueMouseButton
static void UpdateContinueMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
Definition
SCR_ScenarioUICommon.c:439
SCR_ScenarioUICommon::UpdateMouseButtonTooltips
static void UpdateMouseButtonTooltips(SCR_ScriptedWidgetTooltip tooltip, MissionWorkshopItem mission)
Definition
SCR_ScenarioUICommon.c:628
SCR_ScenarioUICommon::CanJoin
static bool CanJoin(MissionWorkshopItem mission)
Definition
SCR_ScenarioUICommon.c:233
SCR_ScenarioUICommon::IsMultiplayer
static bool IsMultiplayer(MissionWorkshopItem mission)
Definition
SCR_ScenarioUICommon.c:93
SCR_ScenarioUICommon::CanHost
static bool CanHost(MissionWorkshopItem mission)
Definition
SCR_ScenarioUICommon.c:239
SCR_ScenarioUICommon::UpdateJoinMouseButton
static void UpdateJoinMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
Definition
SCR_ScenarioUICommon.c:538
SCR_ScenarioUICommon::UpdateHostMouseButton
static void UpdateHostMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
Definition
SCR_ScenarioUICommon.c:571
SCR_ScenarioUICommon::UpdateRestartMouseButton
static void UpdateRestartMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
Definition
SCR_ScenarioUICommon.c:455
SCR_ScenarioUICommon::UpdatePlayMouseButton
static void UpdatePlayMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
Definition
SCR_ScenarioUICommon.c:421
SCR_ScenarioUICommon::GetOwnerRevisionAvailability
static SCR_ERevisionAvailability GetOwnerRevisionAvailability(MissionWorkshopItem mission)
Definition
SCR_ScenarioUICommon.c:192
SCR_ScriptedWidgetTooltip
Definition
SCR_ScriptedWidgetTooltip.c:16
SCR_ServicesStatusHelper
Definition
SCR_ServicesStatusHelper.c:16
SCR_ServicesStatusHelper::GetOnCommStatusCheckFinished
static ScriptInvokerCommStatus GetOnCommStatusCheckFinished()
Definition
SCR_ServicesStatusHelper.c:422
SCR_ServicesStatusHelper::RefreshPing
static void RefreshPing()
Definition
SCR_ServicesStatusHelper.c:94
SCR_WorkshopUiCommon
Definition
SCR_WorkshopUiCommon.c:6
SCR_WorkshopUiCommon::GetRevisionAvailabilityErrorTexture
static string GetRevisionAvailabilityErrorTexture(WorkshopItem item)
Definition
SCR_WorkshopUiCommon.c:689
UIColors
Definition
Constants.c:17
UIConstants
Definition
Constants.c:151
Widget
Definition
Widget.c:13
WorkshopItem
Workshop Item instance.
Definition
WorkshopItem.c:14
scripts
Game
UI
Menu
ContentBrowser
ScenarioMenu
SCR_ContentBrowser_ScenarioLineComponent.c
Generated by
1.17.0