protected virtual void Start() { Debug.Assert(modView != null); var tagCategories = ModBrowser.instance.gameProfile.tagCategories; if (tagCategories != null) { this.m_tagCategories = tagCategories; } if (modView.statisticsDisplay != null) { modView.statisticsDisplay.Initialize(); } // add listeners modView.subscribeRequested += (v) => ModBrowser.instance.SubscribeToMod(v.data.profile.modId); modView.unsubscribeRequested += (v) => ModBrowser.instance.UnsubscribeFromMod(v.data.profile.modId); modView.enableModRequested += (v) => ModBrowser.instance.EnableMod(v.data.profile.modId); modView.disableModRequested += (v) => ModBrowser.instance.DisableMod(v.data.profile.modId); modView.ratePositiveRequested += (v) => ModBrowser.instance.AttemptRateMod(v.data.profile.modId, ModRatingValue.Positive); modView.rateNegativeRequested += (v) => ModBrowser.instance.AttemptRateMod(v.data.profile.modId, ModRatingValue.Negative); ModMediaContainer mediaContainer = modView.mediaContainer as ModMediaContainer; if (selectedMediaPreview != null) { selectedMediaPreview.Initialize(); selectedMediaPreview.onClick += (d) => { if (d.data.descriptor == ImageDescriptor.YouTubeThumbnail) { UIUtilities.OpenYouTubeVideoURL(d.data.youTubeId); } }; if (mediaContainer != null) { mediaContainer.logoClicked += MediaPreview_Logo; mediaContainer.galleryImageClicked += MediaPreview_GalleryImage; mediaContainer.youTubeThumbnailClicked += MediaPreview_YouTubeThumbnail; } } if ((versionHistoryContainer != null && versionHistoryItemPrefab == null) || (versionHistoryItemPrefab != null && versionHistoryContainer == null)) { Debug.LogWarning("[mod.io] In order to display a version history both the " + "versionHistoryItemPrefab and versionHistoryContainer variables must " + "be set for the InspectorView.", this); } Debug.Assert(!(versionHistoryItemPrefab != null && versionHistoryItemPrefab.GetComponent <ModfileDisplayComponent>() == null), "[mod.io] The versionHistoryItemPrefab requires a ModfileDisplayComponent on the root Game Object."); this.m_isInitialized = true; Refresh(); }
private ImageDisplay InstantiatePrefab(GameObject imagePrefab) { Debug.Assert(imagePrefab != null); GameObject media_go = GameObject.Instantiate(imagePrefab, container); ImageDisplay mediaDisplay = media_go.GetComponent <ImageDisplay>(); mediaDisplay.Initialize(); return(mediaDisplay); }
// ---------[ INITIALIZATION ]--------- public void Initialize() { if (profileDisplay != null) { profileDisplay.Initialize(); } if (avatarDisplay != null) { avatarDisplay.Initialize(); } }
// ---------[ INITIALIZATION ]--------- public void Initialize() { // TODO(@jackson): Asserts ModMediaContainer mediaContainer = null; if (modView != null) { modView.Initialize(); if (modView.statisticsDisplay != null) { modView.statisticsDisplay.Initialize(); } mediaContainer = modView.mediaContainer as ModMediaContainer; } if (selectedMediaPreview != null) { selectedMediaPreview.Initialize(); selectedMediaPreview.onClick += (d) => { if (d.data.mediaType == ImageDisplayData.MediaType.YouTubeThumbnail) { UIUtilities.OpenYouTubeVideoURL(d.data.youTubeId); } }; if (mediaContainer != null) { mediaContainer.logoClicked += MediaPreview_Logo; mediaContainer.galleryImageClicked += MediaPreview_GalleryImage; mediaContainer.youTubeThumbnailClicked += MediaPreview_YouTubeThumbnail; } } if ((versionHistoryContainer != null && versionHistoryItemPrefab == null) || (versionHistoryItemPrefab != null && versionHistoryContainer == null)) { Debug.LogWarning("[mod.io] In order to display a version history both the " + "versionHistoryItemPrefab and versionHistoryContainer variables must " + "be set for the InspectorView.", this); } Debug.Assert(!(versionHistoryItemPrefab != null && versionHistoryItemPrefab.GetComponent <ModfileDisplayComponent>() == null), "[mod.io] The versionHistoryItemPrefab requires a ModfileDisplayComponent on the root Game Object."); }
private void CollectDelegates() { m_getDelegates = new List <GetDataDelegate>(); m_setDelegates = new List <SetDataDelegate>(); m_displayDelegates = new List <DisplayProfileDelegate>(); m_missingDisplayParsers = new List <ProfileParserDelegate>(); m_loadingDelegates = new List <DisplayLoadingDelegate>(); // - profile - if (profileDisplay != null) { profileDisplay.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.profile = profileDisplay.data; }); m_setDelegates.Add((d) => { profileDisplay.data = d.profile; }); m_displayDelegates.Add((p) => profileDisplay.DisplayProfile(p)); m_loadingDelegates.Add(() => profileDisplay.DisplayLoading()); } else { m_missingDisplayParsers.Add((ModProfile p, ref ModDisplayData d) => { d.profile = ModProfileDisplayData.CreateFromProfile(p); }); } // - media - if (mediaContainer != null) { mediaContainer.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.logo = mediaContainer.logoData; d.youTubeThumbnails = mediaContainer.youTubeData.ToArray(); d.galleryImages = mediaContainer.galleryData.ToArray(); }); m_setDelegates.Add((d) => { mediaContainer.logoData = d.logo; mediaContainer.youTubeData = d.youTubeThumbnails; mediaContainer.galleryData = d.galleryImages; }); m_displayDelegates.Add((p) => mediaContainer.DisplayMedia(p)); m_loadingDelegates.Add(() => mediaContainer.DisplayLoading()); } else { m_missingDisplayParsers.Add(ParseProfileMedia); } // - logo - // NOTE(@jackson): Logo Data overrides Media Container Logo Data if (logoDisplay != null) { logoDisplay.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.logo = logoDisplay.data; }); m_setDelegates.Add((d) => { logoDisplay.data = d.logo; }); m_displayDelegates.Add((p) => logoDisplay.DisplayLogo(p.id, p.logoLocator)); m_loadingDelegates.Add(() => logoDisplay.DisplayLoading()); } else { m_missingDisplayParsers.Add((ModProfile p, ref ModDisplayData d) => { ImageDisplayData logoData; if (p.logoLocator != null) { logoData = ImageDisplayData.CreateForModLogo(p.id, p.logoLocator); } else { logoData = new ImageDisplayData(); } d.logo = logoData; }); } // - submittor - if (submittorDisplay.profile != null) { submittorDisplay.profile.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.submittorProfile = submittorDisplay.profile.data; }); m_setDelegates.Add((d) => { submittorDisplay.profile.data = d.submittorProfile; }); m_displayDelegates.Add((p) => submittorDisplay.profile.DisplayProfile(p.submittedBy)); m_loadingDelegates.Add(() => submittorDisplay.profile.DisplayLoading()); } else { m_missingDisplayParsers.Add((ModProfile p, ref ModDisplayData d) => { d.submittorProfile = UserProfileDisplayData.CreateFromProfile(p.submittedBy); }); } if (submittorDisplay.avatar != null) { submittorDisplay.avatar.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.submittorAvatar = submittorDisplay.avatar.data; }); m_setDelegates.Add((d) => { submittorDisplay.avatar.data = d.submittorAvatar; }); m_displayDelegates.Add((p) => submittorDisplay.avatar.DisplayAvatar(p.submittedBy.id, p.submittedBy.avatarLocator)); m_loadingDelegates.Add(() => submittorDisplay.avatar.DisplayLoading()); } else { m_missingDisplayParsers.Add((ModProfile p, ref ModDisplayData d) => { ImageDisplayData avatarData; if (p.submittedBy != null && p.submittedBy.avatarLocator != null) { avatarData = ImageDisplayData.CreateForUserAvatar(p.submittedBy.id, p.submittedBy.avatarLocator); } else { avatarData = new ImageDisplayData(); } d.submittorAvatar = avatarData; }); } // - build - if (buildDisplay != null) { buildDisplay.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.currentBuild = buildDisplay.data; }); m_setDelegates.Add((d) => { buildDisplay.data = d.currentBuild; }); m_displayDelegates.Add((p) => buildDisplay.DisplayModfile(p.currentBuild)); m_loadingDelegates.Add(() => buildDisplay.DisplayLoading()); } else { m_missingDisplayParsers.Add((ModProfile p, ref ModDisplayData d) => { d.currentBuild = ModfileDisplayData.CreateFromModfile(p.currentBuild); }); } // - tags - // NOTE(@jackson): tags has no display/missing parse delegate as it requires categories if (tagsDisplay != null) { tagsDisplay.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.tags = tagsDisplay.data.ToArray(); }); m_setDelegates.Add((d) => { tagsDisplay.data = d.tags; }); m_loadingDelegates.Add(() => tagsDisplay.DisplayLoading()); } // - stats - if (statisticsDisplay != null) { statisticsDisplay.Initialize(); m_getDelegates.Add((ref ModDisplayData d) => { d.statistics = statisticsDisplay.data; }); m_setDelegates.Add((d) => { statisticsDisplay.data = d.statistics; }); m_loadingDelegates.Add(() => statisticsDisplay.DisplayLoading()); } // - download - if (downloadDisplay != null) { downloadDisplay.Initialize(); // m_getDelegates.Add((ref ModDisplayData d) => // { // d.submittedBy = creatorView.data; // }); // m_setDelegates.Add((d) => // { // creatorView.data = d.submittedBy; // }); } }