From 5d60251da0df1812a6a14c5235c2f99b9f6b4ea8 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Tue, 19 Mar 2024 17:36:22 -0500 Subject: [PATCH] Cache the blockState and biome wrapper hashCodes --- .../common/wrappers/block/BiomeWrapper.java | 7 +++++-- .../common/wrappers/block/BlockStateWrapper.java | 4 +++- coreSubProjects | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java index fab19b68f..dfec14fc9 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java @@ -88,7 +88,8 @@ public class BiomeWrapper implements IBiomeWrapper #endif /** technically final, but since it requires a method call to generate it can't be marked as such */ - private String serialString = null; + private String serialString; + private int hashCode; @@ -119,6 +120,7 @@ public class BiomeWrapper implements IBiomeWrapper { this.biome = biome; this.serialString = this.serialize(levelWrapper); + this.hashCode = Objects.hash(this.serialString); LOGGER.trace("Created BiomeWrapper ["+this.serialString+"] for ["+biome+"]"); } @@ -127,6 +129,7 @@ public class BiomeWrapper implements IBiomeWrapper { this.biome = null; this.serialString = EMPTY_STRING; + this.hashCode = Objects.hash(this.serialString); } @@ -168,7 +171,7 @@ public class BiomeWrapper implements IBiomeWrapper } @Override - public int hashCode() { return Objects.hash(this.getSerialString()); } + public int hashCode() { return this.hashCode; } @Override public String getSerialString() { return this.serialString; } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java index e44a30e0a..81362e030 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java @@ -83,6 +83,7 @@ public class BlockStateWrapper implements IBlockStateWrapper public final BlockState blockState; /** technically final, but since it requires a method call to generate it can't be marked as such */ private String serialString; + private final int hashCode; /** * Cached opacity value, -1 if not populated.
* Should be between {@link IBlockStateWrapper#FULLY_OPAQUE} and {@link IBlockStateWrapper#FULLY_OPAQUE} @@ -121,6 +122,7 @@ public class BlockStateWrapper implements IBlockStateWrapper { this.blockState = blockState; this.serialString = this.serialize(levelWrapper); + this.hashCode = Objects.hash(this.serialString); this.irisBlockMaterialId = this.calculateIrisBlockMaterialId(); LOGGER.trace("Created BlockStateWrapper ["+this.serialString+"] for ["+blockState+"] with material ID ["+this.irisBlockMaterialId+"]"); } @@ -245,7 +247,7 @@ public class BlockStateWrapper implements IBlockStateWrapper } @Override - public int hashCode() { return Objects.hash(this.getSerialString()); } + public int hashCode() { return this.hashCode; } @Override diff --git a/coreSubProjects b/coreSubProjects index 9f195231d..a1950ebcc 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit 9f195231db7056c3ede667e3385bd7e6ef169da2 +Subproject commit a1950ebccc68dee9aa9a505abb5e6b81529e01fc