diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector.java index 474d24f33..c444d80d1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector.java @@ -73,6 +73,11 @@ public class BlockVector extends Vector { super(x, y, z); } + @Override + public int hashCode() { + return ((int) x ^ ((int) z << 12)) ^ ((int) y << 24); + } + @Override public boolean equals(Object obj) { if (!(obj instanceof Vector)) { @@ -84,13 +89,6 @@ public class BlockVector extends Vector { } - @Override - public int hashCode() { - return ((int) x << 19) ^ - ((int) y << 12) ^ - (int) z; - } - @Override public BlockVector toBlockVector() { return this; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector2D.java index 9a0ae4b91..07d54430b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector2D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector2D.java @@ -69,6 +69,11 @@ public class BlockVector2D extends Vector2D { super(x, z); } + @Override + public int hashCode() { + return ((int) x << 16) ^ (int) z; + } + @Override public boolean equals(Object obj) { if (!(obj instanceof Vector2D)) { @@ -80,12 +85,6 @@ public class BlockVector2D extends Vector2D { } - @Override - public int hashCode() { - return (Integer.valueOf((int) x).hashCode() >> 13) ^ - Integer.valueOf((int) z).hashCode(); - } - @Override public BlockVector2D toBlockVector2D() { return this; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/Vector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/Vector.java index e148e75d5..84067738c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/Vector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/Vector.java @@ -789,12 +789,7 @@ public class Vector implements Comparable { @Override public int hashCode() { - int hash = 7; - - 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; + return ((int) x ^ ((int) z << 12)) ^ ((int) y << 24); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/Vector2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/Vector2D.java index 2c295ca2c..ae58566b7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/Vector2D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/Vector2D.java @@ -627,8 +627,7 @@ public class Vector2D { @Override public int hashCode() { - return ((new Double(x)).hashCode() >> 13) ^ - (new Double(z)).hashCode(); + return ((int) x << 16) ^ (int) z; } @Override