예제 #1
0
    protected override IEnumerator OnHide(bool instant)
    {
        yield return(base.OnHide(instant));

        this.PanelToShowOnCancel           = null;
        this.RuntimeModuleNames            = null;
        this.MissingNonWorkshopModuleNames = null;
        this.MissingWorkshopModuleNames    = null;
        IRuntimeModuleSubscriptionService subscriptionService = Services.GetService <IRuntimeModuleSubscriptionService>();

        if (subscriptionService != null)
        {
            subscriptionService.ItemDownloadProgress -= this.RuntimeModuleSubscriptionService_ItemDownloadProgress;
        }
        ISteamUGCService steamUGCService = Services.GetService <ISteamUGCService>();

        if (steamUGCService != null)
        {
            steamUGCService.SteamUGCRemoteStoragePublishedFileSubscribed -= this.SteamUGCService_SteamUGCRemoteStoragePublishedFileSubscribed;
        }
        IRuntimeService runtimeService = Services.GetService <IRuntimeService>();

        if (runtimeService != null)
        {
            runtimeService.RuntimeModuleDatabaseUpdate -= this.RuntimeService_RuntimeModuleDatabaseUpdate;
        }
        yield break;
    }
예제 #2
0
    protected override IEnumerator OnShow(params object[] parameters)
    {
        yield return(base.OnShow(parameters));

        IRuntimeModuleSubscriptionService subscriptionService = Services.GetService <IRuntimeModuleSubscriptionService>();

        if (subscriptionService != null)
        {
            subscriptionService.ItemDownloadProgress += this.RuntimeModuleSubscriptionService_ItemDownloadProgress;
        }
        ISteamUGCService steamUGCService = Services.GetService <ISteamUGCService>();

        if (steamUGCService != null)
        {
            steamUGCService.SteamUGCRemoteStoragePublishedFileSubscribed += this.SteamUGCService_SteamUGCRemoteStoragePublishedFileSubscribed;
        }
        IRuntimeService runtimeService = Services.GetService <IRuntimeService>();

        if (runtimeService != null)
        {
            runtimeService.RuntimeModuleDatabaseUpdate += this.RuntimeService_RuntimeModuleDatabaseUpdate;
        }
        if (parameters.Length >= 2)
        {
            this.RuntimeModuleNames = (parameters[0] as string[]);
            this.LobbyData          = parameters[1];
            if (parameters.Length > 2)
            {
                this.PanelToShowOnCancel = (parameters[2] as GuiPanel);
            }
            IRuntimeModuleSubscriptionService runtimeModuleSubscriptionService = Services.GetService <IRuntimeModuleSubscriptionService>();
            if (runtimeModuleSubscriptionService != null)
            {
                string[] missingWorkshopItems;
                string[] missingNonWorkshopItems;
                runtimeModuleSubscriptionService.GetRuntimeModuleListState(this.RuntimeModuleNames, out missingWorkshopItems, out missingNonWorkshopItems);
                this.MissingWorkshopModuleNames    = missingWorkshopItems;
                this.MissingNonWorkshopModuleNames = missingNonWorkshopItems;
            }
            int i   = 0;
            int lth = this.MissingWorkshopModuleNames.Length;
            while (i < lth)
            {
                ulong publishedFileId = ulong.Parse(this.MissingWorkshopModuleNames[i].Replace(global::RuntimeManager.Folders.Workshop.Affix, string.Empty));
                if (!runtimeModuleSubscriptionService.IsSubscribed(publishedFileId))
                {
                    runtimeModuleSubscriptionService.Subscribe(publishedFileId);
                }
                i++;
            }
            this.RefreshContent();
        }
        else
        {
            this.HandleCancelRequest();
        }
        yield break;
    }