67 lines
1.4 KiB
Java
67 lines
1.4 KiB
Java
package us.myles.ViaVersion.api.minecraft;
|
|
|
|
public class Position {
|
|
private final int x;
|
|
private final int y;
|
|
private final int z;
|
|
|
|
public Position(int x, int y, int z) {
|
|
this.x = x;
|
|
this.y = y;
|
|
this.z = z;
|
|
}
|
|
|
|
public Position(int x, short y, int z) {
|
|
this.x = x;
|
|
this.y = y;
|
|
this.z = z;
|
|
}
|
|
|
|
public Position(Position toCopy) {
|
|
this(toCopy.getX(), toCopy.getY(), toCopy.getZ());
|
|
}
|
|
|
|
public Position getRelative(BlockFace face) {
|
|
return new Position(x + face.getModX(), (short) (y + face.getModY()), z + face.getModZ());
|
|
}
|
|
|
|
public int getX() {
|
|
return x;
|
|
}
|
|
|
|
public int getY() {
|
|
return y;
|
|
}
|
|
|
|
public int getZ() {
|
|
return z;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(final Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
Position position = (Position) o;
|
|
if (x != position.x) return false;
|
|
if (y != position.y) return false;
|
|
return z == position.z;
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
int result = x;
|
|
result = 31 * result + y;
|
|
result = 31 * result + z;
|
|
return result;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "Position{" +
|
|
"x=" + x +
|
|
", y=" + y +
|
|
", z=" + z +
|
|
'}';
|
|
}
|
|
}
|