mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-02 06:19:22 +00:00
32 lines
No EOL
1.3 KiB
C#
32 lines
No EOL
1.3 KiB
C#
using ABI.CCK.Components;
|
|
using HarmonyLib;
|
|
using NAK.PickupPushPull.InputModules;
|
|
using UnityEngine;
|
|
|
|
namespace NAK.PickupPushPull.HarmonyPatches;
|
|
|
|
[HarmonyPatch]
|
|
internal class HarmonyPatches
|
|
{
|
|
//uses code from https://github.com/ljoonal/CVR-Plugins/tree/main/RotateIt
|
|
//GPL-3.0 license - Thank you ljoonal for being smart brain :plead:
|
|
|
|
[HarmonyPostfix]
|
|
[HarmonyPatch(typeof(CVRPickupObject), nameof(CVRPickupObject.Update))]
|
|
public static void GrabbedObjectPatch(ref CVRPickupObject __instance)
|
|
{
|
|
if (__instance._controllerRay == null)
|
|
return;
|
|
|
|
if (__instance.gripType == CVRPickupObject.GripType.Origin)
|
|
return;
|
|
|
|
Quaternion originalRotation = __instance.transform.rotation;
|
|
Transform referenceTransform = __instance._controllerRay.transform;
|
|
|
|
__instance.transform.RotateAround(__instance.transform.position, referenceTransform.right, PickupPushPull_Module.Instance.objectRotation.y * Time.deltaTime);
|
|
__instance.transform.RotateAround(__instance.transform.position, referenceTransform.up, PickupPushPull_Module.Instance.objectRotation.x * Time.deltaTime);
|
|
|
|
__instance.initialRotationalOffset *= Quaternion.Inverse(__instance.transform.rotation) * originalRotation;
|
|
}
|
|
} |