Skip to content

Commit

Permalink
Update for Beat Saber 1.40.0
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoco007 committed Dec 11, 2024
1 parent 7f5d5a6 commit b25aac6
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 52 deletions.
45 changes: 8 additions & 37 deletions BeatSaberMarkupLanguage/BeatSaberMarkupLanguage.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
<PluginIcon>BeatSaberMarkupLanguage.Resources.icon.png</PluginIcon>
<Copyright>Copyright © monkeymanboy 2019-2024</Copyright>
<Description>An XML-based UI system.</Description>
<GameVersion>1.37.4</GameVersion>
<Version>1.12.4</Version>
<GameVersion>1.40.0</GameVersion>
<Version>1.12.5</Version>
<RepositoryUrl>https://github.com/monkeymanboy/BeatSaberMarkupLanguage</RepositoryUrl>
<PluginFeatures>
{
Expand All @@ -37,155 +37,126 @@
</PropertyGroup>

<ItemGroup>
<Reference Include="System.Drawing" />
<Reference Include="BeatSaber.GameSettings">
<Private>False</Private>
</Reference>
<Reference Include="0Harmony">
<HintPath>$(BeatSaberDir)\Libs\0Harmony.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="BeatSaber.Init">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\BeatSaber.Init.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="BeatSaber.ViewSystem">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\BeatSaber.ViewSystem.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="BGLib.AppFlow">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\BGLib.AppFlow.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="BGLib.Polyglot">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\BGLib.Polyglot.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="BGLib.UnityExtension">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\BGLib.UnityExtension.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="GameInit">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\GameInit.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="GameplayCore">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\GameplayCore.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="HMLib">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\HMLib.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="HMUI">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\HMUI.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="Interactable">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Interactable.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Main">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Main.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="Menu.ColorSettings">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Menu.ColorSettings.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="Menu.CommonLib">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Menu.CommonLib.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MenuSystem">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\MenuSystem.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>$(BeatSaberDir)\Libs\Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="SegmentedControl">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\SegmentedControl.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="Unity.TextMeshPro">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Unity.TextMeshPro.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="UnityEngine">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.AssetBundleModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.ImageConversionModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.InputLegacyModule.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TextCoreFontEngineModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UI.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="UnityEngine.UIModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UIModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UnityEngine.UnityWebRequestModule">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UnityWebRequestModule.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Unity.Addressables">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Unity.Addressables.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="Unity.ResourceManager">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Unity.ResourceManager.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="VRUI">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\VRUI.dll</HintPath>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="Zenject">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Zenject.dll</HintPath>
<Private>false</Private>
<Private>False</Private>
<Publicize>True</Publicize>
</Reference>
<Reference Include="Zenject-usage">
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Zenject-usage.dll</HintPath>
<Private>false</Private>
<Private>False</Private>
</Reference>
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public bool ShowButtons

public override bool Interactable
{
get => slider != null && slider.interactable;
get => slider != null && ((TextSlider)slider).interactable;
set
{
if (slider != null)
Expand Down
2 changes: 1 addition & 1 deletion BeatSaberMarkupLanguage/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

<ItemGroup>
<Reference Include="IPA.Loader">
<HintPath>$(BeatSaberDir)Beat Saber_Data\Managed\IPA.Loader.dll</HintPath>
<HintPath>$(BeatSaberDir)IPA\IPA.Loader.dll</HintPath>
<Private>False</Private>
</Reference>

Expand Down
40 changes: 27 additions & 13 deletions BeatSaberMarkupLanguage/Tags/Settings/GenericSliderSettingTag.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using BeatSaber.GameSettings;
using BeatSaberMarkupLanguage.Components;
using BeatSaberMarkupLanguage.Components.Settings;
using BGLib.Polyglot;
Expand All @@ -19,12 +20,18 @@ public override GameObject CreateObject(Transform parent)
{
if (controllersTransformTemplate == null)
{
controllersTransformTemplate = DiContainer.Resolve<MainSettingsMenuViewController>()._settingsSubMenuInfos.First(m => m.viewController is ControllersTransformSettingsViewController).viewController.transform.Find("Content/PositionX").GetComponent<LayoutElement>();
controllersTransformTemplate = DiContainer.Resolve<MainSettingsMenuViewController>()._settingsSubMenuInfos.First(m => m.viewController is ControllerProfilesSettingsViewController).viewController.transform.Find("Content/MainContent/Sliders/PositionX").GetComponent<LayoutElement>();
}

LayoutElement baseSetting = Object.Instantiate(controllersTransformTemplate, parent, false);
baseSetting.name = "BSMLSliderSetting";

RectTransform rectTransform = (RectTransform)baseSetting.transform;
rectTransform.anchoredPosition = Vector3.zero;

Object.Destroy(rectTransform.Find("SliderLeft").gameObject);
Object.Destroy(baseSetting.GetComponent<CanvasGroup>());

GameObject gameObject = baseSetting.gameObject;

T sliderSetting = gameObject.AddComponent<T>();
Expand All @@ -34,22 +41,29 @@ public override GameObject CreateObject(Transform parent)
sliderSetting.Slider.GetComponentInChildren<TextMeshProUGUI>().enableWordWrapping = false;
sliderSetting.Slider._enableDragging = true;

RectTransform rectTransform = (RectTransform)sliderSetting.Slider.transform;
rectTransform.anchorMin = new Vector2(1, 0);
rectTransform.anchorMax = new Vector2(1, 1);
rectTransform.sizeDelta = new Vector2(52, 0);
rectTransform.pivot = new Vector2(1, 0.5f);
rectTransform.anchoredPosition = new Vector2(0, 0);
RectTransform sliderTransform = (RectTransform)sliderSetting.Slider.transform;
sliderTransform.anchorMin = new Vector2(1, 0);
sliderTransform.anchorMax = new Vector2(1, 1);
sliderTransform.sizeDelta = new Vector2(52, 0);
sliderTransform.pivot = new Vector2(1, 0.5f);
sliderTransform.anchoredPosition = new Vector2(0, 0);

GameObject titleObject = gameObject.transform.Find("Title").gameObject;
LocalizedTextMeshProUGUI localizedText = ConfigureLocalizedText(titleObject);

GameObject nameText = gameObject.transform.Find("Title").gameObject;
LocalizedTextMeshProUGUI localizedText = ConfigureLocalizedText(nameText);
RectTransform titleTransform = (RectTransform)titleObject.transform;
titleTransform.anchorMin = Vector3.zero;
titleTransform.anchorMax = Vector3.zero;
titleTransform.offsetMin = Vector3.zero;
titleTransform.offsetMax = new Vector2(-52, 0);

TextMeshProUGUI text = nameText.GetComponent<TextMeshProUGUI>();
text.text = "Default Text";
text.rectTransform.anchorMax = Vector2.one;
TextMeshProUGUI titleTextMesh = titleObject.GetComponent<TextMeshProUGUI>();
titleTextMesh.text = "Default Text";
titleTextMesh.rectTransform.anchorMax = Vector2.one;
titleTextMesh.alignment = TextAlignmentOptions.CaplineLeft;

List<Component> externalComponents = gameObject.AddComponent<ExternalComponents>().Components;
externalComponents.Add(text);
externalComponents.Add(titleTextMesh);
externalComponents.Add(localizedText);

baseSetting.preferredWidth = 90;
Expand Down

0 comments on commit b25aac6

Please sign in to comment.