Skip to content

Commit 7073486

Browse files
committed
Version testing & cleanup
1 parent bbc2ac8 commit 7073486

15 files changed

+186
-90
lines changed

TrickSaber/GameplayManager.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public static void OnGameSceneLoaded()
1515
DisableScoreSubmissionIfNeeded();
1616

1717
var globalTrickManager = new GameObject("GlobalTrickManager").AddComponent<GlobalTrickManager>();
18-
globalTrickManager.AudioTimeSyncController = UnityEngine.Object.FindObjectOfType<AudioTimeSyncController>();
18+
globalTrickManager.AudioTimeSyncController = Object.FindObjectOfType<AudioTimeSyncController>();
1919

2020
GameObject leftSaber = GameObject.Find("GameCore/Origin/VRGameCore/LeftSaber");
2121
GameObject rightSaber = GameObject.Find("GameCore/Origin/VRGameCore/RightSaber");

TrickSaber/GlobalTrickManager.cs

+26-27
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ public class GlobalTrickManager : MonoBehaviour
88
{
99
public static GlobalTrickManager Instance;
1010

11-
public SaberTrickManager LeftSaberSaberTrickManager;
12-
public SaberTrickManager RightSaberSaberTrickManager;
13-
14-
public AudioTimeSyncController AudioTimeSyncController;
15-
1611
private Coroutine _applySlowmoCoroutine;
1712
private Coroutine _EndSlowmoCoroutine;
1813

1914
private bool _slowmoApplied;
2015
private float _slowmoStepAmount;
2116

22-
void Awake()
17+
public AudioTimeSyncController AudioTimeSyncController;
18+
19+
public SaberTrickManager LeftSaberSaberTrickManager;
20+
public SaberTrickManager RightSaberSaberTrickManager;
21+
22+
private void Awake()
2323
{
2424
Instance = this;
2525
_slowmoStepAmount = PluginConfig.Instance.SlowmoStepAmount;
@@ -29,7 +29,7 @@ public void OnTrickStarted(TrickAction trickAction)
2929
{
3030
if (trickAction == TrickAction.Throw && PluginConfig.Instance.SlowmoDuringThrow && !_slowmoApplied)
3131
{
32-
if(_EndSlowmoCoroutine!=null)StopCoroutine(_EndSlowmoCoroutine);
32+
if (_EndSlowmoCoroutine != null) StopCoroutine(_EndSlowmoCoroutine);
3333
_applySlowmoCoroutine = StartCoroutine(ApplySlowmoSmooth(PluginConfig.Instance.SlowmoMultiplier));
3434
_slowmoApplied = true;
3535
}
@@ -49,20 +49,19 @@ public void OnTrickEndRequsted(TrickAction trickAction)
4949

5050
public void OnTrickEnded(TrickAction trickAction)
5151
{
52-
5352
}
5453

5554
private IEnumerator ApplySlowmoSmooth(float multiplier)
5655
{
57-
float timeScale = 1;
58-
var audioSource = AudioTimeSyncController.GetField<AudioSource, AudioTimeSyncController>("_audioSource");
59-
while (timeScale > multiplier)
60-
{
61-
timeScale -= _slowmoStepAmount;
62-
AudioTimeSyncController.SetField("_timeScale",timeScale);
63-
audioSource.pitch = timeScale;
64-
yield return new WaitForFixedUpdate();
65-
}
56+
float timeScale = 1;
57+
var audioSource = AudioTimeSyncController.GetField<AudioSource, AudioTimeSyncController>("_audioSource");
58+
while (timeScale > multiplier)
59+
{
60+
timeScale -= _slowmoStepAmount;
61+
AudioTimeSyncController.SetField("_timeScale", timeScale);
62+
audioSource.pitch = timeScale;
63+
yield return new WaitForFixedUpdate();
64+
}
6665
}
6766

6867
private void ApplySlowmo(float multiplier)
@@ -76,15 +75,15 @@ private void ApplySlowmo(float multiplier)
7675

7776
private IEnumerator EndSlowmoSmooth()
7877
{
79-
float timeScale = AudioTimeSyncController.timeScale;
80-
var audioSource = AudioTimeSyncController.GetField<AudioSource, AudioTimeSyncController>("_audioSource");
81-
while (timeScale<1f)
82-
{
83-
timeScale += _slowmoStepAmount;
84-
AudioTimeSyncController.SetField("_timeScale", timeScale);
85-
audioSource.pitch = timeScale;
86-
yield return new WaitForFixedUpdate();
87-
}
78+
float timeScale = AudioTimeSyncController.timeScale;
79+
var audioSource = AudioTimeSyncController.GetField<AudioSource, AudioTimeSyncController>("_audioSource");
80+
while (timeScale < 1f)
81+
{
82+
timeScale += _slowmoStepAmount;
83+
AudioTimeSyncController.SetField("_timeScale", timeScale);
84+
audioSource.pitch = timeScale;
85+
yield return new WaitForFixedUpdate();
86+
}
8887
}
8988

9089
private void EndSlowmo()
@@ -100,4 +99,4 @@ public bool IsTrickInState(TrickAction trickAction, TrickState state)
10099
RightSaberSaberTrickManager.IsTrickInState(trickAction, state);
101100
}
102101
}
103-
}
102+
}

TrickSaber/InputHandling/InputManager.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,14 @@ public void Init(SaberType type, VRControllersInputManager vrControllersInputMan
3434
var dir = (ThumstickDir) Enum.Parse(typeof(ThumstickDir), PluginConfig.Instance.ThumstickDirection, true);
3535

3636
var triggerHandler = new TriggerHandler(node, PluginConfig.Instance.TriggerThreshold);
37-
var gripHandler = new GripHandler(vrSystem, oculusController, controllerInputDevice, PluginConfig.Instance.GripThreshold);
37+
var gripHandler = new GripHandler(vrSystem, oculusController, controllerInputDevice,
38+
PluginConfig.Instance.GripThreshold);
3839
var thumbstickAction = new ThumbstickHandler(node, PluginConfig.Instance.ThumbstickThreshold, dir);
3940

4041
_trickInputHandler.Add(PluginConfig.Instance.TriggerAction.GetEnumValue<TrickAction>(), triggerHandler);
4142
_trickInputHandler.Add(PluginConfig.Instance.GripAction.GetEnumValue<TrickAction>(), gripHandler);
42-
_trickInputHandler.Add(PluginConfig.Instance.ThumbstickAction.GetEnumValue<TrickAction>(), thumbstickAction);
43+
_trickInputHandler.Add(PluginConfig.Instance.ThumbstickAction.GetEnumValue<TrickAction>(),
44+
thumbstickAction);
4345

4446
Plugin.Log.Debug("Started Input Manager using " + vrSystem);
4547
}

TrickSaber/MovementController.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ public class MovementController : MonoBehaviour
1818

1919
public Vector3 ControllerPosition = Vector3.zero;
2020
public Quaternion ControllerRotation = Quaternion.identity;
21-
public Vector3 LocalControllerPosition => Controller.gameObject.transform.localPosition;
22-
public Quaternion LocalControllerRotation => Controller.gameObject.transform.localRotation;
2321
public SaberTrickManager SaberTrickManager;
2422

2523
public Vector3 Velocity = Vector3.zero;
2624
public VRPlatformHelper VrPlatformHelper;
25+
public Vector3 LocalControllerPosition => Controller.gameObject.transform.localPosition;
26+
public Quaternion LocalControllerRotation => Controller.gameObject.transform.localRotation;
2727

2828
public float SaberSpeed => Velocity.magnitude;
2929

TrickSaber/Plugin.cs

+20-14
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
using System;
2+
using System.Collections;
3+
using System.Net;
24
using System.Reflection;
35
using BS_Utils.Utilities;
46
using HarmonyLib;
57
using IPA;
68
using IPA.Config.Stores;
9+
using OVRSimpleJSON;
10+
using SemVer;
11+
using TMPro;
12+
using TrickSaber.UI;
13+
using UnityEngine.Networking;
714
using UnityEngine.XR;
815
using Config = IPA.Config.Config;
916
using Logger = IPA.Logging.Logger;
17+
using Version = SemVer.Version;
1018

1119
namespace TrickSaber
1220
{
@@ -15,33 +23,31 @@ internal class Plugin
1523
{
1624
public static string ControllerModel;
1725

26+
public static Version Version;
27+
public static string VersionString;
28+
29+
public static Logger Log { get; set; }
30+
public static Harmony Harmony { get; set; }
31+
public static bool IsControllerSupported => !ControllerModel.Contains("Knuckles");
32+
1833
[Init]
1934
public Plugin(Logger logger, Config config)
2035
{
2136
Log = logger;
2237
PluginConfig.Instance = config.Generated<PluginConfig>();
38+
var ver = Assembly.GetExecutingAssembly().GetName().Version;
39+
Version = new Version(ver.Major, ver.Minor, ver.Build);
40+
VersionString = Version.Major + "." + Version.Minor + "." + Version.Patch;
2341
}
2442

25-
public static string Version
26-
{
27-
get
28-
{
29-
Version ver = Assembly.GetExecutingAssembly().GetName().Version;
30-
return ver.Major + "." + ver.Minor + "." + ver.Build;
31-
}
32-
}
33-
34-
public static Logger Log { get; set; }
35-
public static Harmony Harmony { get; set; }
36-
public static bool IsControllerSupported => !ControllerModel.Contains("Knuckles");
37-
3843
[OnStart]
3944
public void OnStart()
4045
{
46+
TrickSaberPlugin.Create();
4147
SettingsUI.CreateMenu();
4248
BSEvents.gameSceneLoaded += GameplayManager.OnGameSceneLoaded;
4349
BSEvents.menuSceneLoadedFresh += OnMenuSceneLoadedFresh;
44-
Log.Debug($"TrickSaber version {Version} started");
50+
Log.Debug($"TrickSaber version {VersionString} started");
4551
}
4652

4753
public static string GetControllerName()

TrickSaber/SaberTrickManager.cs

+6-4
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ private IEnumerator Start()
3838
_movementController.SaberTrickManager = this;
3939

4040
_inputManager = gameObject.AddComponent<InputManager>();
41-
_inputManager.Init(Saber.saberType, Controller.GetField<VRControllersInputManager, VRController>("_vrControllersInputManager"));
41+
_inputManager.Init(Saber.saberType,
42+
Controller.GetField<VRControllersInputManager, VRController>("_vrControllersInputManager"));
4243
_inputManager.TrickActivated += OnTrickActivated;
4344
_inputManager.TrickDeactivated += OnTrickDeactivated;
4445

@@ -54,16 +55,17 @@ private IEnumerator Start()
5455
private void OnTrickDeactivated(TrickAction trickAction)
5556
{
5657
var trick = Tricks[trickAction];
57-
if (trick.State!=TrickState.Started) return;
58+
if (trick.State != TrickState.Started) return;
5859
trick.EndTrick();
5960
}
6061

6162
private void OnTrickActivated(TrickAction trickAction, float val)
6263
{
6364
var trick = Tricks[trickAction];
6465
trick.Value = val;
65-
if (trick.State!=TrickState.Inactive) return;
66-
if (GlobalTrickManager.Instance.AudioTimeSyncController.state == AudioTimeSyncController.State.Paused) return;
66+
if (trick.State != TrickState.Inactive) return;
67+
if (GlobalTrickManager.Instance.AudioTimeSyncController.state ==
68+
AudioTimeSyncController.State.Paused) return;
6769
trick.StartTrick();
6870
}
6971

TrickSaber/TrickSaber.csproj

+8
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@
6767
<SpecificVersion>False</SpecificVersion>
6868
<HintPath>E:\SteamLibrary\steamapps\common\Beat Saber\Beat Saber_Data\Managed\OculusPlatform.dll</HintPath>
6969
</Reference>
70+
<Reference Include="SemVer">
71+
<HintPath>E:\SteamLibrary\steamapps\common\Beat Saber\Libs\SemVer.dll</HintPath>
72+
</Reference>
7073
<Reference Include="SteamVR, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
7174
<SpecificVersion>False</SpecificVersion>
7275
<HintPath>E:\SteamLibrary\steamapps\common\Beat Saber\Beat Saber_Data\Managed\SteamVR.dll</HintPath>
@@ -115,6 +118,10 @@
115118
<SpecificVersion>False</SpecificVersion>
116119
<HintPath>E:\SteamLibrary\steamapps\common\Beat Saber\Beat Saber_Data\Managed\UnityEngine.UIModule.dll</HintPath>
117120
</Reference>
121+
<Reference Include="UnityEngine.UnityWebRequestModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
122+
<SpecificVersion>False</SpecificVersion>
123+
<HintPath>E:\SteamLibrary\steamapps\common\Beat Saber\Beat Saber_Data\Managed\UnityEngine.UnityWebRequestModule.dll</HintPath>
124+
</Reference>
118125
<Reference Include="UnityEngine.VRModule">
119126
<HintPath>E:\SteamLibrary\steamapps\common\Beat Saber\Beat Saber_Data\Managed\UnityEngine.VRModule.dll</HintPath>
120127
</Reference>
@@ -144,6 +151,7 @@
144151
<Compile Include="UI\SettingsUI.cs" />
145152
<Compile Include="InputHandling\ThumbstickHandler.cs" />
146153
<Compile Include="SaberTrickManager.cs" />
154+
<Compile Include="UI\TrickSaberPlugin.cs" />
147155
<Compile Include="VectorExtensions.cs" />
148156
<Compile Include="ViewControllers\BindingsViewController.cs" />
149157
<Compile Include="InputHandling\TriggerHandler.cs" />

TrickSaber/Tricks/SpinTrick.cs

+6-5
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ namespace TrickSaber
66
{
77
public class SpinTrick : Trick
88
{
9+
private bool _isVelocityDependent;
910
private Transform _saberModelTransform;
1011
private Vector3 _spinVelocity;
11-
private bool _isVelocityDependent;
1212

1313
public override TrickAction TrickAction => TrickAction.Spin;
1414

@@ -23,7 +23,7 @@ public override void OnTrickStart()
2323
if (_isVelocityDependent)
2424
{
2525
var angularVelocity = MovementController.GetAverageAngularVelocity();
26-
_spinVelocity = new Vector3(Math.Abs(angularVelocity.x)+Math.Abs(angularVelocity.y), 0, 0);
26+
_spinVelocity = new Vector3(Math.Abs(angularVelocity.x) + Math.Abs(angularVelocity.y), 0, 0);
2727
angularVelocity = Quaternion.Inverse(MovementController.ControllerRotation) * angularVelocity;
2828
if (angularVelocity.x < 0) _spinVelocity *= -1;
2929
}
@@ -40,19 +40,20 @@ public override void OnTrickStart()
4040
public override void OnTrickUpdate()
4141
{
4242
var vel = _spinVelocity;
43-
if (!_isVelocityDependent) vel *= (float)Math.Pow(Value, 3);
43+
if (!_isVelocityDependent) vel *= (float) Math.Pow(Value, 3);
4444
_saberModelTransform.Rotate(vel);
4545
}
4646

47-
IEnumerator LerpToOriginalRotation()
47+
private IEnumerator LerpToOriginalRotation()
4848
{
4949
var rot = _saberModelTransform.localRotation;
50-
while (Quaternion.Angle(rot, Quaternion.identity)>5f)
50+
while (Quaternion.Angle(rot, Quaternion.identity) > 5f)
5151
{
5252
rot = Quaternion.Lerp(rot, Quaternion.identity, Time.deltaTime * 20);
5353
_saberModelTransform.localRotation = rot;
5454
yield return new WaitForEndOfFrame();
5555
}
56+
5657
_saberModelTransform.localRotation = Quaternion.identity;
5758
Reset();
5859
}

TrickSaber/Tricks/ThrowTrick.cs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System.Collections;
2-
using IPA.Utilities;
32
using UnityEngine;
43

54
namespace TrickSaber

TrickSaber/Tricks/Trick.cs

+5-6
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@ namespace TrickSaber
55
{
66
public abstract class Trick : MonoBehaviour
77
{
8+
protected bool _endRequested;
89
protected MovementController MovementController;
910
protected SaberTrickManager SaberTrickManager;
1011
protected SaberTrickModel SaberTrickModel;
11-
12-
protected bool _endRequested;
13-
public float Value;
1412
public TrickState State = TrickState.Inactive;
13+
public float Value;
1514

1615
public abstract TrickAction TrickAction { get; }
1716
public string Name => TrickAction.ToString();
@@ -31,7 +30,7 @@ public void Init(SaberTrickManager saberTrickManager, MovementController movemen
3130

3231
public bool StartTrick()
3332
{
34-
if (State==TrickState.Inactive)
33+
if (State == TrickState.Inactive)
3534
{
3635
State = TrickState.Started;
3736
OnTrickStart();
@@ -44,7 +43,7 @@ public bool StartTrick()
4443

4544
public void EndTrick()
4645
{
47-
if (State==TrickState.Started) _endRequested = true;
46+
if (State == TrickState.Started) _endRequested = true;
4847
}
4948

5049
protected void Reset()
@@ -56,7 +55,7 @@ protected void Reset()
5655

5756
private void Update()
5857
{
59-
if (State==TrickState.Started)
58+
if (State == TrickState.Started)
6059
if (!_endRequested)
6160
{
6261
OnTrickUpdate();

0 commit comments

Comments
 (0)