From 1a3b4a2b9099dee8ffa02cbe5e4775e0319b7500 Mon Sep 17 00:00:00 2001 From: irlbunny Date: Thu, 5 Sep 2024 16:59:51 -0400 Subject: [PATCH 1/3] Fix for 1.37.4 and version --- .../Installers/OtherCustomInstaller.cs | 4 ++-- SiraUtil.Suite/Plugin.cs | 19 ++++++++++------- SiraUtil.Suite/SiraUtil.Suite.csproj | 21 ++++++++++++++++++- .../Tests/Sabers/TestSaberModelController.cs | 3 ++- .../Sabers/Effects/SiraSaberClashChecker.cs | 2 +- SiraUtil/Sabers/SiraSaber.cs | 12 ++++++++--- SiraUtil/SiraUtil.csproj | 20 ++++++++++++++---- SiraUtil/manifest.json | 4 ++-- 8 files changed, 64 insertions(+), 21 deletions(-) diff --git a/SiraUtil.Suite/Installers/OtherCustomInstaller.cs b/SiraUtil.Suite/Installers/OtherCustomInstaller.cs index ede7f7a..c749243 100644 --- a/SiraUtil.Suite/Installers/OtherCustomInstaller.cs +++ b/SiraUtil.Suite/Installers/OtherCustomInstaller.cs @@ -11,8 +11,8 @@ public OtherCustomInstaller(GameplayCoreSceneSetupData gameplayCoreSceneSetupDat { _gameplayCoreSceneSetupData = gameplayCoreSceneSetupData; Assert.IsNotNull(_gameplayCoreSceneSetupData); - Assert.IsNotNull(_gameplayCoreSceneSetupData.difficultyBeatmap); - Plugin.Log.Info(_gameplayCoreSceneSetupData.difficultyBeatmap.SerializedName()); + Assert.IsNotNull(_gameplayCoreSceneSetupData.beatmapKey); + Plugin.Log.Info(_gameplayCoreSceneSetupData.beatmapKey.SerializedName()); } public override void InstallBindings() diff --git a/SiraUtil.Suite/Plugin.cs b/SiraUtil.Suite/Plugin.cs index 3a23441..bf9150d 100644 --- a/SiraUtil.Suite/Plugin.cs +++ b/SiraUtil.Suite/Plugin.cs @@ -1,6 +1,11 @@ using IPA; +using SiraUtil.Extras; +using SiraUtil.Objects.Beatmap; +using SiraUtil.Sabers; using SiraUtil.Suite.Installers; using SiraUtil.Suite.Tests.Installers; +using SiraUtil.Suite.Tests.Sabers; +using SiraUtil.Suite.Tests.Web; using SiraUtil.Zenject; using UnityEngine; using IPALogger = IPA.Logging.Logger; @@ -32,19 +37,19 @@ public Plugin(IPALogger logger, Zenjector zenjector) zenjector.UseLogger(logger); zenjector.UseHttpService(); - //zenjector.UseSiraSync(Web.SiraSync.SiraSyncServiceType.GitHub, "Auros", "SiraUtil"); - //zenjector.Install(Location.Menu, Container => Container.BindInterfacesTo().AsSingle()); + zenjector.UseSiraSync(Web.SiraSync.SiraSyncServiceType.GitHub, "Auros", "SiraUtil"); + zenjector.Install(Location.Menu, Container => Container.BindInterfacesTo().AsSingle()); zenjector.Install(Location.Player | Location.Tutorial, Container => { - //Container.BindInterfacesTo().AsSingle(); - //Container.BindInstance(SaberModelRegistration.Create(100)).AsSingle(); - // - //Container.RegisterRedecorator(new BasicNoteRegistration(Create2, 20)); + Container.BindInterfacesTo().AsSingle(); + Container.BindInstance(SaberModelRegistration.Create(100)).AsSingle(); + + Container.RegisterRedecorator(new BasicNoteRegistration(Create2, 20)); }); zenjector.Install(Location.ConnectedPlayer, Container => { - //Container.RegisterRedecorator(new ConnectedPlayerNoteRegistration(Create)); + Container.RegisterRedecorator(new ConnectedPlayerNoteRegistration(Create)); }); } diff --git a/SiraUtil.Suite/SiraUtil.Suite.csproj b/SiraUtil.Suite/SiraUtil.Suite.csproj index c1eef25..b26064a 100644 --- a/SiraUtil.Suite/SiraUtil.Suite.csproj +++ b/SiraUtil.Suite/SiraUtil.Suite.csproj @@ -1,7 +1,7 @@  - netstandard2.0 + net472 Library 8 enable @@ -37,6 +37,18 @@ + + $(BeatSaberDir)\Beat Saber_Data\Managed\BeatSaber.ViewSystem.dll + False + + + $(BeatSaberDir)\Beat Saber_Data\Managed\BGLib.AppFlow.dll + False + + + $(BeatSaberDir)\Beat Saber_Data\Managed\DataModels.dll + False + $(BeatSaberDir)\Beat Saber_Data\Managed\GameplayCore.dll False @@ -49,10 +61,17 @@ $(BeatSaberDir)\Beat Saber_Data\Managed\HMRendering.dll False + + $(BeatSaberDir)\Beat Saber_Data\Managed\netstandard.dll + $(BeatSaberDir)\Beat Saber_Data\Managed\Rendering.dll False + + $(BeatSaberDir)\Beat Saber_Data\Managed\SaberTrail.dll + False + $(BeatSaberDir)\Libs\SemVer.dll False diff --git a/SiraUtil.Suite/Tests/Sabers/TestSaberModelController.cs b/SiraUtil.Suite/Tests/Sabers/TestSaberModelController.cs index fdb9722..8612f35 100644 --- a/SiraUtil.Suite/Tests/Sabers/TestSaberModelController.cs +++ b/SiraUtil.Suite/Tests/Sabers/TestSaberModelController.cs @@ -11,13 +11,14 @@ internal class TestSaberModelController : SaberModelController, IColorable, IPre [Inject] private readonly ColorManager _colorManager = null!; - public void PreInit(Transform parent, Saber saber) + public bool PreInit(Transform parent, Saber saber) { Color = _colorManager.ColorForSaberType(saber.saberType); GameObject g = GameObject.CreatePrimitive(PrimitiveType.Sphere); g.transform.localScale *= 0.1f; g.transform.SetParent(transform); g.transform.localPosition = new Vector3(0f, 0f, 1f); + return true; } } } \ No newline at end of file diff --git a/SiraUtil/Sabers/Effects/SiraSaberClashChecker.cs b/SiraUtil/Sabers/Effects/SiraSaberClashChecker.cs index ee04c7d..182ea8a 100644 --- a/SiraUtil/Sabers/Effects/SiraSaberClashChecker.cs +++ b/SiraUtil/Sabers/Effects/SiraSaberClashChecker.cs @@ -51,7 +51,7 @@ private void SiraSaberFactory_SaberCreated(SiraSaber siraSaber) public bool AreSabersClashing(ref bool sabersAreClashing, ref Vector3 localClashingPoint, ref int prevGetFrameNum, out Vector3 clashingPoint) { - if (_leftSaber.movementData.lastAddedData.time < 0.1f) + if (_leftSaber.movementDataForLogic.lastAddedData.time < 0.1f) { clashingPoint = localClashingPoint; return false; diff --git a/SiraUtil/Sabers/SiraSaber.cs b/SiraUtil/Sabers/SiraSaber.cs index 9a19b39..20b8c39 100644 --- a/SiraUtil/Sabers/SiraSaber.cs +++ b/SiraUtil/Sabers/SiraSaber.cs @@ -24,6 +24,7 @@ public class SiraSaber : MonoBehaviour private SaberTypeObject _saberTypeObject = null!; private SaberModelProvider _saberModelProvider = null!; private SaberModelController _saberModelController = null!; + private SaberModelContainer.InitData _saberModelControllerInitData = new SaberModelContainer.InitData(); private readonly Queue _colorProcessNextFrame = new(); private bool _constructedThisFrame = false; @@ -35,11 +36,16 @@ public class SiraSaber : MonoBehaviour private static readonly FieldAccessor.Accessor SaberBladeBottomTransform = FieldAccessor.GetAccessor("_saberBladeBottomTransform"); [Inject] - internal void Construct(NoteCutter noteCutter, ColorManager colorManager, SaberModelProvider saberModelProvider) + internal void Construct( + NoteCutter noteCutter, + ColorManager colorManager, + SaberModelProvider saberModelProvider, + [InjectOptional] SaberModelContainer.InitData saberModelControllerInitData) { _noteCutter = noteCutter; _colorManager = colorManager; _saberModelProvider = saberModelProvider; + _saberModelControllerInitData = saberModelControllerInitData; } internal void Setup(SaberType saberType) where T : Saber @@ -63,7 +69,7 @@ internal void Setup(SaberType saberType) where T : Saber _saberTypeObject.SetField("_saberType", saberType); _saberModelController = _saberModelProvider.NewModel(saberType); - _saberModelController.Init(transform, Saber); + _saberModelController.Init(transform, Saber, _saberModelControllerInitData.trailTintColor); _constructedThisFrame = true; } @@ -76,7 +82,7 @@ internal void Update() Transform bottomTransform = SaberBladeBottomTransform(ref saber); Vector3 topPosition = SaberBladeTopPosition(ref saber) = topTransform.position; Vector3 bottomPosition = SaberBladeBottomPosition(ref saber) = bottomTransform.position; - Saber.movementData.AddNewData(topPosition, bottomPosition, TimeHelper.time); + Saber.movementDataForLogic.AddNewData(topPosition, bottomPosition, TimeHelper.time); _noteCutter.Cut(Saber); } diff --git a/SiraUtil/SiraUtil.csproj b/SiraUtil/SiraUtil.csproj index 51a9c2b..4337063 100644 --- a/SiraUtil/SiraUtil.csproj +++ b/SiraUtil/SiraUtil.csproj @@ -58,6 +58,10 @@ $(BeatSaberDir)\Beat Saber_Data\Managed\BeatSaber.Init.dll False + + $(BeatSaberDir)\Beat Saber_Data\Managed\BeatSaber.ViewSystem.dll + False + $(BeatSaberDir)\Beat Saber_Data\Managed\BGLib.AppFlow.dll True @@ -83,6 +87,10 @@ $(BeatSaberDir)\Beat Saber_Data\Managed\DataModels.dll False + + $(BeatSaberDir)\Beat Saber_Data\Managed\GameInit.dll + False + $(BeatSaberDir)\Beat Saber_Data\Managed\GameplayCore.dll False @@ -114,6 +122,10 @@ $(BeatSaberDir)\Beat Saber_Data\Managed\Rendering.dll False + + $(BeatSaberDir)\Beat Saber_Data\Managed\SaberTrail.dll + False + $(BeatSaberDir)\Beat Saber_Data\Managed\Unity.TextMeshPro.dll False @@ -142,10 +154,10 @@ $(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.ParticleSystemModule.dll False - - $(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.SpatialTracking.dll - False - + + $(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.SpatialTracking.dll + False + $(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UI.dll False diff --git a/SiraUtil/manifest.json b/SiraUtil/manifest.json index 6b2cebf..e277f42 100644 --- a/SiraUtil/manifest.json +++ b/SiraUtil/manifest.json @@ -3,10 +3,10 @@ "id": "SiraUtil", "name": "SiraUtil", "author": "Auros", - "version": "3.1.11", + "version": "3.1.12", "icon": "SiraUtil.Resources.logo.png", "description": "A powerful utility mod which provides more tools to Beat Saber modders.", - "gameVersion": "1.37.1", + "gameVersion": "1.37.4", "dependsOn": { "BSIPA": "^4.3.0" }, From 598bab99a05180be1e7437cf6be1489fd9b5f68e Mon Sep 17 00:00:00 2001 From: irlbunny Date: Thu, 5 Sep 2024 21:51:26 -0400 Subject: [PATCH 2/3] Fix potential null reference --- SiraUtil/Sabers/SiraSaber.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SiraUtil/Sabers/SiraSaber.cs b/SiraUtil/Sabers/SiraSaber.cs index 20b8c39..85275f1 100644 --- a/SiraUtil/Sabers/SiraSaber.cs +++ b/SiraUtil/Sabers/SiraSaber.cs @@ -45,7 +45,9 @@ internal void Construct( _noteCutter = noteCutter; _colorManager = colorManager; _saberModelProvider = saberModelProvider; - _saberModelControllerInitData = saberModelControllerInitData; + + if (saberModelControllerInitData != null) + _saberModelControllerInitData = saberModelControllerInitData; } internal void Setup(SaberType saberType) where T : Saber From 5acdbb29069384190c3f505c7319f2b12bf66c39 Mon Sep 17 00:00:00 2001 From: irlbunny Date: Thu, 5 Sep 2024 22:10:17 -0400 Subject: [PATCH 3/3] Fix variable naming This is what 3 hours of sleep does to someone. --- SiraUtil/Sabers/SiraSaber.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/SiraUtil/Sabers/SiraSaber.cs b/SiraUtil/Sabers/SiraSaber.cs index 85275f1..04fc575 100644 --- a/SiraUtil/Sabers/SiraSaber.cs +++ b/SiraUtil/Sabers/SiraSaber.cs @@ -24,7 +24,7 @@ public class SiraSaber : MonoBehaviour private SaberTypeObject _saberTypeObject = null!; private SaberModelProvider _saberModelProvider = null!; private SaberModelController _saberModelController = null!; - private SaberModelContainer.InitData _saberModelControllerInitData = new SaberModelContainer.InitData(); + private SaberModelContainer.InitData _saberModelContainerInitData = new SaberModelContainer.InitData(); private readonly Queue _colorProcessNextFrame = new(); private bool _constructedThisFrame = false; @@ -40,14 +40,14 @@ internal void Construct( NoteCutter noteCutter, ColorManager colorManager, SaberModelProvider saberModelProvider, - [InjectOptional] SaberModelContainer.InitData saberModelControllerInitData) + [InjectOptional] SaberModelContainer.InitData saberModelContainerInitData) { _noteCutter = noteCutter; _colorManager = colorManager; _saberModelProvider = saberModelProvider; - if (saberModelControllerInitData != null) - _saberModelControllerInitData = saberModelControllerInitData; + if (saberModelContainerInitData != null) + _saberModelContainerInitData = saberModelContainerInitData; } internal void Setup(SaberType saberType) where T : Saber @@ -71,7 +71,7 @@ internal void Setup(SaberType saberType) where T : Saber _saberTypeObject.SetField("_saberType", saberType); _saberModelController = _saberModelProvider.NewModel(saberType); - _saberModelController.Init(transform, Saber, _saberModelControllerInitData.trailTintColor); + _saberModelController.Init(transform, Saber, _saberModelContainerInitData.trailTintColor); _constructedThisFrame = true; }