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_ModDetailsAdditionalInfoDialog.c
Go to the documentation of this file.
1
class
SCR_ModDetailsAdditionalInfoDialog
:
SCR_ConfigurableDialogUi
2
{
3
protected
ref
SCR_ModDetailsAdditionalInfoDialogContentWidgets
m_Widgets
=
new
SCR_ModDetailsAdditionalInfoDialogContentWidgets
;
4
5
protected
SCR_WorkshopItem
m_Item
;
6
protected
SCR_InputButtonComponent
m_Licenses
;
7
8
//------------------------------------------------------------------------------------------------
9
static
SCR_ModDetailsAdditionalInfoDialog
CreateDialog
(
SCR_WorkshopItem
scriptedItem)
10
{
11
if
(!scriptedItem)
12
return
null;
13
14
WorkshopItem
item = scriptedItem.
GetWorkshopItem
();
15
if
(!item)
16
return
null;
17
18
string
licenseText = item.LicenseText();
19
20
array<WorkshopAuthor> contributors = {};
21
int
contributorsCount = item.Contributors(contributors);
22
23
string
tag =
"AdditionalInfo"
;
24
if
(licenseText.IsEmpty() && contributorsCount == 0)
25
tag =
"AdditionalInfo_Small"
;
26
27
SCR_ModDetailsAdditionalInfoDialog
dialog =
new
SCR_ModDetailsAdditionalInfoDialog
();
28
SCR_ConfigurableDialogUi
.
CreateFromPreset
(
SCR_WorkshopDialogs
.DIALOGS_CONFIG, tag, dialog);
29
30
dialog.
SetItem
(scriptedItem);
31
32
return
dialog;
33
}
34
35
// --- Overrides ---
36
//------------------------------------------------------------------------------------------------
37
override
void
OnMenuOpen
(
SCR_ConfigurableDialogUiPreset
preset)
38
{
39
super.OnMenuOpen(preset);
40
41
// Connection state
42
SCR_ServicesStatusHelper
.
RefreshPing
();
43
SCR_ServicesStatusHelper
.
GetOnCommStatusCheckFinished
().Insert(
OnCommStatusCheckFinished
);
44
45
BindButtonCancel
(
m_DynamicFooter
.FindButton(
UIConstants
.BUTTON_BACK));
46
47
m_Licenses
=
m_DynamicFooter
.FindButton(
"Licenses"
);
48
if
(
m_Licenses
)
49
m_Licenses
.m_OnActivated.Insert(
OnLicensesButton
);
50
51
m_Widgets
.Init(
GetContentLayoutRoot
());
52
}
53
54
//------------------------------------------------------------------------------------------------
55
override
void
OnMenuClose
()
56
{
57
super.OnMenuClose();
58
59
ClearWorkshopItemInvokers
();
60
SCR_ServicesStatusHelper
.
GetOnCommStatusCheckFinished
().Remove(
OnCommStatusCheckFinished
);
61
}
62
63
// --- Protected ---
64
//------------------------------------------------------------------------------------------------
65
protected
void
UpdateWidgets
(
bool
visible =
true
)
66
{
67
if
(!
m_Item
)
68
return
;
69
70
WorkshopItem
item =
m_Item
.GetWorkshopItem();
71
if
(!item)
72
return
;
73
74
// License
75
string
license = item.License();
76
string
customLicenseText = item.LicenseText();
77
78
m_Widgets
.m_wVerticalLayoutLicense.SetVisible(visible);
79
m_Widgets
.m_wLicenseName.SetText(license);
80
81
m_Widgets
.m_wLicenseContentOverlay.SetVisible(!customLicenseText.IsEmpty());
82
m_Widgets
.m_wLicenseContent.SetText(customLicenseText);
83
84
// Contributors
85
array<WorkshopAuthor> contributors = {};
86
int
contributorsCount = item.Contributors(contributors);
87
string
contributorsNames;
88
89
foreach
(
int
i,
WorkshopAuthor
contributor : contributors)
90
{
91
if
(i == 0)
92
contributorsNames = contributor.Name();
93
else
94
contributorsNames +=
"\n"
+ contributor.Name();
95
}
96
97
m_Widgets
.m_wVerticalLayoutContributors.SetVisible(visible && contributorsCount > 0);
98
m_Widgets
.m_wContributorsContent.SetText(contributorsNames);
99
}
100
101
//------------------------------------------------------------------------------------------------
102
protected
void
ClearWorkshopItemInvokers
()
103
{
104
if
(!
m_Item
)
105
return
;
106
107
m_Item
.m_OnGetAsset.Remove(
OnItemLoaded
);
108
m_Item
.m_OnTimeout.Remove(
OnItemLoadTimeout
);
109
}
110
111
//------------------------------------------------------------------------------------------------
112
protected
void
OnItemLoaded
()
113
{
114
ClearWorkshopItemInvokers
();
115
116
m_Widgets
.m_LoadingOverlayComponent.SetShown(
false
);
117
UpdateWidgets
();
118
}
119
120
//------------------------------------------------------------------------------------------------
121
protected
void
OnItemLoadTimeout
()
122
{
123
ClearWorkshopItemInvokers
();
124
}
125
126
//------------------------------------------------------------------------------------------------
127
protected
void
OnCommStatusCheckFinished
(
SCR_ECommStatus
status,
float
responseTime,
float
lastSuccessTime,
float
lastFailTime)
128
{
129
GetGame
().GetCallqueue().Call(
UpdateLicenseButton
);
130
}
131
132
//------------------------------------------------------------------------------------------------
133
protected
void
UpdateLicenseButton
()
134
{
135
SCR_ConnectionUICommon
.SetConnectionButtonEnabled(
m_Licenses
,
SCR_ServicesStatusHelper
.
SERVICE_WORKSHOP
,
false
,
false
);
136
}
137
138
//------------------------------------------------------------------------------------------------
139
protected
void
OnLicensesButton
()
140
{
141
PlatformService
ps =
GetGame
().GetPlatformService();
142
if
(!ps)
143
return
;
144
145
string
url =
GetGame
().GetBackendApi().GetLinkItem(
SCR_WorkshopUiCommon
.LINK_NAME_LICENSES);
146
ps.OpenBrowser(url);
147
}
148
149
// --- Public ---
150
//------------------------------------------------------------------------------------------------
151
void
SetItem
(
SCR_WorkshopItem
scriptedItem)
152
{
153
if
(!scriptedItem)
154
return
;
155
156
ClearWorkshopItemInvokers
();
157
158
m_Item
= scriptedItem;
159
160
if
(!
m_Item
.GetDetailsLoaded())
161
{
162
m_Item
.m_OnGetAsset.Insert(
OnItemLoaded
);
163
m_Item
.m_OnTimeout.Insert(
OnItemLoadTimeout
);
164
165
m_Item
.LoadDetails();
166
UpdateWidgets
(
false
);
167
168
return
;
169
}
170
171
m_Widgets
.m_LoadingOverlayComponent.SetShown(
false
);
172
UpdateWidgets
();
173
}
174
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_ECommStatus
SCR_ECommStatus
This class may become obsolete on BackendAPI update.
Definition
SCR_ServicesStatusHelper.c:3
UpdateWidgets
void UpdateWidgets()
Definition
SCR_VonDisplay.c:700
PlatformService
Definition
PlatformService.c:2
SCR_ConfigurableDialogUi
Definition
SCR_ConfigurableDialogUI.c:17
SCR_ConfigurableDialogUi::m_DynamicFooter
SCR_DynamicFooterComponent m_DynamicFooter
Definition
SCR_ConfigurableDialogUI.c:69
SCR_ConfigurableDialogUi::CreateFromPreset
static SCR_ConfigurableDialogUi CreateFromPreset(ResourceName presetsResourceName, string tag, SCR_ConfigurableDialogUi customDialogObj=null)
Creates a dialog from preset.
Definition
SCR_ConfigurableDialogUI.c:94
SCR_ConfigurableDialogUi::GetContentLayoutRoot
Widget GetContentLayoutRoot()
Returns the root of the content layout.
Definition
SCR_ConfigurableDialogUI.c:241
SCR_ConfigurableDialogUi::BindButtonCancel
void BindButtonCancel(SCR_InputButtonComponent button)
Allows to register a custom button to call OnCancel (i.e. one not in the conf files but placed by han...
Definition
SCR_ConfigurableDialogUI.c:382
SCR_ConfigurableDialogUiPreset
Configuration for a dialog.
Definition
SCR_ConfigurableDialogUI.c:764
SCR_ConnectionUICommon
Definition
SCR_ConnectionUICommon.c:2
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_ModDetailsAdditionalInfoDialogContentWidgets
Definition
SCR_ModDetailsAdditionalInfoDialogContentWidgets.c:4
SCR_ModDetailsAdditionalInfoDialog
Definition
SCR_ModDetailsAdditionalInfoDialog.c:2
SCR_ModDetailsAdditionalInfoDialog::m_Licenses
SCR_InputButtonComponent m_Licenses
Definition
SCR_ModDetailsAdditionalInfoDialog.c:6
SCR_ModDetailsAdditionalInfoDialog::OnLicensesButton
void OnLicensesButton()
Definition
SCR_ModDetailsAdditionalInfoDialog.c:139
SCR_ModDetailsAdditionalInfoDialog::UpdateLicenseButton
void UpdateLicenseButton()
Definition
SCR_ModDetailsAdditionalInfoDialog.c:133
SCR_ModDetailsAdditionalInfoDialog::SetItem
void SetItem(SCR_WorkshopItem scriptedItem)
Definition
SCR_ModDetailsAdditionalInfoDialog.c:151
SCR_ModDetailsAdditionalInfoDialog::ClearWorkshopItemInvokers
void ClearWorkshopItemInvokers()
Definition
SCR_ModDetailsAdditionalInfoDialog.c:102
SCR_ModDetailsAdditionalInfoDialog::OnItemLoaded
void OnItemLoaded()
Definition
SCR_ModDetailsAdditionalInfoDialog.c:112
SCR_ModDetailsAdditionalInfoDialog::OnItemLoadTimeout
void OnItemLoadTimeout()
Definition
SCR_ModDetailsAdditionalInfoDialog.c:121
SCR_ModDetailsAdditionalInfoDialog::OnCommStatusCheckFinished
void OnCommStatusCheckFinished(SCR_ECommStatus status, float responseTime, float lastSuccessTime, float lastFailTime)
Definition
SCR_ModDetailsAdditionalInfoDialog.c:127
SCR_ModDetailsAdditionalInfoDialog::OnMenuOpen
override void OnMenuOpen(SCR_ConfigurableDialogUiPreset preset)
Definition
SCR_ModDetailsAdditionalInfoDialog.c:37
SCR_ModDetailsAdditionalInfoDialog::m_Widgets
ref SCR_ModDetailsAdditionalInfoDialogContentWidgets m_Widgets
Definition
SCR_ModDetailsAdditionalInfoDialog.c:3
SCR_ModDetailsAdditionalInfoDialog::m_Item
SCR_WorkshopItem m_Item
Definition
SCR_ModDetailsAdditionalInfoDialog.c:5
SCR_ModDetailsAdditionalInfoDialog::UpdateWidgets
void UpdateWidgets(bool visible=true)
Definition
SCR_ModDetailsAdditionalInfoDialog.c:65
SCR_ModDetailsAdditionalInfoDialog::OnMenuClose
override void OnMenuClose()
Definition
SCR_ModDetailsAdditionalInfoDialog.c:55
SCR_ModDetailsAdditionalInfoDialog::CreateDialog
static SCR_ModDetailsAdditionalInfoDialog CreateDialog(SCR_WorkshopItem scriptedItem)
Definition
SCR_ModDetailsAdditionalInfoDialog.c:9
SCR_ServicesStatusHelper
Definition
SCR_ServicesStatusHelper.c:16
SCR_ServicesStatusHelper::SERVICE_WORKSHOP
static const string SERVICE_WORKSHOP
Definition
SCR_ServicesStatusHelper.c:38
SCR_ServicesStatusHelper::GetOnCommStatusCheckFinished
static ScriptInvokerCommStatus GetOnCommStatusCheckFinished()
Definition
SCR_ServicesStatusHelper.c:422
SCR_ServicesStatusHelper::RefreshPing
static void RefreshPing()
Definition
SCR_ServicesStatusHelper.c:94
SCR_WorkshopDialogs
Definition
SCR_WorkshopDialogs.c:7
SCR_WorkshopItem
Definition
SCR_WorkshopItem.c:28
SCR_WorkshopItem::GetWorkshopItem
WorkshopItem GetWorkshopItem()
Use these only if absoulutely necessary to intarract with game API.
Definition
SCR_WorkshopItem.c:110
SCR_WorkshopUiCommon
Definition
SCR_WorkshopUiCommon.c:6
UIConstants
Definition
Constants.c:151
WorkshopAuthor
Definition
WorkshopAuthor.c:13
WorkshopItem
Workshop Item instance.
Definition
WorkshopItem.c:14
scripts
Game
UI
Menu
ContentBrowser
Common
Dialogs
SCR_ModDetailsAdditionalInfoDialog.c
Generated by
1.17.0