[IKAdjustments] Fixed for 2024r175

This commit is contained in:
NotAKidoS 2024-04-23 18:47:11 -05:00
parent 9cfe74276d
commit b294a1601f
3 changed files with 11 additions and 22 deletions

View file

@ -1,5 +1,6 @@
using ABI_RC.Core.InteractionSystem; using ABI_RC.Core.InteractionSystem;
using ABI_RC.Systems.IK; using ABI_RC.Systems.IK;
using ABI_RC.Systems.IK.SubSystems;
using HarmonyLib; using HarmonyLib;
using NAK.IKAdjustments.Systems; using NAK.IKAdjustments.Systems;
@ -15,7 +16,7 @@ internal static class IKSystemPatches
} }
[HarmonyPostfix] [HarmonyPostfix]
[HarmonyPatch(typeof(IKSystem), nameof(IKSystem.ResetIkSettings))] [HarmonyPatch(typeof(BodySystem), nameof(BodySystem.ResetCalibration))]
private static void Postfix_IKSystem_ResetIkSettings() private static void Postfix_IKSystem_ResetIkSettings()
{ {
IKAdjuster.Instance.ResetAllOffsets(); IKAdjuster.Instance.ResetAllOffsets();

View file

@ -71,9 +71,9 @@ public class IKAdjuster : MonoBehaviour
return; return;
isAdjustMode = true; isAdjustMode = true;
IKSystem.Instance.SetTrackingPointVisibility(true); IKSystem.Instance.TrackingSystem.SetTrackingPointVisibility(true);
CVR_MenuManager.Instance.ToggleQuickMenu(false); CVR_MenuManager.Instance.ToggleQuickMenu(false);
foreach (TrackingPoint tracker in IKSystem.Instance.AllTrackingPoints) tracker.ClearLineTarget(); foreach (TrackingPoint tracker in IKSystem.Instance.TrackingSystem.AllTrackingPoints) tracker.ClearLineTarget();
} }
public void ExitAdjustMode() public void ExitAdjustMode()
@ -82,12 +82,12 @@ public class IKAdjuster : MonoBehaviour
return; return;
isAdjustMode = false; isAdjustMode = false;
IKSystem.Instance.SetTrackingPointVisibility(false); IKSystem.Instance.TrackingSystem.SetTrackingPointVisibility(false);
} }
public void ResetAllOffsets() public void ResetAllOffsets()
{ {
foreach (TrackingPoint tracker in IKSystem.Instance.AllTrackingPoints) foreach (TrackingPoint tracker in IKSystem.Instance.TrackingSystem.AllTrackingPoints)
{ {
tracker.offsetTransform.SetParent(tracker.displayObject.transform, true); tracker.offsetTransform.SetParent(tracker.displayObject.transform, true);
tracker.displayObject.transform.localPosition = Vector3.zero; tracker.displayObject.transform.localPosition = Vector3.zero;
@ -117,8 +117,8 @@ public class IKAdjuster : MonoBehaviour
? CVRInputManager.Instance.interactLeftValue > 0.9f ? CVRInputManager.Instance.interactLeftValue > 0.9f
: CVRInputManager.Instance.interactRightValue > 0.9f; : CVRInputManager.Instance.interactRightValue > 0.9f;
Transform handTracker = isLeft Transform handTracker = isLeft
? IKSystem.Instance.leftHandTracker.transform ? IKSystem.Instance.leftController.transform
: IKSystem.Instance.rightHandTracker.transform; : IKSystem.Instance.rightController.transform;
if (grabState.tracker == null && !grabState.handGrabbed && isGrabbing) if (grabState.tracker == null && !grabState.handGrabbed && isGrabbing)
{ {
@ -145,7 +145,7 @@ public class IKAdjuster : MonoBehaviour
Setting_MaxGrabDistance) Setting_MaxGrabDistance)
{ {
grabState.tracker = grabState.tracker =
IKSystem.Instance.AllTrackingPoints.Find(tp => tp.referenceTransform == nearestTransform); IKSystem.Instance.TrackingSystem.AllTrackingPoints.Find(tp => tp.referenceTransform == nearestTransform);
if (grabState.otherGrab.tracker == grabState.tracker) OnRelease(grabState.otherGrab); if (grabState.otherGrab.tracker == grabState.tracker) OnRelease(grabState.otherGrab);
grabState.displayOffset = grabState.tracker.displayObject.transform.position - handTracker.position; grabState.displayOffset = grabState.tracker.displayObject.transform.position - handTracker.position;
grabState.displayOffsetRotation = Quaternion.Inverse(handTracker.rotation) * grabState.displayOffsetRotation = Quaternion.Inverse(handTracker.rotation) *
@ -194,7 +194,7 @@ public class IKAdjuster : MonoBehaviour
private Transform FindNearestTransform(Transform handTransform) private Transform FindNearestTransform(Transform handTransform)
{ {
var validTrackingPointTransforms = IKSystem.ValidTrackingPointTransforms; var validTrackingPointTransforms = TrackingSystem.ValidTrackingPointTransforms;
if (validTrackingPointTransforms == null || validTrackingPointTransforms.Count == 0) return null; if (validTrackingPointTransforms == null || validTrackingPointTransforms.Count == 0) return null;
return validTrackingPointTransforms return validTrackingPointTransforms
.OrderBy(t => Vector3.Distance(handTransform.position, t.GetChild(0).position)).FirstOrDefault(); .OrderBy(t => Vector3.Distance(handTransform.position, t.GetChild(0).position)).FirstOrDefault();

View file

@ -24,20 +24,8 @@ public static class BTKUIAddon
miscCategory.AddButton("Reset Offsets", "", "Reset all tracked point offsets.") miscCategory.AddButton("Reset Offsets", "", "Reset all tracked point offsets.")
.OnPress += () => { IKAdjuster.Instance.ResetAllOffsets(); }; .OnPress += () => { IKAdjuster.Instance.ResetAllOffsets(); };
// Cyle GrabMode Button // Cycle GrabMode Button
miscCategory.AddButton("Cycle Mode", "", "Cycle grab mode. Position, Rotation, or Both.") miscCategory.AddButton("Cycle Mode", "", "Cycle grab mode. Position, Rotation, or Both.")
.OnPress += () => { IKAdjuster.Instance.CycleAdjustMode(); }; .OnPress += () => { IKAdjuster.Instance.CycleAdjustMode(); };
} }
private static void AddMelonToggle(ref Category category, MelonPreferences_Entry<bool> entry)
{
category.AddToggle(entry.DisplayName, entry.Description, entry.Value).OnValueUpdated += b => entry.Value = b;
}
private static void AddMelonSlider(ref Page page, MelonPreferences_Entry<float> entry, float min, float max,
int decimalPlaces = 2)
{
page.AddSlider(entry.DisplayName, entry.Description, entry.Value, min, max, decimalPlaces).OnValueUpdated +=
f => entry.Value = f;
}
} }