List of usage examples for net.minecraftforge.event.entity.living LivingFallEvent setDistance
public void setDistance(float distance)
From source file:com.blogspot.jabelarminecraft.magicbeans.EventHandler.java
License:Open Source License
@SubscribeEvent(priority = EventPriority.NORMAL, receiveCanceled = true) public static void onEvent(LivingFallEvent event) { if (!event.getEntityLiving().worldObj.isRemote && event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer thePlayer = (EntityPlayer) event.getEntityLiving(); boolean isWearingBootsOfSafeFalling = thePlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET) != null && thePlayer.getItemStackFromSlot(EntityEquipmentSlot.FEET) .getItem() == MagicBeans.bootsOfSafeFalling; // boolean isWearingLeggingsOfSafeFalling = thePlayer.getCurrentArmor(1) != null && thePlayer.getCurrentArmor(1).getItem() == MagicBeans.leggingsOfSafeFalling; // boolean isWearingChestPlateOfSafeFalling = thePlayer.getCurrentArmor(2) != null && thePlayer.getCurrentArmor(2).getItem() == MagicBeans.chestplateOfSafeFalling; // boolean isWearingHelmetOfSafeFalling = thePlayer.getCurrentArmor(3) != null && thePlayer.getCurrentArmor(3).getItem() == MagicBeans.helmetOfSafeFalling; if (isWearingBootsOfSafeFalling) // || isWearingLeggingsOfSafeFalling || isWearingChestPlateOfSafeFalling || isWearingHelmetOfSafeFalling) {// w w w.j a va 2 s . com // DEBUG System.out.println("LivingFallEvent handled due to having safe falling armor equipped"); event.setDistance(0.0F); } } }
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);//ww w .j a 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;/*ww w .j a v a 2 s. c o 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); }//from www.j a va2 s .c o 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); }/*ww w . ja va 2 s.co m*/ } } } }