Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.minecraft.server;
- import java.util.ArrayList;
- public class Volume3D {
- private static ArrayList<Volume3D> g = new ArrayList<Volume3D>();
- private static int h = 0;
- public double X;
- public double Y;
- public double Z;
- public double X2;
- public double Y2;
- public double Z2;
- public static Volume3D newVolume(double x, double y, double z, double x2, double y2, double z2) {
- return new Volume3D(x, y, z, x2, y2, z2);
- }
- public static void a() {
- h = 0;
- }
- public static Volume3D get(double x, double y, double z, double x2, double y2, double z2) {
- if (h >= g.size()) {
- g.add(newVolume(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D));
- }
- return (g.get(h++)).reset(x, y, z, x2, y2, z2);
- }
- private Volume3D(double x, double y, double z, double x2, double y2, double z2) {
- X = x;
- Y = y;
- Z = z;
- X2 = x2;
- Y2 = y2;
- Z2 = z2;
- }
- public Volume3D reset(double x, double y, double z, double x2, double y2, double z2) {
- X = x;
- Y = y;
- Z = z;
- X2 = x2;
- Y2 = y2;
- Z2 = z2;
- return this;
- }
- public Volume3D a(double paramDouble1, double paramDouble2, double paramDouble3) {
- double d1 = this.X;
- double d2 = this.Y;
- double d3 = this.Z;
- double d4 = this.X2;
- double d5 = this.Y2;
- double d6 = this.Z2;
- if (paramDouble1 < 0.0D) d1 += paramDouble1;
- if (paramDouble1 > 0.0D) d4 += paramDouble1;
- if (paramDouble2 < 0.0D) d2 += paramDouble2;
- if (paramDouble2 > 0.0D) d5 += paramDouble2;
- if (paramDouble3 < 0.0D) d3 += paramDouble3;
- if (paramDouble3 > 0.0D) d6 += paramDouble3;
- return get(d1, d2, d3, d4, d5, d6);
- }
- public Volume3D expand(double x, double y, double z) {
- return get(X - x, Y - y, Z - z, X2 - x, Y2 - y, Z2 - z);
- }
- public Volume3D getRelative(double x, double y, double z) {
- return get(X + x, Y + y, Z + z, X2 + x, Y2 + y, Z2 + z);
- }
- public double a(Volume3D m1, double paramDouble) {
- if ((m1.Y2 <= Y) || (m1.Y >= Y2)) return paramDouble;
- if ((m1.Z2 <= Z) || (m1.Z >= Z2)) return paramDouble;
- double d1;
- if ((paramDouble > 0.0D) && (m1.X2 <= X)) {
- d1 = X - m1.X2;
- if (d1 < paramDouble) paramDouble = d1;
- }
- if ((paramDouble < 0.0D) && (m1.X >= X2)) {
- d1 = X2 - m1.X;
- if (d1 > paramDouble) paramDouble = d1;
- }
- return paramDouble;
- }
- public double b(Volume3D paramds, double paramDouble) {
- if ((paramds.X2 <= this.X) || (paramds.X >= this.X2)) return paramDouble;
- if ((paramds.Z2 <= this.Z) || (paramds.Z >= this.Z2)) return paramDouble;
- double d1;
- if ((paramDouble > 0.0D) && (paramds.Y2 <= this.Y)) {
- d1 = this.Y - paramds.Y2;
- if (d1 < paramDouble) paramDouble = d1;
- }
- if ((paramDouble < 0.0D) && (paramds.Y >= this.Y2)) {
- d1 = this.Y2 - paramds.Y;
- if (d1 > paramDouble) paramDouble = d1;
- }
- return paramDouble;
- }
- public double c(Volume3D paramds, double paramDouble) {
- if ((paramds.X2 <= this.X) || (paramds.X >= this.X2)) return paramDouble;
- if ((paramds.Y2 <= this.Y) || (paramds.Y >= this.Y2)) return paramDouble;
- double d1;
- if ((paramDouble > 0.0D) && (paramds.Z2 <= this.Z)) {
- d1 = this.Z - paramds.Z2;
- if (d1 < paramDouble) paramDouble = d1;
- }
- if ((paramDouble < 0.0D) && (paramds.Z >= this.Z2)) {
- d1 = this.Z2 - paramds.Z;
- if (d1 > paramDouble) paramDouble = d1;
- }
- return paramDouble;
- }
- public boolean contains(Volume3D m) {
- if ((m.X2 <= X) || (m.X >= X2)) return false;
- if ((m.Y2 <= Y) || (m.Y >= Y2)) return false;
- return (m.Z2 > Z) && (m.Z < Z2);
- }
- public Volume3D translate(double x, double y, double z) {
- X += x; Y += y; Z += z;
- X2 += x; Y2 += y; Z2 += z;
- return this;
- }
- public Volume3D e(double x, double y, double z) {
- double d1 = X;
- double d2 = Y;
- double d3 = Z;
- double d4 = X2;
- double d5 = Y2;
- double d6 = Z2;
- if (x < 0.0D) d1 -= x;
- if (x > 0.0D) d4 -= x;
- if (y < 0.0D) d2 -= y;
- if (y > 0.0D) d5 -= y;
- if (z < 0.0D) d3 -= z;
- if (z > 0.0D) d6 -= z;
- return get(d1, d2, d3, d4, d5, d6);
- }
- public Volume3D copy() {
- return get(X, Y, Z, X2, Y2, Z2);
- }
- public gk a(Volume2D paramba1, Volume2D paramba2) {
- Volume2D localba1 = paramba1.a(paramba2, this.X);
- Volume2D localba2 = paramba1.a(paramba2, this.X2);
- Volume2D localba3 = paramba1.b(paramba2, this.Y);
- Volume2D localba4 = paramba1.b(paramba2, this.Y2);
- Volume2D localba5 = paramba1.c(paramba2, this.Z);
- Volume2D localba6 = paramba1.c(paramba2, this.Z2);
- if (!a(localba1)) localba1 = null;
- if (!a(localba2)) localba2 = null;
- if (!b(localba3)) localba3 = null;
- if (!b(localba4)) localba4 = null;
- if (!c(localba5)) localba5 = null;
- if (!c(localba6)) localba6 = null;
- Volume2D localba7 = null;
- if ((localba1 != null) && ((localba7 == null) || (paramba1.b(localba1) < paramba1.b(localba7))))
- localba7 = localba1;
- if ((localba2 != null) && ((localba7 == null) || (paramba1.b(localba2) < paramba1.b(localba7))))
- localba7 = localba2;
- if ((localba3 != null) && ((localba7 == null) || (paramba1.b(localba3) < paramba1.b(localba7))))
- localba7 = localba3;
- if ((localba4 != null) && ((localba7 == null) || (paramba1.b(localba4) < paramba1.b(localba7))))
- localba7 = localba4;
- if ((localba5 != null) && ((localba7 == null) || (paramba1.b(localba5) < paramba1.b(localba7))))
- localba7 = localba5;
- if ((localba6 != null) && ((localba7 == null) || (paramba1.b(localba6) < paramba1.b(localba7))))
- localba7 = localba6;
- if (localba7 == null) return null;
- int i = -1;
- if (localba7 == localba1) i = 4;
- if (localba7 == localba2) i = 5;
- if (localba7 == localba3) i = 0;
- if (localba7 == localba4) i = 1;
- if (localba7 == localba5) i = 2;
- if (localba7 == localba6) i = 3;
- return new gk(0, 0, 0, i, localba7);
- }
- private boolean a(Volume2D paramba) {
- if (paramba == null) return false;
- return (paramba.Y >= this.Y) && (paramba.Y <= this.Y2) && (paramba.Z >= this.Z) && (paramba.Z <= this.Z2);
- }
- private boolean b(Volume2D paramba) {
- if (paramba == null) return false;
- return (paramba.X >= this.X) && (paramba.X <= this.X2) && (paramba.Z >= this.Z) && (paramba.Z <= this.Z2);
- }
- private boolean c(Volume2D paramba) {
- if (paramba == null) return false;
- return (paramba.X >= this.X) && (paramba.X <= this.X2) && (paramba.Y >= this.Y) && (paramba.Y <= this.Y2);
- }
- public void b(Volume3D paramds) {
- this.X = paramds.X;
- this.Y = paramds.Y;
- this.Z = paramds.Z;
- this.X2 = paramds.X2;
- this.Y2 = paramds.Y2;
- this.Z2 = paramds.Z2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement