package net.minecraft.world.pathfinder;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.pathfinding.PathPoint;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
public class SwimNodeProcessor extends NodeProcessor
{
private static final String __OBFID = "CL_00001966";
public void func_176162_a(IBlockAccess p_176162_1_, Entity p_176162_2_)
{
super.func_176162_a(p_176162_1_, p_176162_2_);
}
public void func_176163_a()
{
super.func_176163_a();
}
public PathPoint func_176161_a(Entity p_176161_1_)
{
return this.func_176159_a(MathHelper.floor_double(p_176161_1_.getEntityBoundingBox().minX), MathHelper.floor_double(p_176161_1_.getEntityBoundingBox().minY + 0.5D), MathHelper.floor_double(p_176161_1_.getEntityBoundingBox().minZ));
}
public PathPoint func_176160_a(Entity p_176160_1_, double p_176160_2_, double p_176160_4_, double p_176160_6_)
{
return this.func_176159_a(MathHelper.floor_double(p_176160_2_ - (double)(p_176160_1_.width / 2.0F)), MathHelper.floor_double(p_176160_4_ + 0.5D), MathHelper.floor_double(p_176160_6_ - (double)(p_176160_1_.width / 2.0F)));
}
public int func_176164_a(PathPoint[] p_176164_1_, Entity p_176164_2_, PathPoint p_176164_3_, PathPoint p_176164_4_, float p_176164_5_)
{
int var6 = 0;
EnumFacing[] var7 = EnumFacing.values();
int var8 = var7.length;
for (int var9 = 0; var9 < var8; ++var9)
{
EnumFacing var10 = var7[var9];
PathPoint var11 = this.func_176185_a(p_176164_2_, p_176164_3_.xCoord + var10.getFrontOffsetX(), p_176164_3_.yCoord + var10.getFrontOffsetY(), p_176164_3_.zCoord + var10.getFrontOffsetZ());
if (var11 != null && !var11.visited && var11.distanceTo(p_176164_4_) < p_176164_5_)
{
p_176164_1_[var6++] = var11;
}
}
return var6;
}
private PathPoint func_176185_a(Entity p_176185_1_, int p_176185_2_, int p_176185_3_, int p_176185_4_)
{
int var5 = this.func_176186_b(p_176185_1_, p_176185_2_, p_176185_3_, p_176185_4_);
return var5 == -1 ? this.func_176159_a(p_176185_2_, p_176185_3_, p_176185_4_) : null;
}
private int func_176186_b(Entity p_176186_1_, int p_176186_2_, int p_176186_3_, int p_176186_4_)
{
for (int var5 = p_176186_2_; var5 < p_176186_2_ + this.field_176168_c; ++var5)
{
for (int var6 = p_176186_3_; var6 < p_176186_3_ + this.field_176165_d; ++var6)
{
for (int var7 = p_176186_4_; var7 < p_176186_4_ + this.field_176166_e; ++var7)
{
BlockPos var8 = new BlockPos(var5, var6, var7);
Block var9 = this.field_176169_a.getBlockState(var8).getBlock();
if (var9.getMaterial() != Material.water)
{
return 0;
}
}
}
}
return -1;
}
}