Esempio n. 1
0
        public override void OnUpdate()
        {
            if (VRCInputManager.field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[
                    "ThumbSpreadLeft"] == null ||
                VRCInputManager.field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[
                    "ThumbSpreadRight"] == null)
            {
                return;
            }

            var leftThumb = ConvertToThumbState(VRCInputManager
                                                .field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[
                                                    "ThumbSpreadLeft"].field_Private_Single_6);

            var rightThumb = ConvertToThumbState(VRCInputManager
                                                 .field_Private_Static_Dictionary_2_String_ObjectPublicStSiBoSiObBoSiObStSiUnique_0[
                                                     "ThumbSpreadRight"].field_Private_Single_6);

            AvatarAnimParamController controller = null;

            if (VRCPlayer.field_Internal_Static_VRCPlayer_0?.field_Private_VRC_AnimationController_0?.
                field_Private_AvatarAnimParamController_0 != null)
            {
                controller = VRCPlayer.field_Internal_Static_VRCPlayer_0
                             .field_Private_VRC_AnimationController_0.field_Private_AvatarAnimParamController_0;
            }

            SetParameter(controller, this.leftThumb, (int)leftThumb);
            SetParameter(controller, this.rightThumb, (int)rightThumb);
        }
Esempio n. 2
0
        private static IEnumerator UpdateParams()
        {
            for (;;)
            {
                AvatarAnimParamController controller = null;
                if (VRCPlayer.field_Internal_Static_VRCPlayer_0?.field_Private_VRC_AnimationController_0
                    ?.field_Private_AvatarAnimParamController_0 != null)
                {
                    controller = VRCPlayer.field_Internal_Static_VRCPlayer_0
                                 .field_Private_VRC_AnimationController_0.field_Private_AvatarAnimParamController_0;
                }
                if (controller == null)
                {
                    yield return(new WaitForSeconds(0.3f));

                    continue;
                }

                foreach (var param in eyeTrackParams.ToArray())
                {
                    ParameterHelper.SetParameter(controller, param, SRanipalTrack.SRanipalData[param.ParamName]);
                }

                yield return(new WaitForSeconds(0.01f));
            }
        }
Esempio n. 3
0
 private void SetParameter(AvatarAnimParamController controller,
                           AvatarPlayableController.EnumNPublicSealedvaStNoSt18StStStStStUnique param, int state)
 {
     if (controller == null || controller.field_Private_AvatarPlayableController_0 == null ||
         param == AvatarPlayableController.EnumNPublicSealedvaStNoSt18StStStStStUnique.None)
     {
         return;
     }
     controller.field_Private_AvatarPlayableController_0
     .Method_Public_Void_EnumNPublicSealedvaStNoSt18StStStStStUnique_Single_0(param, state);
 }
Esempio n. 4
0
        public static ObjectPublicAnStInObLi1BoInSiBoUnique GetParam(AvatarAnimParamController controller, int index)
        {
            if (controller == null || controller.field_Private_AvatarPlayableController_0 == null || index == -1)
            {
                return(null);
            }

            return(controller.field_Private_AvatarPlayableController_0
                   .field_Private_ArrayOf_ObjectNPublicInObInPaInUnique_0[index]
                   .field_Public_ObjectPublicAnStInObLi1BoInSiBoUnique_0);
        }
Esempio n. 5
0
        public static void SetParameter(AvatarAnimParamController controller,
                                        MainMod.AV3Parameter param, float value)
        {
            if (controller == null || controller.field_Private_AvatarPlayableController_0 == null ||
                param.ParamIndex == -1)
            {
                return;
            }

            /*var paramsList = controller.field_Private_AvatarPlayableController_0
             *  .field_Private_ArrayOf_ObjectNPublicInObInPaInUnique_0;
             *
             * var paramSingle = paramsList[0].field_Public_ObjectPublicAnStInObLi1BoInSiBoUnique_0;
             * var paramName = paramSingle.prop_String_0;
             * var paramCurrentValue = paramSingle.field_Private_Single_0;*/
            //paramSingle.field_Private_Boolean_0;

            var param = GetParam(controller, param.ParamIndex);

            controller.field_Private_AvatarPlayableController_0.Method_Public_Void_Int32_Single_Boolean_0(param.prop_Int32_0, value);
            MelonLoader.MelonCoroutines.Start(UpdateParameters(controller));
        }
Esempio n. 6
0
        public static IEnumerator UpdateParameters(AvatarAnimParamController controller)
        {
            yield return(new WaitForEndOfFrame());                                              // Needs a frame to update internally

            controller.field_Private_AvatarPlayableController_0.field_Private_Boolean_3 = true; // marks the parameters to be resynced over the network
        }