geforkt von Mirrors/FastAsyncWorldEdit
Vector and BlockVector should use the same hashCode
For example, the getChunks method returns a Set<Vector2D> which is actually comprised of BlockVector2D, so using set.contains(some vector) will always return false. There's unlikely to be multiple entities on the same block, or above y=256, so using the int coords is better.
Dieser Commit ist enthalten in:
Ursprung
9f24f84c2b
Commit
ad7fdd19fb
@ -84,13 +84,6 @@ public class BlockVector extends Vector {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return ((int) x << 19) ^
|
|
||||||
((int) y << 12) ^
|
|
||||||
(int) z;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockVector toBlockVector() {
|
public BlockVector toBlockVector() {
|
||||||
return this;
|
return this;
|
||||||
|
@ -80,12 +80,6 @@ public class BlockVector2D extends Vector2D {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return (Integer.valueOf((int) x).hashCode() >> 13) ^
|
|
||||||
Integer.valueOf((int) z).hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockVector2D toBlockVector2D() {
|
public BlockVector2D toBlockVector2D() {
|
||||||
return this;
|
return this;
|
||||||
|
@ -789,12 +789,7 @@ public class Vector implements Comparable<Vector> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int hash = 7;
|
return ((int) x ^ ((int) z << 12)) ^ ((int) y << 24);
|
||||||
|
|
||||||
hash = 79 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32));
|
|
||||||
hash = 79 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32));
|
|
||||||
hash = 79 * hash + (int) (Double.doubleToLongBits(this.z) ^ (Double.doubleToLongBits(this.z) >>> 32));
|
|
||||||
return hash;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -627,8 +627,7 @@ public class Vector2D {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return ((new Double(x)).hashCode() >> 13) ^
|
return ((int) x << 16) ^ (int) z;
|
||||||
(new Double(z)).hashCode();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren