35 super.HandlerAttached(w);
49 Widget backendImage =
m_wRoot.FindAnyWidget(
"m_BackendImage");
51 m_BackendImageComponent = SCR_WorkshopItemBackendImageComponent.Cast(backendImage.FindHandler(SCR_WorkshopItemBackendImageComponent));
93 super.HandlerDeattached(w);
109 return super.OnFocus(w, x, y);
125 return super.OnFocusLost(w, x, y);
137 Revision itemRevision = item.GetActiveRevision();
149 if (
m_Item.GetRestricted())
152 m_eErrorState = SCR_EWorkshopTileErrorState.REVISION_AVAILABILITY_ISSUE;
154 m_eErrorState = SCR_EWorkshopTileErrorState.DEPENDENCIES_ISSUE;
155 else if (item && (item.IsUnlisted() && (item.IsAuthor() || item.IsContributor())))
157 else if (itemRevision && itemRevision.IsCorrupted())
175 if (!
m_Widgets.m_FrameNameComponent.GetContentFitX())
176 m_Widgets.m_FrameNameComponent.AnimationStart();
178 if (!
m_Widgets.m_FrameAuthorComponent.GetContentFitX())
179 m_Widgets.m_FrameAuthorComponent.AnimationStart();
183 m_Widgets.m_FrameNameComponent.AnimationStop();
184 m_Widgets.m_FrameNameComponent.ResetPosition();
186 m_Widgets.m_FrameAuthorComponent.AnimationStop();
187 m_Widgets.m_FrameAuthorComponent.ResetPosition();
218 int nDependencies =
m_Item.GetLatestDependencies().Count();
222 m_Widgets.m_wDependent.SetVisible(nDependent > 0);
223 m_Widgets.m_wDependencies.SetVisible(nDependencies > 0);
239 m_Widgets.m_wDownloadProgressBar.SetCurrent(progress);
240 m_Widgets.m_wDownloadProgressBarOverlay.SetVisible(progress > 0);
249 m_Widgets.m_FavouriteButtonComponent0.SetToggled(
m_Item.GetFavourite(),
false);
259 m_Widgets.m_wBackendSource.SetVisible(
false);
263 string gameEnv =
GetGame().GetBackendApi().GetBackendEnv();
264 string modEnv =
m_Item.GetWorkshopItem().GetBackendEnv();
266 bool display = (modEnv !=
"local") && (modEnv !=
"ask") && (modEnv !=
"invalid");
267 bool envMatch = gameEnv == modEnv;
269 m_Widgets.m_wBackendSource.SetVisible(display && !envMatch);
273 m_Widgets.m_BackendSourceComponent1.SetTitle(modEnv);
287 m_Widgets.m_WarningOverlayComponent.SetWarningVisible(
false);
288 m_Widgets.m_WarningOverlayComponent.SetBlurUnderneath(
false);
297 m_Widgets.m_WarningOverlayComponent.SetWarningVisible(
true);
298 m_Widgets.m_WarningOverlayComponent.SetBlurUnderneath(
m_eErrorState == SCR_EWorkshopTileErrorState.RESTRICTED);
306 case SCR_EWorkshopTileErrorState.RESTRICTED:
309 m_Widgets.m_WarningOverlayComponent.ResetWarningColor();
313 case SCR_EWorkshopTileErrorState.DEPENDENCIES_ISSUE:
316 m_Widgets.m_WarningOverlayComponent.ResetWarningColor();
320 case SCR_EWorkshopTileErrorState.REVISION_AVAILABILITY_ISSUE:
322 m_Widgets.m_WarningOverlayComponent.SetWarning(
326 m_Widgets.m_WarningOverlayComponent.ResetWarningColor();
330 case SCR_EWorkshopTileErrorState.UNLISTED:
332 m_Widgets.m_WarningOverlayComponent.SetWarning(
"#AR-Player_Groups_Private",
"flag-2",
"{E23427CAC80DA8B7}UI/Textures/Icons/icons_mapMarkersUI.imageset");
335 m_Widgets.m_WarningOverlayComponent.SetWarningColor(color, color);
339 case SCR_EWorkshopTileErrorState.DAMAGED:
342 m_Widgets.m_WarningOverlayComponent.ResetWarningColor();
356 m_Widgets.m_wMainActionButton.SetVisible(
362 if (!
m_Widgets.m_wMainActionButton.IsVisible())
368 if (!iconColorEffect)
372 if (!messageColorEffect)
390 m_Widgets.m_MainActionButtonComponent0.InvokeAllEnabledEffects(
true);
392 m_Widgets.m_MainActionButtonComponent1.SetImage(icon);
394 m_Widgets.m_wMainActionText.SetText(message);
400 if (!
m_Item.GetWorkshopItem())
408 array<WorkshopTag> items = {};
409 m_Item.GetWorkshopItem().GetTags(items);
412 if (item.Name() ==
"MANW_2025")
451 bool isSave =
m_Item.IsWorldSave();
453 m_Widgets.m_wItemTypeImage.SetVisible(isSave);
454 m_Widgets.m_wItemTypeShadow.SetVisible(isSave);
458 const string imageType =
"save-published";
515 if (!
m_Item.GetWorkshopItem().GetDownloadingRevision())
536 m_Item.SetFavourite(toggled);
665 m_Widgets.m_EnableAddonButtonComponent.InvokeAllEnabledEffects(
true);
712enum SCR_EWorkshopTileErrorState
ArmaReforgerScripted GetGame()
SCR_AddonLineBaseComponent REVISION_AVAILABILITY_ISSUE
enum SCR_EConsumableType DAMAGED
SCR_ContentBrowserTileComponent DEPENDENCIES_ISSUE
SCR_ContentBrowserTileComponent UNLISTED
The asset doesn't appear when browsing workshop or search results but anyone that knows it's GUID can...
SCR_ContentBrowserTileComponent RESTRICTED
static SCR_ERevisionAvailability ItemAvailability(notnull WorkshopItem item)
static SCR_AddonManager GetInstance()
static SCR_ContentBrowser_AddonsTooltipComponent FindComponent(notnull Widget w)
void Init(array< ref SCR_WorkshopItem > addons)
void OnFavouriteButtonToggled(SCR_ModularButtonComponent comp, bool toggled)
void OnMainActionButtonClicked(SCR_ModularButtonComponent comp)
void OnRepairActionButtonClicked(SCR_ModularButtonComponent comp)
void OnAnyNewDownload(SCR_WorkshopItem item, SCR_WorkshopItemActionDownload action)
ScriptInvokerScriptedWidgetComponent GetOnFocusLost()
ref ScriptInvokerScriptedWidgetComponent m_OnChange
void UpdateWarningOverlay()
SCR_EAddonPrimaryActionState m_ePrimaryActionState
override bool OnFocus(Widget w, int x, int y)
void UpdateHeaderTooltip()
SCR_EWorkshopTileErrorState m_eErrorState
void UpdateDependenciesTooltip()
void UpdateEnableButtonTooltip()
void OnEnableButtonToggled(SCR_ModularButtonComponent comp)
void UpdateFavouriteButton()
ScriptInvokerScriptedWidgetComponent GetOnFocus()
SCR_ScriptedWidgetTooltip m_Tooltip
void UpdateDependencyCountWidgets()
void OnTooltipShow(SCR_ScriptedWidgetTooltip tooltip)
override bool OnFocusLost(Widget w, int x, int y)
SCR_WorkshopItem GetWorkshopItem()
ref SCR_WorkshopTileWidgets m_Widgets
SCR_WorkshopItemBackendImageComponent m_BackendImageComponent
bool m_bUpdatingContinuously
ref ScriptInvokerScriptedWidgetComponent m_OnFocus
void OnAnyDownloadCompleted(SCR_WorkshopItemActionDownload action)
void StopContinuousUpdate()
void OnWorkshopItemChange()
ref ScriptInvokerScriptedWidgetComponent m_OnFocusLost
void HandleDownloadChanges()
SCR_ERevisionAvailability m_eRevisionAvailability
void SetWorkshopItem(SCR_WorkshopItem workshopItem)
If a null pointer is passed, tile becomes hidden.
override void HandlerDeattached(Widget w)
void OnWarningButtonClicked(ScriptInvokerScriptedWidgetComponent comp)
ref SCR_WorkshopDownloadSequence m_DownloadRequest
void UpdateNamesScrolling()
ScriptInvokerScriptedWidgetComponent GetOnChange()
static SCR_ContentBrowserTileComponent FindComponent(notnull Widget w)
ref SCR_WorkshopItem m_Item
static int GetTileWidth()
static int GetTileHeight()
void OnAnyDownloadError(SCR_WorkshopItemActionDownload action, int reason)
void StartContinuousUpdate()
override void HandlerAttached(Widget w)
void UpdateDownloadProgressBar()
ref ScriptInvokerBase< ScriptInvoker_DownloadManagerActionError > m_OnDownloadFailed
static SCR_DownloadManager GetInstance()
ref ScriptInvoker m_OnNewDownload
ref ScriptInvokerBase< ScriptInvoker_DownloadManagerAction > m_OnDownloadComplete
static float GetItemDownloadActionsProgress(SCR_WorkshopItem item)
Returns overall download progress for all actions of a workshop item.
ref ScriptInvokerBase< ScriptInvoker_DownloadManagerAction > m_OnDownloadCanceled
void LoadAddon(notnull SCR_WorkshopItem item)
static void UpdateEnableAddonToggleButton(SCR_ModularButtonComponent button, SCR_WorkshopItem item, SCR_EAddonPrimaryActionState state, bool alwaysShowWhenDownloaded=true)
static int GetRatingPercentage(float rating)
static string GetRevisionAvailabilityErrorMessage(WorkshopItem item)
static string GetRevisionAvailabilityErrorTexture(WorkshopItem item)
static void OnEnableAddonToggleButton(SCR_WorkshopItem item, SCR_ModularButtonComponent buttonComp)
static void ExecutePrimaryAction(notnull SCR_WorkshopItem item, out SCR_WorkshopDownloadSequence dlRequest, Revision revision=null)
static array< ref SCR_WorkshopItem > GetDownloadedDependentAddons(notnull SCR_WorkshopItem item)
static SCR_EAddonPrimaryActionState GetPrimaryActionState(notnull SCR_WorkshopItem item)
static string GetRestrictedAddonStateText(SCR_WorkshopItem item)
Returns string such as "Banned" or "Reported" for a restricted item. Otherwise returns empty string.
static void GetPrimaryActionLook(SCR_EAddonPrimaryActionState state, SCR_ERevisionAvailability availability, SCR_WorkshopItem item, out string icon, out Color iconColor, out string message, out Color messageColor)
static string GetPrimaryActionTooltipMessage(SCR_EAddonPrimaryActionState state, SCR_WorkshopItem item)
@ NONE
When Shape is created and not initialized yet.