rendered paste bodypackage com.mojang.minecraft.phys;
import com.mojang.minecraft.b.a;
import java.io.Serializable;
public class AABB
implements Serializable
{
public static final long serialVersionUID = 0L;
private float epsilon = 0.0F;
public float x0;
public float y0;
public float z0;
public float x1;
public float y1;
public float z1;
public AABB(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4, float paramFloat5, float paramFloat6)
{
this.x0 = paramFloat1;
this.y0 = paramFloat2;
this.z0 = paramFloat3;
this.x1 = paramFloat4;
this.y1 = paramFloat5;
this.z1 = paramFloat6;
}
public AABB expand(float paramFloat1, float paramFloat2, float paramFloat3)
{
float f1 = this.x0;
float f2 = this.y0;
float f3 = this.z0;
float f4 = this.x1;
float f5 = this.y1;
this = this.z1;
if (paramFloat1 < 0.0F)
f1 += paramFloat1;
if (paramFloat1 > 0.0F)
f4 += paramFloat1;
if (paramFloat2 < 0.0F)
f2 += paramFloat2;
if (paramFloat2 > 0.0F)
f5 += paramFloat2;
if (paramFloat3 < 0.0F)
f3 += paramFloat3;
if (paramFloat3 > 0.0F)
this += paramFloat3;
return new AABB(f1, f2, f3, f4, f5, this);
}
public AABB grow(float paramFloat1, float paramFloat2, float paramFloat3)
{
float f1 = this.x0 - paramFloat1;
float f2 = this.y0 - paramFloat2;
float f3 = this.z0 - paramFloat3;
paramFloat1 = this.x1 + paramFloat1;
paramFloat2 = this.y1 + paramFloat2;
this = this.z1 + paramFloat3;
return new AABB(f1, f2, f3, paramFloat1, paramFloat2, this);
}
public AABB cloneMove(float paramFloat1, float paramFloat2, float paramFloat3)
{
return new AABB(this.x0 + paramFloat3, this.y0 + paramFloat2, this.z0 + paramFloat3, this.x1 + paramFloat1, this.y1 + paramFloat2, this.z1 + paramFloat3);
}
public float clipXCollide(AABB paramAABB, float paramFloat)
{
if ((paramAABB.y1 <= this.y0) || (paramAABB.y0 >= this.y1))
return paramFloat;
if ((paramAABB.z1 <= this.z0) || (paramAABB.z0 >= this.z1))
return paramFloat;
float f;
if ((paramFloat > 0.0F) && (paramAABB.x1 <= this.x0) && ((f = this.x0 - paramAABB.x1 - this.epsilon) < paramFloat))
paramFloat = f;
if ((paramFloat < 0.0F) && (paramAABB.x0 >= this.x1) && ((f = this.x1 - paramAABB.x0 + this.epsilon) > paramFloat))
paramFloat = f;
return paramFloat;
}
public float clipYCollide(AABB paramAABB, float paramFloat)
{
if ((paramAABB.x1 <= this.x0) || (paramAABB.x0 >= this.x1))
return paramFloat;
if ((paramAABB.z1 <= this.z0) || (paramAABB.z0 >= this.z1))
return paramFloat;
float f;
if ((paramFloat > 0.0F) && (paramAABB.y1 <= this.y0) && ((f = this.y0 - paramAABB.y1 - this.epsilon) < paramFloat))
paramFloat = f;
if ((paramFloat < 0.0F) && (paramAABB.y0 >= this.y1) && ((f = this.y1 - paramAABB.y0 + this.epsilon) > paramFloat))
paramFloat = f;
return paramFloat;
}
public float clipZCollide(AABB paramAABB, float paramFloat)
{
if ((paramAABB.x1 <= this.x0) || (paramAABB.x0 >= this.x1))
return paramFloat;
if ((paramAABB.y1 <= this.y0) || (paramAABB.y0 >= this.y1))
return paramFloat;
float f;
if ((paramFloat > 0.0F) && (paramAABB.z1 <= this.z0) && ((f = this.z0 - paramAABB.z1 - this.epsilon) < paramFloat))
paramFloat = f;
if ((paramFloat < 0.0F) && (paramAABB.z0 >= this.z1) && ((f = this.z1 - paramAABB.z0 + this.epsilon) > paramFloat))
paramFloat = f;
return paramFloat;
}
public boolean intersects(AABB paramAABB)
{
if ((paramAABB.x1 <= this.x0) || (paramAABB.x0 >= this.x1))
return false;
if ((paramAABB.y1 <= this.y0) || (paramAABB.y0 >= this.y1))
return false;
return ((paramAABB.z1 > this.z0) && (paramAABB.z0 < this.z1));
}
public boolean intersectsInner(AABB paramAABB)
{
if ((paramAABB.x1 < this.x0) || (paramAABB.x0 > this.x1))
return false;
if ((paramAABB.y1 < this.y0) || (paramAABB.y0 > this.y1))
return false;
return ((paramAABB.z1 >= this.z0) && (paramAABB.z0 <= this.z1));
}
public void move(float paramFloat1, float paramFloat2, float paramFloat3)
{
this.x0 += paramFloat1;
this.y0 += paramFloat2;
this.z0 += paramFloat3;
this.x1 += paramFloat1;
this.y1 += paramFloat2;
this.z1 += paramFloat3;
}
public boolean intersects(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4, float paramFloat5, float paramFloat6)
{
if ((paramFloat4 <= this.x0) || (paramFloat1 >= this.x1))
return false;
if ((paramFloat5 <= this.y0) || (paramFloat2 >= this.y1))
return false;
return ((paramFloat6 > this.z0) && (paramFloat3 < this.z1));
}
public boolean contains(a parama)
{
if ((parama.a <= this.x0) || (parama.a >= this.x1))
return false;
if ((parama.b <= this.y0) || (parama.b >= this.y1))
return false;
return ((parama.c > this.z0) && (parama.c < this.z1));
}
public float getSize()
{
float f1 = this.x1 - this.x0;
float f2 = this.y1 - this.y0;
this = this.z1 - this.z0;
return ((f1 + f2 + this) / 3.0F);
}
public AABB shrink(float paramFloat1, float paramFloat2, float paramFloat3)
{
float f1 = this.x0;
float f2 = this.y0;
float f3 = this.z0;
float f4 = this.x1;
float f5 = this.y1;
this = this.z1;
if (paramFloat1 < 0.0F)
f1 -= paramFloat1;
if (paramFloat1 > 0.0F)
f4 -= paramFloat1;
if (paramFloat2 < 0.0F)
f2 -= paramFloat2;
if (paramFloat2 > 0.0F)
f5 -= paramFloat2;
if (paramFloat3 < 0.0F)
f3 -= paramFloat3;
if (paramFloat3 > 0.0F)
this -= paramFloat3;
return new AABB(f1, f2, f3, f4, f5, this);
}
public AABB copy()
{
return new AABB(this.x0, this.y0, this.z0, this.x1, this.y1, this.z1);
}
}