All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.minecraft.server.StructureBoundingBox Maven / Gradle / Ivy

package net.minecraft.server;

import com.google.common.base.Objects;

public class StructureBoundingBox {
	
	public int a;
	public int b;
	public int c;
	public int d;
	public int e;
	public int f;
	
	public StructureBoundingBox() {
	}
	
	public StructureBoundingBox(int[] aint) {
		if (aint.length == 6) {
			this.a = aint[0];
			this.b = aint[1];
			this.c = aint[2];
			this.d = aint[3];
			this.e = aint[4];
			this.f = aint[5];
		}
		
	}
	
	public StructureBoundingBox(StructureBoundingBox structureboundingbox) {
		this.a = structureboundingbox.a;
		this.b = structureboundingbox.b;
		this.c = structureboundingbox.c;
		this.d = structureboundingbox.d;
		this.e = structureboundingbox.e;
		this.f = structureboundingbox.f;
	}
	
	public StructureBoundingBox(int i, int j, int k, int l, int i1, int j1) {
		this.a = i;
		this.b = j;
		this.c = k;
		this.d = l;
		this.e = i1;
		this.f = j1;
	}
	
	public StructureBoundingBox(BaseBlockPosition baseblockposition, BaseBlockPosition baseblockposition1) {
		this.a = Math.min(baseblockposition.getX(), baseblockposition1.getX());
		this.b = Math.min(baseblockposition.getY(), baseblockposition1.getY());
		this.c = Math.min(baseblockposition.getZ(), baseblockposition1.getZ());
		this.d = Math.max(baseblockposition.getX(), baseblockposition1.getX());
		this.e = Math.max(baseblockposition.getY(), baseblockposition1.getY());
		this.f = Math.max(baseblockposition.getZ(), baseblockposition1.getZ());
	}
	
	public StructureBoundingBox(int i, int j, int k, int l) {
		this.a = i;
		this.c = j;
		this.d = k;
		this.f = l;
		this.b = 1;
		this.e = 512;
	}
	
	public static StructureBoundingBox a() {
		return new StructureBoundingBox(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE);
	}
	
	public static StructureBoundingBox a(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2, EnumDirection enumdirection) {
		switch (SyntheticClass_1.a[enumdirection.ordinal()]) {
			case 1:
				return new StructureBoundingBox(i + l, j + i1, k - i2 + 1 + j1, i + k1 - 1 + l, j + l1 - 1 + i1, k + j1);
			
			case 2:
				return new StructureBoundingBox(i + l, j + i1, k + j1, i + k1 - 1 + l, j + l1 - 1 + i1, k + i2 - 1 + j1);
			
			case 3:
				return new StructureBoundingBox(i - i2 + 1 + j1, j + i1, k + l, i + j1, j + l1 - 1 + i1, k + k1 - 1 + l);
			
			case 4:
				return new StructureBoundingBox(i + j1, j + i1, k + l, i + i2 - 1 + j1, j + l1 - 1 + i1, k + k1 - 1 + l);
			
			default:
				return new StructureBoundingBox(i + l, j + i1, k + j1, i + k1 - 1 + l, j + l1 - 1 + i1, k + i2 - 1 + j1);
		}
	}
	
	public static StructureBoundingBox a(int i, int j, int k, int l, int i1, int j1) {
		return new StructureBoundingBox(Math.min(i, l), Math.min(j, i1), Math.min(k, j1), Math.max(i, l), Math.max(j, i1), Math.max(k, j1));
	}
	
	public boolean a(StructureBoundingBox structureboundingbox) {
		return this.d >= structureboundingbox.a && this.a <= structureboundingbox.d && this.f >= structureboundingbox.c && this.c <= structureboundingbox.f && this.e >= structureboundingbox.b && this.b <= structureboundingbox.e;
	}
	
	public boolean a(int i, int j, int k, int l) {
		return this.d >= i && this.a <= k && this.f >= j && this.c <= l;
	}
	
	public void b(StructureBoundingBox structureboundingbox) {
		this.a = Math.min(this.a, structureboundingbox.a);
		this.b = Math.min(this.b, structureboundingbox.b);
		this.c = Math.min(this.c, structureboundingbox.c);
		this.d = Math.max(this.d, structureboundingbox.d);
		this.e = Math.max(this.e, structureboundingbox.e);
		this.f = Math.max(this.f, structureboundingbox.f);
	}
	
	public void a(int i, int j, int k) {
		this.a += i;
		this.b += j;
		this.c += k;
		this.d += i;
		this.e += j;
		this.f += k;
	}
	
	public boolean b(BaseBlockPosition baseblockposition) {
		return baseblockposition.getX() >= this.a && baseblockposition.getX() <= this.d && baseblockposition.getZ() >= this.c && baseblockposition.getZ() <= this.f && baseblockposition.getY() >= this.b && baseblockposition.getY() <= this.e;
	}
	
	public BaseBlockPosition b() {
		return new BaseBlockPosition(this.d - this.a, this.e - this.b, this.f - this.c);
	}
	
	public int c() {
		return this.d - this.a + 1;
	}
	
	public int d() {
		return this.e - this.b + 1;
	}
	
	public int e() {
		return this.f - this.c + 1;
	}
	
	public BaseBlockPosition f() {
		return new BlockPosition(this.a + (this.d - this.a + 1) / 2, this.b + (this.e - this.b + 1) / 2, this.c + (this.f - this.c + 1) / 2);
	}
	
	public String toString() {
		return Objects.toStringHelper(this).add("x0", this.a).add("y0", this.b).add("z0", this.c).add("x1", this.d).add("y1", this.e).add("z1", this.f).toString();
	}
	
	public NBTTagIntArray g() {
		return new NBTTagIntArray(new int[]{this.a, this.b, this.c, this.d, this.e, this.f});
	}
	
	static class SyntheticClass_1 {
		
		static final int[] a = new int[EnumDirection.values().length];
		
		static {
			try {
				SyntheticClass_1.a[EnumDirection.NORTH.ordinal()] = 1;
			} catch (NoSuchFieldError nosuchfielderror) {
      }
			
			try {
				SyntheticClass_1.a[EnumDirection.SOUTH.ordinal()] = 2;
			} catch (NoSuchFieldError nosuchfielderror1) {
      }
			
			try {
				SyntheticClass_1.a[EnumDirection.WEST.ordinal()] = 3;
			} catch (NoSuchFieldError nosuchfielderror2) {
      }
			
			try {
				SyntheticClass_1.a[EnumDirection.EAST.ordinal()] = 4;
			} catch (NoSuchFieldError nosuchfielderror3) {
      }
			
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy