package net.minecraft.entity;
import java.util.Iterator;
import java.util.List;
import net.minecraft.block.BlockFence;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
public class EntityLeashKnot extends EntityHanging
{
private static final String __OBFID = "CL_00001548";
public EntityLeashKnot(World worldIn)
{
super(worldIn);
}
public EntityLeashKnot(World worldIn, BlockPos p_i45851_2_)
{
super(worldIn, p_i45851_2_);
this.setPosition((double)p_i45851_2_.getX() + 0.5D, (double)p_i45851_2_.getY() + 0.5D, (double)p_i45851_2_.getZ() + 0.5D);
float var3 = 0.125F;
float var4 = 0.1875F;
float var5 = 0.25F;
this.func_174826_a(new AxisAlignedBB(this.posX - 0.1875D, this.posY - 0.25D + 0.125D, this.posZ - 0.1875D, this.posX + 0.1875D, this.posY + 0.25D + 0.125D, this.posZ + 0.1875D));
}
protected void entityInit()
{
super.entityInit();
}
public void func_174859_a(EnumFacing p_174859_1_) {}
public int getWidthPixels()
{
return 9;
}
public int getHeightPixels()
{
return 9;
}
public float getEyeHeight()
{
return -0.0625F;
}
/**
* Called when this entity is broken. Entity parameter may be null.
*/
public void onBroken(Entity p_110128_1_) {}
/**
* Either write this entity to the NBT tag given and return true, or return false without doing anything. If this
* returns false the entity is not saved on disk. Ridden entities return false here as they are saved with their
* rider.
*/
public boolean writeToNBTOptional(NBTTagCompound tagCompund)
{
return false;
}
/**
* (abstract) Protected helper method to write subclass entity data to NBT.
*/
public void writeEntityToNBT(NBTTagCompound tagCompound) {}
/**
* (abstract) Protected helper method to read subclass entity data from NBT.
*/
public void readEntityFromNBT(NBTTagCompound tagCompund) {}
/**
* First layer of player interaction
*/
public boolean interactFirst(EntityPlayer playerIn)
{
ItemStack var2 = playerIn.getHeldItem();
boolean var3 = false;
double var4;
List var6;
Iterator var7;
EntityLiving var8;
if (var2 != null && var2.getItem() == Items.lead && !this.worldObj.isRemote)
{
var4 = 7.0D;
var6 = this.worldObj.getEntitiesWithinAABB(EntityLiving.class, new AxisAlignedBB(this.posX - var4, this.posY - var4, this.posZ - var4, this.posX + var4, this.posY + var4, this.posZ + var4));
var7 = var6.iterator();
while (var7.hasNext())
{
var8 = (EntityLiving)var7.next();
if (var8.getLeashed() && var8.getLeashedToEntity() == playerIn)
{
var8.setLeashedToEntity(this, true);
var3 = true;
}
}
}
if (!this.worldObj.isRemote && !var3)
{
this.setDead();
if (playerIn.capabilities.isCreativeMode)
{
var4 = 7.0D;
var6 = this.worldObj.getEntitiesWithinAABB(EntityLiving.class, new AxisAlignedBB(this.posX - var4, this.posY - var4, this.posZ - var4, this.posX + var4, this.posY + var4, this.posZ + var4));
var7 = var6.iterator();
while (var7.hasNext())
{
var8 = (EntityLiving)var7.next();
if (var8.getLeashed() && var8.getLeashedToEntity() == this)
{
var8.clearLeashed(true, false);
}
}
}
}
return true;
}
/**
* checks to make sure painting can be placed there
*/
public boolean onValidSurface()
{
return this.worldObj.getBlockState(this.field_174861_a).getBlock() instanceof BlockFence;
}
public static EntityLeashKnot func_174862_a(World worldIn, BlockPos p_174862_1_)
{
EntityLeashKnot var2 = new EntityLeashKnot(worldIn, p_174862_1_);
var2.forceSpawn = true;
worldIn.spawnEntityInWorld(var2);
return var2;
}
public static EntityLeashKnot func_174863_b(World worldIn, BlockPos p_174863_1_)
{
int var2 = p_174863_1_.getX();
int var3 = p_174863_1_.getY();
int var4 = p_174863_1_.getZ();
List var5 = worldIn.getEntitiesWithinAABB(EntityLeashKnot.class, new AxisAlignedBB((double)var2 - 1.0D, (double)var3 - 1.0D, (double)var4 - 1.0D, (double)var2 + 1.0D, (double)var3 + 1.0D, (double)var4 + 1.0D));
Iterator var6 = var5.iterator();
EntityLeashKnot var7;
do
{
if (!var6.hasNext())
{
return null;
}
var7 = (EntityLeashKnot)var6.next();
}
while (!var7.func_174857_n().equals(p_174863_1_));
return var7;
}
}