package hunternif.mc.atlas.util;
import net.minecraft.util.math.MathHelper;
public class ShortVec2 {
public short x;
public short y;
public ShortVec2(ShortVec2 vec) {
this(vec.x, vec.y);
}
private ShortVec2(short x, short y) {
this.x = x;
this.y = y;
}
public ShortVec2(int x, int y) {
this.x = (short)x;
this.y = (short)y;
}
public ShortVec2(double x, double y) {
this.x = (short)MathHelper.floor(x);
this.y = (short)MathHelper.floor(y);
}
/** Modifies and returns self. */
public ShortVec2 add(int dx, int dy) {
this.x += dx;
this.y += dy;
return this;
}
/** Modifies and returns self. */
public ShortVec2 set(int x, int y) {
this.x = (short)x;
this.y = (short)y;
return this;
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
@Override
public ShortVec2 clone() {
return new ShortVec2(x, y);
}
public double distanceTo(ShortVec2 intVec2) {
double x1 = x;
double y1 = y;
double x2 = intVec2.x;
double y2 = intVec2.y;
return Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof ShortVec2))
return false;
ShortVec2 vec = (ShortVec2) obj;
return vec.x == x && vec.y == y;
}
@Override
public int hashCode() {
return (int)x + (y << 16);
}
public boolean equalsIntVec3(ShortVec2 vec) {
return vec.x == x && vec.y == y;
}
}