public void DisplayLoading() { if (modView != null) { modView.DisplayLoading(); } if (selectedMediaPreview != null) { selectedMediaPreview.DisplayLoading(); } }
private void DisplayProfiles(IEnumerable <ModProfile> profileCollection, RectTransform pageTransform) { #if DEBUG if (!Application.isPlaying) { return; } #endif foreach (Transform t in pageTransform) { ModView view = t.GetComponent <ModView>(); if (view != null) { m_modViews.Remove(view); } GameObject.Destroy(t.gameObject); } List <int> missingStatsData = new List <int>(); List <ModView> pageModViews = new List <ModView>(); if (profileCollection != null) { IList <int> subscribedModIds = ModManager.GetSubscribedModIds(); IList <int> enabledModIds = ModManager.GetEnabledModIds(); foreach (ModProfile profile in profileCollection) { if (pageModViews.Count >= itemsPerPage) { Debug.LogWarning("[mod.io] ProfileCollection contained more profiles than " + "can be displayed per page", this.gameObject); break; } GameObject itemGO = GameObject.Instantiate(itemPrefab, pageTransform); itemGO.name = "Mod Tile [" + pageModViews.Count.ToString() + "]"; // initialize item ModView view = itemGO.GetComponent <ModView>(); if (profile == null) { view.DisplayLoading(); } else { // add listeners view.onClick += (v) => ViewManager.instance.InspectMod(v.data.profile.modId); view.subscribeRequested += (v) => ModBrowser.instance.SubscribeToMod(v.data.profile.modId); view.unsubscribeRequested += (v) => ModBrowser.instance.UnsubscribeFromMod(v.data.profile.modId); view.enableModRequested += (v) => ModBrowser.instance.EnableMod(v.data.profile.modId); view.disableModRequested += (v) => ModBrowser.instance.DisableMod(v.data.profile.modId); view.ratePositiveRequested += (v) => ModBrowser.instance.AttemptRateMod(v.data.profile.modId, ModRatingValue.Positive); view.rateNegativeRequested += (v) => ModBrowser.instance.AttemptRateMod(v.data.profile.modId, ModRatingValue.Negative); // display ModStatistics stats = ModStatisticsRequestManager.instance.TryGetValid(profile.id); bool isModSubscribed = subscribedModIds.Contains(profile.id); bool isModEnabled = enabledModIds.Contains(profile.id); ModRatingValue ratingValue = ModBrowser.instance.GetModRating(profile.id); view.DisplayMod(profile, stats, m_tagCategories, isModSubscribed, isModEnabled, ratingValue); if (stats == null) { missingStatsData.Add(profile.id); } } pageModViews.Add(view); } if (pageModViews.Count > 0) { for (int i = pageModViews.Count; i < itemsPerPage; ++i) { GameObject spacer = new GameObject("Spacing Tile [" + i.ToString("00") + "]", typeof(RectTransform)); spacer.transform.SetParent(pageTransform); } } } m_modViews.AddRange(pageModViews); if (missingStatsData.Count > 0) { ModStatisticsRequestManager.instance.RequestModStatistics(missingStatsData, (statsArray) => { if (this != null) { UpdateStatisticsDisplays(statsArray); } }, WebRequestError.LogAsWarning); } // fix layouting if (this.isActiveAndEnabled) { LayoutRebuilder.MarkLayoutForRebuild(pageTransform); } }
private void DisplayProfiles(IEnumerable <ModProfile> profileCollection, RectTransform pageTransform) { #if DEBUG if (!Application.isPlaying) { return; } #endif foreach (Transform t in pageTransform) { ModView view = t.GetComponentInChildren <ModView>(); if (view != null) { m_modViews.Remove(view); } GameObject.Destroy(t.gameObject); } List <ModView> pageModViews = new List <ModView>(); if (profileCollection != null) { IList <int> subscribedModIds = ModManager.GetSubscribedModIds(); IList <int> enabledModIds = ModManager.GetEnabledModIds(); Vector2 centerVector = new Vector2(0.5f, 0.5f); foreach (ModProfile profile in profileCollection) { if (pageModViews.Count >= itemsPerPage) { // Debug.LogWarning("[mod.io] ProfileCollection contained more profiles than " // + "can be displayed per page"); break; } GameObject resizeWrapper = new GameObject("Mod Tile", typeof(RectTransform)); resizeWrapper.transform.SetParent(pageTransform); resizeWrapper.transform.localScale = Vector3.one; GameObject itemGO = GameObject.Instantiate(itemPrefab, new Vector3(), Quaternion.identity, resizeWrapper.transform); RectTransform itemTransform = itemGO.transform as RectTransform; itemTransform.pivot = centerVector; itemTransform.anchorMin = centerVector; itemTransform.anchorMax = centerVector; itemTransform.anchoredPosition = Vector2.zero; itemTransform.localScale = this.m_tileScale; // initialize item ModView view = itemGO.GetComponent <ModView>(); view.onClick += NotifyInspectRequested; view.subscribeRequested += NotifySubscribeRequested; view.unsubscribeRequested += NotifyUnsubscribeRequested; view.enableModRequested += NotifyEnableRequested; view.disableModRequested += NotifyDisableRequested; view.Initialize(); if (profile == null) { view.DisplayLoading(); } else { bool isModSubscribed = subscribedModIds.Contains(profile.id); bool isModEnabled = enabledModIds.Contains(profile.id); view.DisplayMod(profile, null, m_tagCategories, isModSubscribed, isModEnabled); ModManager.GetModStatistics(profile.id, (s) => { ModDisplayData data = view.data; data.statistics = ModStatisticsDisplayData.CreateFromStatistics(s); view.data = data; }, null); } pageModViews.Add(view); } if (pageModViews.Count > 0) { for (int i = pageModViews.Count; i < itemsPerPage; ++i) { GameObject spacer = new GameObject("Spacing Tile [" + i.ToString("00") + "]", typeof(RectTransform)); spacer.transform.SetParent(pageTransform); } } } m_modViews.AddRange(pageModViews); // fix layouting if (this.isActiveAndEnabled) { LayoutRebuilder.MarkLayoutForRebuild(pageTransform); } }