Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ContentBrowser_ScenarioLineComponent.c
Go to the documentation of this file.
1/*
2Component for a line in scenario browser.
3*/
5{
7
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
37
38 super.HandlerAttached(w);
39 }
40
41 //------------------------------------------------------------------------------------------------
42 override void HandlerDeattached(Widget w)
43 {
44 super.HandlerDeattached(w);
46 }
47
48 //------------------------------------------------------------------------------------------------
49 override void UpdateModularButtons()
50 {
51 if (!m_Mission)
52 return;
53
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 {
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
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 //------------------------------------------------------------------------------------------------
99 {
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();
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
156 }
157
158 //------------------------------------------------------------------------------------------------
159 protected void OnPlay()
160 {
163 }
164
165 //------------------------------------------------------------------------------------------------
166 protected void OnContinue()
167 {
170 }
171
172 //------------------------------------------------------------------------------------------------
173 protected void OnRestart()
174 {
177 }
178
179 //------------------------------------------------------------------------------------------------
180 protected void OnHost()
181 {
183 return;
184
187 }
188
189 //------------------------------------------------------------------------------------------------
190 protected void OnFindServers()
191 {
193 return;
194
197 }
198
199 //------------------------------------------------------------------------------------------------
200 protected void OnCommStatusCheckFinished(SCR_ECommStatus status, float responseTime, float lastSuccessTime, float lastFailTime)
201 {
203 }
204
205 //------------------------------------------------------------------------------------------------
207 void NotifyScenarioUpdate(bool itemDownloaded)
208 {
209 m_bMouseButtonsEnabled = itemDownloaded;
211
212 m_Widgets.m_wFavouriteButtonOverlay.SetVisible(itemDownloaded);
213 m_Widgets.m_wLastPlayedTextSize.SetVisible(itemDownloaded);
214
216 }
217
218 //------------------------------------------------------------------------------------------------
220 {
221 m_Mission = mission;
222
224 }
225
226 //------------------------------------------------------------------------------------------------
228 {
229 return m_Mission;
230 }
231
232 //------------------------------------------------------------------------------------------------
237}
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_ECommStatus
This class may become obsolete on BackendAPI update.
Definition Color.c:13
void OnCommStatusCheckFinished(SCR_ECommStatus status, float responseTime, float lastSuccessTime, float lastFailTime)
static SCR_ContentBrowser_ScenarioLineComponent FindComponent(Widget w)
void NotifyScenarioUpdate(bool itemDownloaded)
Must be called when the scenario properties have been updated (set/clear favourite or similar).
override void OnTooltipShow(SCR_ScriptedWidgetTooltip tooltip)
static string GetTimeSinceEventImprecise(int timeDiffSeconds)
SCR_ScriptedWidgetTooltip m_CurrentTooltip
ref ScriptInvokerString m_OnMouseInteractionButtonClicked
bool m_bFocused
ref array< SCR_ModularButtonComponent > m_aMouseButtons
static void UpdateContinueMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
static void UpdateMouseButtonTooltips(SCR_ScriptedWidgetTooltip tooltip, MissionWorkshopItem mission)
static bool CanJoin(MissionWorkshopItem mission)
static bool IsMultiplayer(MissionWorkshopItem mission)
static bool CanHost(MissionWorkshopItem mission)
static void UpdateJoinMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
static void UpdateHostMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
static void UpdateRestartMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
static void UpdatePlayMouseButton(SCR_ModularButtonComponent button, MissionWorkshopItem mission, bool entryFocused, bool visible=true)
static SCR_ERevisionAvailability GetOwnerRevisionAvailability(MissionWorkshopItem mission)
static ScriptInvokerCommStatus GetOnCommStatusCheckFinished()
static string GetRevisionAvailabilityErrorTexture(WorkshopItem item)
Workshop Item instance.