ViaVersion/api/src/main/java/us/myles/ViaVersion/api/minecraft/Position.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 +
'}';
}
}