package net.minecraft.server;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
import org.bukkit.event.block.EntityBlockFormEvent;
import java.util.Iterator;
public class EnchantmentFrostWalker extends Enchantment {
public EnchantmentFrostWalker(Enchantment.Rarity enchantment_rarity, EnumItemSlot... aenumitemslot) {
super(enchantment_rarity, EnchantmentSlotType.ARMOR_FEET, aenumitemslot);
this.c("frostWalker");
}
public int a(int i) {
return i * 10;
}
public int b(int i) {
return this.a(i) + 15;
}
public boolean isTreasure() {
return true;
}
public int getMaxLevel() {
return 2;
}
public static void a(EntityLiving entityliving, World world, BlockPosition blockposition, int i) {
if (entityliving.onGround) {
float f = (float) Math.min(16, 2 + i);
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(0, 0, 0);
Iterator iterator = BlockPosition.b(blockposition.a((double) (-f), -1.0D, (double) (-f)), blockposition.a((double) f, -1.0D, (double) f)).iterator();
while (iterator.hasNext()) {
BlockPosition.MutableBlockPosition blockposition_mutableblockposition1 = (BlockPosition.MutableBlockPosition) iterator.next();
if (blockposition_mutableblockposition1.g(entityliving.locX, entityliving.locY, entityliving.locZ) <= (double) (f * f)) {
blockposition_mutableblockposition.c(blockposition_mutableblockposition1.getX(), blockposition_mutableblockposition1.getY() + 1, blockposition_mutableblockposition1.getZ());
IBlockData iblockdata = world.getType(blockposition_mutableblockposition);
if (iblockdata.getMaterial() == Material.AIR) {
IBlockData iblockdata1 = world.getType(blockposition_mutableblockposition1);
if (iblockdata1.getMaterial() == Material.WATER && ((Integer) iblockdata1.get(BlockFluids.LEVEL)).intValue() == 0 && world.a(Blocks.FROSTED_ICE, blockposition_mutableblockposition1, false, EnumDirection.DOWN, (Entity) null)) {
// CraftBukkit Start - Call EntityBlockFormEvent for Frost Walker
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(world, blockposition_mutableblockposition1, Blocks.FROSTED_ICE, entityliving)) {
world.a(blockposition_mutableblockposition1.h(), Blocks.FROSTED_ICE, MathHelper.nextInt(entityliving.getRandom(), 60, 120));
}
// CraftBukkit End
}
}
}
}
}
}
public boolean a(Enchantment enchantment) {
return super.a(enchantment) && enchantment != Enchantments.DEPTH_STRIDER;
}
}