/** Counter the bow use fov jerkyness with the draw enchantment */ @SubscribeEvent public void onBowFOV(FOVUpdateEvent event) { ItemStack stack = event.entity.getItemInUse(); if (EnchantmentHelper.getEnchantmentLevel(BaseEnchantment.bowCharge, stack) > 0) { int i = event.entity.getItemInUseDuration(); float f1 = (float) i / 20.0F; if (f1 > 1.0F) { f1 = 1.0F; } else { f1 *= f1; } event.newfov /= 1.0F - f1 * 0.15F; } }
@SubscribeEvent @SideOnly(Side.CLIENT) public void onFOVUpdate(FOVUpdateEvent event) { if (!event.entity.isUsingItem()) return; ItemStack stack = event.entity.getItemInUse(); if (stack.getItem() instanceof WeaponBow) { WeaponBow item = (WeaponBow) stack.getItem(); if (item.updatesFOV()) { event.newfov = event.fov / (event.fov + (item.getFOVValue(stack) * getItemInUsePercentaje(event.entity, item.getFOVSpeedFactor(stack)))); } } }