3
0
Fork 1
KCauldronX/src/main/java/kcauldron/BlockCoords.java

40 lines
933 B
Java

package kcauldron;
public class BlockCoords {
public final int x, y, z;
public final long key;
private final int hash;
public BlockCoords(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
key = ((long) y << 56) | (((long) z & 0xFFFFFFF) << 28) | (x & 0xFFFFFFF);
hash = (int) (key ^ (key >>> 32));
}
public BlockCoords(BlockCoords coords) {
this.x = coords.x;
this.y = coords.y;
this.z = coords.z;
this.key = coords.key;
this.hash = coords.hash;
}
@Override
public boolean equals(Object obj) {
if (obj == this)
return true;
if (!(obj instanceof BlockCoords))
return false;
BlockCoords coords = (BlockCoords) obj;
return x == coords.x && y == coords.y && z == coords.z;
}
@Override
public int hashCode() {
return hash;
}
}