public static Gesture GetGesture(Hand hand) { Gesture gesture = Gesture.Normal; HandGestureController handGestureController = GetHandGestureController(); if (handGestureController == null) { return(gesture); } switch (hand == Hand.Left ? handGestureController.field_Private_EnumNPrivateSealedva9vUnique_0 : handGestureController.field_Private_EnumNPrivateSealedva9vUnique_2) { case HandGestureController.EnumNPrivateSealedva9vUnique.EnumValue1: gesture = Gesture.Fist; break; case HandGestureController.EnumNPrivateSealedva9vUnique.EnumValue2: gesture = Gesture.Open; break; case HandGestureController.EnumNPrivateSealedva9vUnique.EnumValue3: gesture = Gesture.Point; break; case HandGestureController.EnumNPrivateSealedva9vUnique.EnumValue4: gesture = Gesture.Victory; break; case HandGestureController.EnumNPrivateSealedva9vUnique.EnumValue5: gesture = Gesture.RockNRoll; break; case HandGestureController.EnumNPrivateSealedva9vUnique.EnumValue6: gesture = Gesture.Gun; break; case HandGestureController.EnumNPrivateSealedva9vUnique.EnumValue7: gesture = Gesture.ThumbsUp; break; } return(gesture); }
public override void OnLateUpdate() { if (isReady) { l_solver = VRCPlayer.field_Internal_Static_VRCPlayer_0?.field_Private_VRC_AnimationController_0?.field_Private_VRIK_0?.solver; if (l_solver != null) { if (l_solver.leftArm?.target != null) { l_solver.leftArm.positionWeight = 1f; l_solver.leftArm.rotationWeight = 1f; l_solver.leftArm.target.position = m_leftTargetPosition; l_solver.leftArm.target.rotation = m_leftTargetRotation; } if (l_solver.rightArm?.target != null) { l_solver.rightArm.positionWeight = 1f; l_solver.rightArm.rotationWeight = 1f; l_solver.rightArm.target.position = m_rightTargetPosition; l_solver.rightArm.target.rotation = m_rightTargetRotation; } } l_handController = VRCPlayer.field_Internal_Static_VRCPlayer_0?.field_Private_VRC_AnimationController_0?.field_Private_HandGestureController_0; if (l_handController != null) { l_handController.field_Internal_Boolean_0 = true; l_handController.field_Private_EnumNPublicSealedvaKeMoCoGaViOcViDaWaUnique_0 = VRCInputManager.EnumNPublicSealedvaKeMoCoGaViOcViDaWaUnique.Index; for (int i = 0; i < 2; i++) { for (int j = 0; j < 5; j++) { int l_dataIndex = i * 5 + j; l_handController.field_Private_ArrayOf_Single_1[l_dataIndex] = 1.0f - m_fingersBends[l_dataIndex]; // Squeeze l_handController.field_Private_ArrayOf_Single_3[l_dataIndex] = m_fingersSpreads[l_dataIndex]; // Spread } } } } }
/// <summary> /// This function will handle the main override of the ActionMenuOpener object according /// to the configuration supplied by MelonPrefs /// </summary> /// <param name="__0">Target state for the ActionMenu, either open or close</param> /// <param name="__instance">Instance of ActionMenuOpener __instance.name gives the MenuL or MenuR needed to determine hand</param> public static bool OnActionMenuOpen(bool __0, ref ActionMenuOpener __instance) { //MelonLogger.Log($"ActionMenuOpener OpenActionMenu Called OpenerName: {__instance.name}, BoolState: {__0}"); if ((MelonPreferences.GetEntryValue <bool>(settingsCategory, rightHandSetting) && __instance.name.Equals("MenuR")) || (MelonPreferences.GetEntryValue <bool>(settingsCategory, leftHandSetting) && __instance.name.Equals("MenuL"))) { if (__0) { HandGestureController.Method_Public_Static_Void_Boolean_0(!HandGestureController.Method_Public_Static_Boolean_0()); } else { HandGestureController.Method_Public_Static_Void_Boolean_0(__0); } return(false); //Skip original function } //Check if action menu is disabled for hand if ((MelonPreferences.GetEntryValue <bool>(settingsCategory, rightHandActionDisable) && __instance.name.Equals("MenuR")) || (MelonPreferences.GetEntryValue <bool>(settingsCategory, leftHandActionDisable) && __instance.name.Equals("MenuL"))) { return(false); } return(true); }