From bce32007deece85a13bf7fdab46a546c0c081d1f Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Tue, 14 May 2019 21:57:28 -0500 Subject: [PATCH] ModList now attempts to load all resources on application start Updated position of the floating notification to match the right screen Author text in the mod list now overflows instead of getting ellipses Fixed some formatting for mod cells --- BSIPA-ModList/Plugin.cs | 18 +++++ BSIPA-ModList/UI/FloatingNotification.cs | 2 +- .../UI/ViewControllers/MarkdownView.cs | 65 ++++++++++++++---- BSIPA-ModList/UI/ViewControllers/ModCells.cs | 8 +-- .../UI/ViewControllers/ModListController.cs | 2 + BSIPA-ModList/manifest.json | 2 +- Refs/BeatSaberCustomUI.dll | Bin 189952 -> 190464 bytes 7 files changed, 76 insertions(+), 21 deletions(-) diff --git a/BSIPA-ModList/Plugin.cs b/BSIPA-ModList/Plugin.cs index d9e7c24e..08a555ab 100644 --- a/BSIPA-ModList/Plugin.cs +++ b/BSIPA-ModList/Plugin.cs @@ -4,6 +4,9 @@ using IPALogger = IPA.Logging.Logger; using BSIPA_ModList.UI; using UnityEngine; using IPA.Logging; +using BSIPA_ModList.UI.ViewControllers; +using System.Collections; +using IPA.Loader; namespace BSIPA_ModList { @@ -21,6 +24,8 @@ namespace BSIPA_ModList Logger.log = logger; IPA.Updating.BeatMods.Updater.ModListPresent = true; + + } public void OnActiveSceneChanged(Scene prevScene, Scene nextScene) @@ -33,7 +38,20 @@ namespace BSIPA_ModList public void OnApplicationStart() { + // Load resources ahead of time + MarkdownView.StartLoadResourcesAsync(); + + SharedCoroutineStarter.instance.StartCoroutine(LoadPluginIcons()); + } + private static IEnumerator LoadPluginIcons() + { + foreach (var p in PluginManager.AllPlugins) + { + yield return null; + Logger.log.Debug($"Loading icon for {p.Metadata.Name}"); + var _ = p.Metadata.GetIcon(); + } } public void OnFixedUpdate() diff --git a/BSIPA-ModList/UI/FloatingNotification.cs b/BSIPA-ModList/UI/FloatingNotification.cs index b331b63e..4bd78d72 100644 --- a/BSIPA-ModList/UI/FloatingNotification.cs +++ b/BSIPA-ModList/UI/FloatingNotification.cs @@ -16,7 +16,7 @@ namespace BSIPA_ModList.UI private Image _loadingBackg; private Image _loadingBar; - private static readonly Vector3 Position = new Vector3(2.3f, 2.3f, 1.35f); + private static readonly Vector3 Position = new Vector3(2.25f, 2.3f, 1.55f); private static readonly Vector3 Rotation = new Vector3(0, 60, 0); private static readonly Vector3 Scale = new Vector3(0.01f, 0.01f, 0.01f); diff --git a/BSIPA-ModList/UI/ViewControllers/MarkdownView.cs b/BSIPA-ModList/UI/ViewControllers/MarkdownView.cs index d7607c25..9a8d4222 100644 --- a/BSIPA-ModList/UI/ViewControllers/MarkdownView.cs +++ b/BSIPA-ModList/UI/ViewControllers/MarkdownView.cs @@ -12,6 +12,7 @@ using System.Reflection; using UnityEngine.EventSystems; using System.Diagnostics; using System.Collections; +using System.IO; namespace BSIPA_ModList.UI.ViewControllers { @@ -86,39 +87,73 @@ namespace BSIPA_ModList.UI.ViewControllers return uri.Substring(3); } + private static Stream ConsolasAssetBundleFontStream => Assembly.GetExecutingAssembly().GetManifestResourceStream("BSIPA_ModList.Bundles.consolas.font"); + + private static AssetBundleCreateRequest _bundleRequest; private static AssetBundle _bundle; private static AssetBundle Bundle { get { + if (_bundle == null && _bundleRequest != null) + throw new InvalidOperationException("Asset bundle is being loaded asynchronously; please wait for that to complete"); if (_bundle == null) - _bundle = AssetBundle.LoadFromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("BSIPA_ModList.Bundles.consolas.font")); + _bundle = AssetBundle.LoadFromStream(ConsolasAssetBundleFontStream); return _bundle; } } + + private static AssetBundleRequest _consolasRequest; + private static TMP_FontAsset _unsetConsolas; private static TMP_FontAsset _consolas; private static TMP_FontAsset Consolas { get { - if (_consolas == null) - { - _consolas = Bundle?.LoadAsset("CONSOLAS"); - if (_consolas != null) - { - var originalFont = Resources.FindObjectsOfTypeAll().Last(f => f.name == "Teko-Medium SDF No Glow"); - var matCopy = Instantiate(originalFont.material); - matCopy.mainTexture = _consolas.material.mainTexture; - matCopy.mainTextureOffset = _consolas.material.mainTextureOffset; - matCopy.mainTextureScale = _consolas.material.mainTextureScale; - _consolas.material = matCopy; - MaterialReferenceManager.AddFontAsset(_consolas); - } - } + if (_unsetConsolas == null && _consolasRequest != null) + throw new InvalidOperationException("Asset is being loaded asynchronously; please wait for that to complete"); + if (_unsetConsolas == null) + _unsetConsolas = Bundle?.LoadAsset("CONSOLAS"); + if (_consolas == null && _unsetConsolas != null) + _consolas = SetupFont(_unsetConsolas); return _consolas; } } + private static TMP_FontAsset SetupFont(TMP_FontAsset f) + { + var originalFont = Resources.FindObjectsOfTypeAll().Last(f2 => f2.name == "Teko-Medium SDF No Glow"); + var matCopy = Instantiate(originalFont.material); + matCopy.mainTexture = f.material.mainTexture; + matCopy.mainTextureOffset = f.material.mainTextureOffset; + matCopy.mainTextureScale = f.material.mainTextureScale; + f.material = matCopy; + f = Instantiate(f); + MaterialReferenceManager.AddFontAsset(f); + return f; + } + + internal static void StartLoadResourcesAsync() + { + SharedCoroutineStarter.instance.StartCoroutine(LoadResourcesAsync()); + } + private static IEnumerator LoadResourcesAsync() + { + Logger.md.Debug("Starting to load resources"); + + _bundleRequest = AssetBundle.LoadFromStreamAsync(ConsolasAssetBundleFontStream); + yield return _bundleRequest; + _bundle = _bundleRequest.assetBundle; + + Logger.md.Debug("Bundle loaded"); + + _consolasRequest = _bundle.LoadAssetAsync("CONSOLAS"); + yield return _consolasRequest; + _unsetConsolas = _consolasRequest.asset as TMP_FontAsset; + + Logger.md.Debug("Font loaded"); + } + protected void Awake() { if (Consolas == null) diff --git a/BSIPA-ModList/UI/ViewControllers/ModCells.cs b/BSIPA-ModList/UI/ViewControllers/ModCells.cs index 54741014..f51a7c42 100644 --- a/BSIPA-ModList/UI/ViewControllers/ModCells.cs +++ b/BSIPA-ModList/UI/ViewControllers/ModCells.cs @@ -44,7 +44,7 @@ namespace BSIPA_ModList.UI.ViewControllers { var desc = Plugin.Metadata.Manifest.Description; if (string.IsNullOrWhiteSpace(desc)) - desc = "No description"; + desc = "*No description*"; infoView = BeatSaberUI.CreateViewController(); infoView.Init(icon, Plugin.Metadata.Name, "v" + Plugin.Metadata.Version.ToString(), subtext, @@ -87,7 +87,7 @@ namespace BSIPA_ModList.UI.ViewControllers { var desc = Plugin.Manifest.Description; if (string.IsNullOrWhiteSpace(desc)) - desc = "No description"; + desc = "*No description*"; infoView = BeatSaberUI.CreateViewController(); infoView.Init(icon, Plugin.Name, "v" + Plugin.Version.ToString(), authorText, @@ -109,7 +109,7 @@ namespace BSIPA_ModList.UI.ViewControllers this.list = list; if (string.IsNullOrWhiteSpace(subtext)) - subtext = "Unspecified Author"; + subtext = "Unspecified Author"; icon = Utilities.DefaultLibraryIcon; } @@ -124,7 +124,7 @@ namespace BSIPA_ModList.UI.ViewControllers { var desc = Plugin.Metadata.Manifest.Description; if (string.IsNullOrWhiteSpace(desc)) - desc = "No description"; + desc = "*No description*"; infoView = BeatSaberUI.CreateViewController(); infoView.Init(icon, Plugin.Metadata.Name, "v" + Plugin.Metadata.Version.ToString(), subtext, diff --git a/BSIPA-ModList/UI/ViewControllers/ModListController.cs b/BSIPA-ModList/UI/ViewControllers/ModListController.cs index 8277f049..727a7726 100644 --- a/BSIPA-ModList/UI/ViewControllers/ModListController.cs +++ b/BSIPA-ModList/UI/ViewControllers/ModListController.cs @@ -22,6 +22,8 @@ namespace BSIPA_ModList.UI var cell = base.CellForIdx(idx) as LevelListTableCell; var nameText = cell.GetPrivateField("_songNameText"); nameText.overflowMode = TextOverflowModes.Overflow; + var authorText = cell.GetPrivateField("_authorText"); + authorText.overflowMode = TextOverflowModes.Overflow; return cell; } diff --git a/BSIPA-ModList/manifest.json b/BSIPA-ModList/manifest.json index 94685593..deeb0387 100644 --- a/BSIPA-ModList/manifest.json +++ b/BSIPA-ModList/manifest.json @@ -11,7 +11,7 @@ "gameVersion": "0.13.2", "id": "BSIPA Mod List", "name": "BSIPA Mod List", - "version": "1.2.0", + "version": "1.2.1", "icon": "BSIPA_ModList.Icons.self.png", "dependsOn": { "BSIPA": "^3.12.16", diff --git a/Refs/BeatSaberCustomUI.dll b/Refs/BeatSaberCustomUI.dll index 996e033de691d86fccfe3dc3f96ace280301177d..32e707679a41dee65a72eae504a5e28ed1204356 100644 GIT binary patch delta 40808 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