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); }
private void maybeAddVrik() { if (vrik != null) { return; } vrik = VrikCreator.initialize(gameObject, leftHand.transform, rightHand.transform, camera.transform); VrikCreator.resetVrikHandTransform(gameObject.GetComponent <Player>()); }
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); }
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); } }