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; }
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; }