Exemple #1
0
        static void Postfix(bool __result, string ___m_rightItem, ref GameObject ___m_rightItemInstance)
        {
            if (!__result || ___m_rightItemInstance == null)
            {
                return;
            }

            MeshFilter meshFilter = ___m_rightItemInstance.GetComponentInChildren <MeshFilter>();

            if (meshFilter == null)
            {
                return;
            }

            Player player = ___m_rightItemInstance.GetComponentInParent <Player>();

            if (player == null)
            {
                return;
            }

            var vrPlayerSync = player.GetComponent <VRPlayerSync>();

            if (vrPlayerSync != null)
            {
                player.GetComponent <VRPlayerSync>().currentRightWeapon      = meshFilter.gameObject;
                player.GetComponent <VRPlayerSync>().currentRightWeapon.name = ___m_rightItem;
                VrikCreator.resetVrikHandTransform(player);
            }

            if (Player.m_localPlayer != player || !VHVRConfig.UseVrControls())
            {
                return;
            }

            if (StaticObjects.quickSwitch != null)
            {
                StaticObjects.quickSwitch.GetComponent <QuickSwitch>().refreshItems();
                StaticObjects.quickActions.GetComponent <QuickActions>().refreshItems();
            }

            switch (EquipScript.getRight())
            {
            case EquipType.Fishing:
                meshFilter.gameObject.AddComponent <FishingManager>();
                return;

            case EquipType.Spear:
            case EquipType.SpearChitin:
                meshFilter.gameObject.AddComponent <SpearManager>();
                // (no return, we want collider for spear also)
                break;
            }

            StaticObjects.rightWeaponCollider().GetComponent <WeaponCollision>().setColliderParent(meshFilter.transform, ___m_rightItem, true);
            ParticleFix.maybeFix(___m_rightItemInstance);
        }
Exemple #2
0
 private void maybeAddVrik()
 {
     if (vrik != null)
     {
         return;
     }
     vrik = VrikCreator.initialize(gameObject, leftHand.transform,
                                   rightHand.transform, camera.transform);
     VrikCreator.resetVrikHandTransform(gameObject.GetComponent <Player>());
 }
Exemple #3
0
        static void Postfix(bool __result, string ___m_leftItem, GameObject ___m_leftItemInstance)
        {
            if (!__result || ___m_leftItemInstance == null)
            {
                return;
            }

            MeshFilter meshFilter = ___m_leftItemInstance.GetComponentInChildren <MeshFilter>();

            if (meshFilter == null)
            {
                return;
            }

            Player player = ___m_leftItemInstance.GetComponentInParent <Player>();

            if (player == null)
            {
                return;
            }

            var vrPlayerSync = player.GetComponent <VRPlayerSync>();

            if (vrPlayerSync != null)
            {
                player.GetComponent <VRPlayerSync>().currentLeftWeapon = meshFilter.gameObject;
                VrikCreator.resetVrikHandTransform(player);
            }

            if (Player.m_localPlayer != player || !VHVRConfig.UseVrControls())
            {
                return;
            }

            if (StaticObjects.quickSwitch != null)
            {
                StaticObjects.quickSwitch.GetComponent <QuickSwitch>().refreshItems();
                StaticObjects.quickActions.GetComponent <QuickActions>().refreshItems();
            }

            switch (EquipScript.getLeft())
            {
            case EquipType.Bow:
                meshFilter.gameObject.AddComponent <BowLocalManager>();
                return;

            case EquipType.Shield:
                meshFilter.gameObject.AddComponent <ShieldManager>()._name = ___m_leftItem;
                return;
            }

            StaticObjects.leftWeaponCollider().GetComponent <WeaponCollision>().setColliderParent(meshFilter.transform, ___m_leftItem, false);
            ParticleFix.maybeFix(___m_leftItemInstance);
        }
Exemple #4
0
        private void maybeAddVrik(Player player)
        {
            if (!VHVRConfig.UseVrControls() || player.gameObject.GetComponent <VRIK>() != null)
            {
                return;
            }
            var cam  = CameraUtils.getCamera(CameraUtils.VR_CAMERA);
            var vrik = VrikCreator.initialize(player.gameObject,
                                              leftHand.transform, rightHand.transform, cam.transform);

            VrikCreator.resetVrikHandTransform(player);
            vrik.references.leftHand.gameObject.AddComponent <HandGesture>().sourceHand  = leftHand;
            vrik.references.rightHand.gameObject.AddComponent <HandGesture>().sourceHand = rightHand;
            StaticObjects.leftFist().setColliderParent(vrik.references.leftHand, false);
            StaticObjects.rightFist().setColliderParent(vrik.references.rightHand, true);
            var vrPlayerSync = player.gameObject.AddComponent <VRPlayerSync>();

            vrPlayerSync.camera    = cam.gameObject;
            vrPlayerSync.leftHand  = leftHand.gameObject;
            vrPlayerSync.rightHand = rightHand.gameObject;
            StaticObjects.addQuickActions(leftHand.transform);
            StaticObjects.addQuickSwitch(rightHand.transform);
        }
        static void Prefix(Humanoid __instance, ItemDrop.ItemData item, ItemDrop.ItemData ___m_leftItem, ItemDrop.ItemData ___m_rightItem)
        {
            if (__instance.GetType() != typeof(Player))
            {
                return;
            }

            var vrPlayerSync = __instance.GetComponent <VRPlayerSync>();

            if (vrPlayerSync != null && (__instance != Player.m_localPlayer || VHVRConfig.UseVrControls()))
            {
                if (item == ___m_leftItem)
                {
                    vrPlayerSync.currentLeftWeapon = null;
                }

                if (item == ___m_rightItem)
                {
                    vrPlayerSync.currentRightWeapon = null;
                }

                VrikCreator.resetVrikHandTransform(__instance);
            }
        }