Speed up the BlockState hashCode method by caching (As it's Immutable). Allows some better optimisations in the future by using them as map keys

This commit is contained in:
Matthew Miller 2019-02-16 12:46:10 +10:00
parent de9d202681
commit d6bc85ccbe

View File

@ -146,7 +146,7 @@ public class BlockState implements BlockStateHolder<BlockState> {
@Override
public boolean equalsFuzzy(BlockStateHolder<?> o) {
if (this == o) {
// Added a reference equality check for
// Added a reference equality check for speediness
return true;
}
if (!getBlockType().equals(o.getBlockType())) {
@ -223,8 +223,13 @@ public class BlockState implements BlockStateHolder<BlockState> {
return equalsFuzzy((BlockState) obj);
}
private Integer hashCodeCache = null;
@Override
public int hashCode() {
return Objects.hash(blockType, values);
if (hashCodeCache == null) {
hashCodeCache = Objects.hash(blockType, values);
}
return hashCodeCache;
}
}