List of usage examples for net.minecraftforge.event.entity.living LivingFallEvent getDistance
public float getDistance()
From source file:com.crowsofwar.avatar.common.FallAbsorptionHandler.java
License:Open Source License
@SubscribeEvent public void onFall(LivingFallEvent e) { Entity entity = e.getEntity(); if (entity instanceof EntityPlayer && !entity.worldObj.isRemote) { EntityPlayer player = (EntityPlayer) entity; AvatarPlayerData data = AvatarPlayerData.fetcher().fetch(player); if (data.getFallAbsorption() != 0) { e.setDistance(e.getDistance() - data.getFallAbsorption()); if (e.getDistance() < 0) e.setDistance(0);/*from w w w . ja v a 2 s .c o m*/ data.setFallAbsorption(0); } } }
From source file:com.lothrazar.cyclicmagic.potion.effect.PotionBounce.java
License:Open Source License
@SubscribeEvent public void onFall(LivingFallEvent event) { EntityLivingBase entity = event.getEntityLiving(); if (entity == null || entity instanceof EntityPlayer == false || entity.isSneaking() || entity.isPotionActive(this) == false) { return;//from ww w . ja va 2s .co m } EntityPlayer player = (EntityPlayer) entity; if (event.getDistance() >= MIN_HEIGHT_START_BOUNCE) { event.setDamageMultiplier(0); if (entity.getEntityWorld().isRemote == false) { event.setCanceled(true); //nada serverside } else { UtilSound.playSound(player, player.getPosition(), SoundEvents.BLOCK_SLIME_FALL, SoundCategory.PLAYERS, UtilSound.VOLUME / event.getDistance()); UtilParticle.spawnParticle(player.world, EnumParticleTypes.SLIME, player.getPosition()); event.setDistance(0);// fall distance if (player.isElytraFlying() == false) { player.motionY *= -PERCENT_HEIGHT_BOUNCED; player.isAirBorne = true; player.onGround = false; //postpone until one tick later. otherwise there is vanilla code internally that says "ok you finished falldamage so motionY=0;" player.posY += 0.01; player.getEntityData().setInteger(NBT_TICK, player.ticksExisted + 1); player.getEntityData().setInteger(NBT_MOTIONY, (int) (player.motionY * 100f)); } } } else if (!entity.getEntityWorld().isRemote && entity.isSneaking()) { event.setDamageMultiplier(DAMAGE_REDUCTION); } }
From source file:com.sr2610.steampunkd.handlers.PlayerMovementHandler.java
License:Creative Commons License
@SubscribeEvent public void livingFall(LivingFallEvent event) { if ((event.getEntity() instanceof EntityPlayer)) { final EntityPlayer eventPlayer = (EntityPlayer) event.getEntity(); if (eventPlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET) != null) { final ItemStack boots = eventPlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET); if (boots.getItem() == ModItems.pistonBoots) { final int d = (int) (event.getDistance() / 2); if (((ISteamUser) boots.getItem()).getCurrentSteam(boots) > d) { ((ISteamUser) boots.getItem()).useSteam(d, boots); event.setDistance(0); }// ww w . j a va 2 s.co m } } } }
From source file:de.canitzp.rarmor.module.jump.ItemModuleJump.java
@SubscribeEvent public static void onFall(LivingFallEvent event) { Entity entity = event.getEntity(); if (entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; if (!player.isSneaking()) { IRarmorData data = RarmorAPI.methodHandler.getDataForChestplate(player, false); if (data != null) { if (data.getInstalledModuleWithId(ActiveModuleJump.IDENTIFIER) != null && RarmorAPI.methodHandler.getHasRarmorInSlot(player, EntityEquipmentSlot.FEET) != null) { event.setDistance(event.getDistance() - 2F); }// w w w . j a va2 s . com } } } }