Example usage for net.minecraftforge.event.entity.living LivingFallEvent setDistance

List of usage examples for net.minecraftforge.event.entity.living LivingFallEvent setDistance

Introduction

In this page you can find the example usage for net.minecraftforge.event.entity.living LivingFallEvent setDistance.

Prototype

public void setDistance(float distance) 

Source Link

Usage

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*/
            }
        }
    }
}