diff --git a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/CacheSampler.java b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/CacheSampler.java index 14c42b03d..59ff6a75a 100644 --- a/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/CacheSampler.java +++ b/common/addons/config-noise-function/src/main/java/com/dfsek/terra/addons/noise/samplers/CacheSampler.java @@ -24,24 +24,28 @@ public class CacheSampler implements NoiseSampler { public CacheSampler(NoiseSampler sampler, int dimensions) { this.sampler = sampler; if (dimensions == 2) { - LoadingCache cache = Caffeine - .newBuilder() - .executor(CACHE_EXECUTOR) - .scheduler(Scheduler.systemScheduler()) - .initialCapacity(256) - .maximumSize(256) - .build(this::sampleNoise); - this.cache2D = ThreadLocal.withInitial(() -> Pair.of(new DoubleSeededVector2Key(0, 0, 0), cache).mutable()); + this.cache2D = ThreadLocal.withInitial(() -> { + LoadingCache cache = Caffeine + .newBuilder() + .executor(CACHE_EXECUTOR) + .scheduler(Scheduler.systemScheduler()) + .initialCapacity(256) + .maximumSize(256) + .build(this::sampleNoise); + return Pair.of(new DoubleSeededVector2Key(0, 0, 0), cache).mutable(); + }); this.cache3D = null; } else { - LoadingCache cache = Caffeine - .newBuilder() - .executor(CACHE_EXECUTOR) - .scheduler(Scheduler.systemScheduler()) - .initialCapacity(981504) - .maximumSize(981504) - .build(this::sampleNoise); - this.cache3D = ThreadLocal.withInitial(() -> Pair.of(new DoubleSeededVector3Key(0, 0, 0, 0), cache).mutable()); + this.cache3D = ThreadLocal.withInitial(() -> { + LoadingCache cache = Caffeine + .newBuilder() + .executor(CACHE_EXECUTOR) + .scheduler(Scheduler.systemScheduler()) + .initialCapacity(981504) + .maximumSize(981504) + .build(this::sampleNoise); + return Pair.of(new DoubleSeededVector3Key(0, 0, 0, 0), cache).mutable(); + }); this.cache2D = null; } } diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java index 39411a6c3..3e42ff1d1 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java @@ -33,23 +33,27 @@ public class CachingBiomeProvider implements BiomeProvider, Handle { this.delegate = delegate; this.res = delegate.resolution(); - LoadingCache> cache = Caffeine - .newBuilder() - .executor(CACHE_EXECUTOR) - .scheduler(Scheduler.systemScheduler()) - .initialCapacity(256) - .maximumSize(256) - .build(this::sampleBiome); - this.baseCache = ThreadLocal.withInitial(() -> Pair.of(new SeededVector2Key(0, 0, 0), cache).mutable()); + this.baseCache = ThreadLocal.withInitial(() -> { + LoadingCache> cache = Caffeine + .newBuilder() + .executor(CACHE_EXECUTOR) + .scheduler(Scheduler.systemScheduler()) + .initialCapacity(256) + .maximumSize(256) + .build(this::sampleBiome); + return Pair.of(new SeededVector2Key(0, 0, 0), cache).mutable(); + }); - LoadingCache cache3D = Caffeine - .newBuilder() - .executor(CACHE_EXECUTOR) - .scheduler(Scheduler.systemScheduler()) - .initialCapacity(981504) - .maximumSize(981504) - .build(this::sampleBiome); - this.cache = ThreadLocal.withInitial(() -> Pair.of(new SeededVector3Key(0, 0, 0, 0), cache3D).mutable()); + this.cache = ThreadLocal.withInitial(() -> { + LoadingCache cache3D = Caffeine + .newBuilder() + .executor(CACHE_EXECUTOR) + .scheduler(Scheduler.systemScheduler()) + .initialCapacity(981504) + .maximumSize(981504) + .build(this::sampleBiome); + return Pair.of(new SeededVector3Key(0, 0, 0, 0), cache3D).mutable(); + });