static bool Prefix(out Vector3 spawnPoint, out Vector3 aimDir, Humanoid ___m_character) { spawnPoint = Vector3.zero; aimDir = Vector3.zero; if (___m_character != Player.m_localPlayer || !VHVRConfig.UseVrControls()) { return(true); } if (EquipScript.getLeft() == EquipType.Bow) { spawnPoint = BowLocalManager.spawnPoint; aimDir = BowLocalManager.aimDir; return(false); } switch (EquipScript.getRight()) { case EquipType.Fishing: spawnPoint = FishingManager.spawnPoint; aimDir = FishingManager.aimDir; return(false); case EquipType.Spear: case EquipType.SpearChitin: spawnPoint = SpearManager.spawnPoint; aimDir = SpearManager.aimDir; return(false); } return(true); }
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); }
static bool Prefix(Humanoid __instance, ref float __result) { if (__instance != Player.m_localPlayer || !VHVRConfig.UseVrControls()) { return(true); } if (EquipScript.getLeft() == EquipType.Bow) { __result = BowLocalManager.attackDrawPercentage; return(false); } if (EquipScript.getRight() == EquipType.Fishing) { __result = FishingManager.attackDrawPercentage; return(false); } return(true); }
private bool isBuildingTool() { return(EquipScript.getRight() == EquipType.Hammer || EquipScript.getRight() == EquipType.Hoe || EquipScript.getRight() == EquipType.Cultivator); }
private bool isHoldingThrowable() { return(EquipScript.getRight() == EquipType.Spear || EquipScript.getRight() == EquipType.SpearChitin || EquipScript.getRight() == EquipType.Fishing); }
static void Prefix(Player __instance, ref bool attack, ref bool attackHold, ref bool block, ref bool blockHold, ref bool secondaryAttack) { if (!VHVRConfig.UseVrControls() || __instance != Player.m_localPlayer) { return; } if (EquipScript.getLeft() == EquipType.Bow) { if (BowLocalManager.aborting) { block = true; blockHold = true; BowLocalManager.aborting = false; } else if (BowLocalManager.startedPulling) { attack = true; BowLocalManager.startedPulling = false; } else { attackHold = BowLocalManager.isPulling; } return; } if (EquipScript.getLeft() == EquipType.Shield) { blockHold = ShieldManager.isBlocking(); } switch (EquipScript.getRight()) { case EquipType.Fishing: if (FishingManager.isThrowing) { attack = true; attackHold = true; FishingManager.isThrowing = false; } blockHold = FishingManager.isPulling; break; case EquipType.Spear: if (SpearManager.isThrowing) { secondaryAttack = true; SpearManager.isThrowing = false; } break; // no one knows why all spears throw with right click, only spear-chitin throws with left click: case EquipType.SpearChitin: if (SpearManager.isThrowing) { attack = true; SpearManager.isThrowing = false; } break; } }