All pastes #1707738 Raw Edit

Stuff

public text v1 · immutable
#1707738 ·published 2009-12-09 01:29 UTC
rendered paste body
package 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);
  }
}