Browse Source

Restore extra stats in LevelParamsPanel.

Halsafar 4 years ago
parent
commit
23e3a2a491

+ 4 - 6
SongBrowserPlugin/Internals/BeatSaberUI.cs

@@ -227,12 +227,10 @@ namespace SongBrowser.Internals
         /// <param name="text"></param>
         /// <param name="text"></param>
         public static void SetHoverHint(RectTransform button, string name, string text)
         public static void SetHoverHint(RectTransform button, string name, string text)
         {
         {
-            HoverHintController hoverHintController = Resources.FindObjectsOfTypeAll<HoverHintController>().First();
-            DestroyHoverHint(button);
-            var newHoverHint = button.gameObject.AddComponent<HoverHint>();
-            newHoverHint.SetPrivateField("_hoverHintController", hoverHintController);
-            newHoverHint.text = text;
-            newHoverHint.name = name;
+            HoverHint hover = button.gameObject.AddComponent<HoverHint>();
+            hover.text = text;
+            hover.name = name;
+            hover.SetField("_hoverHintController", Resources.FindObjectsOfTypeAll<HoverHintController>().First());
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 12 - 33
SongBrowserPlugin/UI/Browser/SongBrowserUI.cs

@@ -158,7 +158,7 @@ namespace SongBrowser.UI
                 this.InstallHandlers();
                 this.InstallHandlers();
 
 
                 // TODO v1.12.1 - Just need to figure out the placement, size, etc
                 // TODO v1.12.1 - Just need to figure out the placement, size, etc
-                //this.ModifySongStatsPanel();
+                this.ModifySongStatsPanel();
                 //this.ResizeSongUI();
                 //this.ResizeSongUI();
 
 
                 _uiCreated = true;
                 _uiCreated = true;
@@ -403,50 +403,29 @@ namespace SongBrowser.UI
         /// </summary>
         /// </summary>
         private void ModifySongStatsPanel()
         private void ModifySongStatsPanel()
         {
         {
-            // modify details view
+            // modify stat panel, inject extra row of stats
             Logger.Debug("Resizing Stats Panel...");
             Logger.Debug("Resizing Stats Panel...");
 
 
             var statsPanel = _beatUi.StandardLevelDetailView.GetPrivateField<LevelParamsPanel>("_levelParamsPanel");
             var statsPanel = _beatUi.StandardLevelDetailView.GetPrivateField<LevelParamsPanel>("_levelParamsPanel");
-            var statTransforms = statsPanel.GetComponentsInChildren<RectTransform>();
-            var valueTexts = statsPanel.GetComponentsInChildren<TextMeshProUGUI>().Where(x => x.name == "ValueText").ToList();
-            RectTransform panelRect = (statsPanel.transform as RectTransform);
-            panelRect.sizeDelta = new Vector2(panelRect.sizeDelta.x * 1.2f, panelRect.sizeDelta.y * 1.2f);
+            (statsPanel.transform as RectTransform).Translate(0, 0.05f, 0);
 
 
-            for (int i = 0; i < statTransforms.Length; i++)
-            {
-                var r = statTransforms[i];
-                if (r.name == "Separator")
-                {
-                    continue;
-                }
-                r.sizeDelta = new Vector2(r.sizeDelta.x * 0.9f, r.sizeDelta.y * 0.9f);
-            }
-
-            for (int i = 0; i < valueTexts.Count; i++)
-            {
-                var text = valueTexts[i];
-                text.fontSize -= 0.75f;
-            }
-
-            // inject our components
-            _ppStatButton = UnityEngine.Object.Instantiate(statTransforms[1], statsPanel.transform, false);
+            _ppStatButton = UnityEngine.Object.Instantiate(statsPanel.GetComponentsInChildren<RectTransform>().First(x => x.name == "NPS"), statsPanel.transform, false);
+            (_ppStatButton.transform as RectTransform).Translate(0, -0.1f, 0);
             BeatSaberUI.SetStatButtonIcon(_ppStatButton, Base64Sprites.GraphIcon);
             BeatSaberUI.SetStatButtonIcon(_ppStatButton, Base64Sprites.GraphIcon);
             BeatSaberUI.DestroyHoverHint(_ppStatButton);
             BeatSaberUI.DestroyHoverHint(_ppStatButton);
-            //BeatSaberUI.SetHoverHint(_ppStatButton, "songBrowser_ppValue", "PP Value");
+            BeatSaberUI.SetHoverHint(_ppStatButton, "songBrowser_ppValue", "PP Value");
 
 
-            _starStatButton = UnityEngine.Object.Instantiate(statTransforms[1], statsPanel.transform, false);
+            _starStatButton = UnityEngine.Object.Instantiate(statsPanel.GetComponentsInChildren<RectTransform>().First(x => x.name == "NotesCount"), statsPanel.transform, false);
+            (_starStatButton.transform as RectTransform).Translate(0, -0.1f, 0);
             BeatSaberUI.SetStatButtonIcon(_starStatButton, Base64Sprites.StarFullIcon);
             BeatSaberUI.SetStatButtonIcon(_starStatButton, Base64Sprites.StarFullIcon);
             BeatSaberUI.DestroyHoverHint(_starStatButton);
             BeatSaberUI.DestroyHoverHint(_starStatButton);
-            //BeatSaberUI.SetHoverHint(_starStatButton, "songBrowser_starValue", "Star Difficulty Rating");
+            BeatSaberUI.SetHoverHint(_starStatButton, "songBrowser_starValue", "Star Difficulty Rating");
 
 
-            _njsStatButton = UnityEngine.Object.Instantiate(statTransforms[1], statsPanel.transform, false);
+            _njsStatButton = UnityEngine.Object.Instantiate(statsPanel.GetComponentsInChildren<RectTransform>().First(x => x.name == "ObstaclesCount"), statsPanel.transform, false);
+            (_njsStatButton.transform as RectTransform).Translate(0, -0.1f, 0);
             BeatSaberUI.SetStatButtonIcon(_njsStatButton, Base64Sprites.SpeedIcon);
             BeatSaberUI.SetStatButtonIcon(_njsStatButton, Base64Sprites.SpeedIcon);
             BeatSaberUI.DestroyHoverHint(_njsStatButton);
             BeatSaberUI.DestroyHoverHint(_njsStatButton);
-            //BeatSaberUI.SetHoverHint(_njsStatButton, "songBrowser_njsValue", "Note Jump Speed");
-
-            // shrink title
-            var titleText = _beatUi.LevelDetailViewController.GetComponentsInChildren<TextMeshProUGUI>(true).First(x => x.name == "SongNameText");            
-            titleText.fontSize = 5.0f;
+            BeatSaberUI.SetHoverHint(_njsStatButton, "songBrowser_njsValue", "Note Jump Speed");
         }
         }
 
 
         /// <summary>
         /// <summary>