Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 7.47 KB | None | 0 0
  1. package net.minecraft.server;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. public class Volume3D {
  6.     private static ArrayList<Volume3D> g = new ArrayList<Volume3D>();
  7.     private static int h = 0;
  8.     public double X;
  9.     public double Y;
  10.     public double Z;
  11.     public double X2;
  12.     public double Y2;
  13.     public double Z2;
  14.  
  15.     public static Volume3D newVolume(double x, double y, double z, double x2, double y2, double z2) {
  16.         return new Volume3D(x, y, z, x2, y2, z2);
  17.     }
  18.  
  19.     public static void a() {
  20.         h = 0;
  21.     }
  22.  
  23.     public static Volume3D get(double x, double y, double z, double x2, double y2, double z2) {
  24.         if (h >= g.size()) {
  25.             g.add(newVolume(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D));
  26.         }
  27.         return (g.get(h++)).reset(x, y, z, x2, y2, z2);
  28.     }
  29.  
  30.     private Volume3D(double x, double y, double z, double x2, double y2, double z2) {
  31.         X = x;
  32.         Y = y;
  33.         Z = z;
  34.         X2 = x2;
  35.         Y2 = y2;
  36.         Z2 = z2;
  37.     }
  38.  
  39.     public Volume3D reset(double x, double y, double z, double x2, double y2, double z2) {
  40.         X = x;
  41.         Y = y;
  42.         Z = z;
  43.         X2 = x2;
  44.         Y2 = y2;
  45.         Z2 = z2;
  46.         return this;
  47.     }
  48.  
  49.     public Volume3D a(double paramDouble1, double paramDouble2, double paramDouble3) {
  50.         double d1 = this.X;
  51.         double d2 = this.Y;
  52.         double d3 = this.Z;
  53.         double d4 = this.X2;
  54.         double d5 = this.Y2;
  55.         double d6 = this.Z2;
  56.  
  57.         if (paramDouble1 < 0.0D) d1 += paramDouble1;
  58.         if (paramDouble1 > 0.0D) d4 += paramDouble1;
  59.  
  60.         if (paramDouble2 < 0.0D) d2 += paramDouble2;
  61.         if (paramDouble2 > 0.0D) d5 += paramDouble2;
  62.  
  63.         if (paramDouble3 < 0.0D) d3 += paramDouble3;
  64.         if (paramDouble3 > 0.0D) d6 += paramDouble3;
  65.  
  66.         return get(d1, d2, d3, d4, d5, d6);
  67.     }
  68.  
  69.     public Volume3D expand(double x, double y, double z) {
  70.         return get(X - x, Y - y, Z - z, X2 - x, Y2 - y, Z2 - z);
  71.     }
  72.  
  73.     public Volume3D getRelative(double x, double y, double z) {
  74.         return get(X + x, Y + y, Z + z, X2 + x, Y2 + y, Z2 + z);
  75.     }
  76.  
  77.     public double a(Volume3D m1, double paramDouble) {
  78.         if ((m1.Y2 <= Y) || (m1.Y >= Y2)) return paramDouble;
  79.         if ((m1.Z2 <= Z) || (m1.Z >= Z2)) return paramDouble;
  80.         double d1;
  81.         if ((paramDouble > 0.0D) && (m1.X2 <= X)) {
  82.             d1 = X - m1.X2;
  83.             if (d1 < paramDouble) paramDouble = d1;
  84.         }
  85.         if ((paramDouble < 0.0D) && (m1.X >= X2)) {
  86.             d1 = X2 - m1.X;
  87.             if (d1 > paramDouble) paramDouble = d1;
  88.         }
  89.  
  90.         return paramDouble;
  91.     }
  92.  
  93.     public double b(Volume3D paramds, double paramDouble) {
  94.         if ((paramds.X2 <= this.X) || (paramds.X >= this.X2)) return paramDouble;
  95.         if ((paramds.Z2 <= this.Z) || (paramds.Z >= this.Z2)) return paramDouble;
  96.         double d1;
  97.         if ((paramDouble > 0.0D) && (paramds.Y2 <= this.Y)) {
  98.             d1 = this.Y - paramds.Y2;
  99.             if (d1 < paramDouble) paramDouble = d1;
  100.         }
  101.         if ((paramDouble < 0.0D) && (paramds.Y >= this.Y2)) {
  102.             d1 = this.Y2 - paramds.Y;
  103.             if (d1 > paramDouble) paramDouble = d1;
  104.         }
  105.  
  106.         return paramDouble;
  107.     }
  108.  
  109.     public double c(Volume3D paramds, double paramDouble) {
  110.         if ((paramds.X2 <= this.X) || (paramds.X >= this.X2)) return paramDouble;
  111.         if ((paramds.Y2 <= this.Y) || (paramds.Y >= this.Y2)) return paramDouble;
  112.         double d1;
  113.         if ((paramDouble > 0.0D) && (paramds.Z2 <= this.Z)) {
  114.             d1 = this.Z - paramds.Z2;
  115.             if (d1 < paramDouble) paramDouble = d1;
  116.         }
  117.         if ((paramDouble < 0.0D) && (paramds.Z >= this.Z2)) {
  118.             d1 = this.Z2 - paramds.Z;
  119.             if (d1 > paramDouble) paramDouble = d1;
  120.         }
  121.  
  122.         return paramDouble;
  123.     }
  124.  
  125.     public boolean contains(Volume3D m) {
  126.         if ((m.X2 <= X) || (m.X >= X2)) return false;
  127.         if ((m.Y2 <= Y) || (m.Y >= Y2)) return false;
  128.         return (m.Z2 > Z) && (m.Z < Z2);
  129.     }
  130.  
  131.     public Volume3D translate(double x, double y, double z) {
  132.         X += x; Y += y; Z += z;
  133.         X2 += x; Y2 += y; Z2 += z;
  134.         return this;
  135.     }
  136.  
  137.     public Volume3D e(double x, double y, double z) {
  138.         double d1 = X;
  139.         double d2 = Y;
  140.         double d3 = Z;
  141.         double d4 = X2;
  142.         double d5 = Y2;
  143.         double d6 = Z2;
  144.  
  145.         if (x < 0.0D) d1 -= x;
  146.         if (x > 0.0D) d4 -= x;
  147.  
  148.         if (y < 0.0D) d2 -= y;
  149.         if (y > 0.0D) d5 -= y;
  150.  
  151.         if (z < 0.0D) d3 -= z;
  152.         if (z > 0.0D) d6 -= z;
  153.  
  154.         return get(d1, d2, d3, d4, d5, d6);
  155.     }
  156.  
  157.     public Volume3D copy() {
  158.         return get(X, Y, Z, X2, Y2, Z2);
  159.     }
  160.  
  161.     public gk a(Volume2D paramba1, Volume2D paramba2) {
  162.         Volume2D localba1 = paramba1.a(paramba2, this.X);
  163.         Volume2D localba2 = paramba1.a(paramba2, this.X2);
  164.  
  165.         Volume2D localba3 = paramba1.b(paramba2, this.Y);
  166.         Volume2D localba4 = paramba1.b(paramba2, this.Y2);
  167.  
  168.         Volume2D localba5 = paramba1.c(paramba2, this.Z);
  169.         Volume2D localba6 = paramba1.c(paramba2, this.Z2);
  170.  
  171.         if (!a(localba1)) localba1 = null;
  172.         if (!a(localba2)) localba2 = null;
  173.         if (!b(localba3)) localba3 = null;
  174.         if (!b(localba4)) localba4 = null;
  175.         if (!c(localba5)) localba5 = null;
  176.         if (!c(localba6)) localba6 = null;
  177.  
  178.         Volume2D localba7 = null;
  179.  
  180.         if ((localba1 != null) && ((localba7 == null) || (paramba1.b(localba1) < paramba1.b(localba7))))
  181.             localba7 = localba1;
  182.         if ((localba2 != null) && ((localba7 == null) || (paramba1.b(localba2) < paramba1.b(localba7))))
  183.             localba7 = localba2;
  184.         if ((localba3 != null) && ((localba7 == null) || (paramba1.b(localba3) < paramba1.b(localba7))))
  185.             localba7 = localba3;
  186.         if ((localba4 != null) && ((localba7 == null) || (paramba1.b(localba4) < paramba1.b(localba7))))
  187.             localba7 = localba4;
  188.         if ((localba5 != null) && ((localba7 == null) || (paramba1.b(localba5) < paramba1.b(localba7))))
  189.             localba7 = localba5;
  190.         if ((localba6 != null) && ((localba7 == null) || (paramba1.b(localba6) < paramba1.b(localba7))))
  191.             localba7 = localba6;
  192.  
  193.         if (localba7 == null) return null;
  194.  
  195.         int i = -1;
  196.  
  197.         if (localba7 == localba1) i = 4;
  198.         if (localba7 == localba2) i = 5;
  199.         if (localba7 == localba3) i = 0;
  200.         if (localba7 == localba4) i = 1;
  201.         if (localba7 == localba5) i = 2;
  202.         if (localba7 == localba6) i = 3;
  203.  
  204.         return new gk(0, 0, 0, i, localba7);
  205.     }
  206.  
  207.     private boolean a(Volume2D paramba) {
  208.         if (paramba == null) return false;
  209.         return (paramba.Y >= this.Y) && (paramba.Y <= this.Y2) && (paramba.Z >= this.Z) && (paramba.Z <= this.Z2);
  210.     }
  211.  
  212.     private boolean b(Volume2D paramba) {
  213.         if (paramba == null) return false;
  214.         return (paramba.X >= this.X) && (paramba.X <= this.X2) && (paramba.Z >= this.Z) && (paramba.Z <= this.Z2);
  215.     }
  216.  
  217.     private boolean c(Volume2D paramba) {
  218.         if (paramba == null) return false;
  219.         return (paramba.X >= this.X) && (paramba.X <= this.X2) && (paramba.Y >= this.Y) && (paramba.Y <= this.Y2);
  220.     }
  221.  
  222.     public void b(Volume3D paramds) {
  223.         this.X = paramds.X;
  224.         this.Y = paramds.Y;
  225.         this.Z = paramds.Z;
  226.         this.X2 = paramds.X2;
  227.         this.Y2 = paramds.Y2;
  228.         this.Z2 = paramds.Z2;
  229.     }
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement