mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
use caffeine cache in biome pipeline provider
This commit is contained in:
@@ -2,4 +2,9 @@ version = version("1.0.0")
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnlyApi(project(":common:addons:manifest-addon-loader"))
|
compileOnlyApi(project(":common:addons:manifest-addon-loader"))
|
||||||
|
implementation("com.github.ben-manes.caffeine:caffeine:3.1.0")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.named<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("shadowJar") {
|
||||||
|
relocate("com.github.benmanes.caffeine", "com.dfsek.terra.addons.biome.pipeline.lib.caffeine")
|
||||||
|
}
|
||||||
+6
-15
@@ -7,11 +7,9 @@
|
|||||||
|
|
||||||
package com.dfsek.terra.addons.biome.pipeline;
|
package com.dfsek.terra.addons.biome.pipeline;
|
||||||
|
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||||
import com.google.common.cache.LoadingCache;
|
|
||||||
import net.jafama.FastMath;
|
import net.jafama.FastMath;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@@ -40,16 +38,9 @@ public class BiomePipelineProvider implements BiomeProvider {
|
|||||||
this.resolution = resolution;
|
this.resolution = resolution;
|
||||||
this.mutator = mutator;
|
this.mutator = mutator;
|
||||||
this.noiseAmp = noiseAmp;
|
this.noiseAmp = noiseAmp;
|
||||||
holderCache = CacheBuilder.newBuilder()
|
holderCache = Caffeine.newBuilder()
|
||||||
.maximumSize(1024)
|
.maximumSize(1024)
|
||||||
.build(
|
.build(key -> pipeline.getBiomes(key.x, key.z, key.seed));
|
||||||
new CacheLoader<>() {
|
|
||||||
@Override
|
|
||||||
public BiomeHolder load(@NotNull SeededVector key) {
|
|
||||||
return pipeline.getBiomes(key.x, key.z, key.seed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
this.pipeline = pipeline;
|
this.pipeline = pipeline;
|
||||||
|
|
||||||
Set<BiomeDelegate> biomeSet = new HashSet<>();
|
Set<BiomeDelegate> biomeSet = new HashSet<>();
|
||||||
@@ -92,7 +83,7 @@ public class BiomePipelineProvider implements BiomeProvider {
|
|||||||
|
|
||||||
int fdX = FastMath.floorDiv(x, pipeline.getSize());
|
int fdX = FastMath.floorDiv(x, pipeline.getSize());
|
||||||
int fdZ = FastMath.floorDiv(z, pipeline.getSize());
|
int fdZ = FastMath.floorDiv(z, pipeline.getSize());
|
||||||
return holderCache.getUnchecked(new SeededVector(fdX, fdZ, seed)).getBiome(x - fdX * pipeline.getSize(),
|
return holderCache.get(new SeededVector(fdX, fdZ, seed)).getBiome(x - fdX * pipeline.getSize(),
|
||||||
z - fdZ * pipeline.getSize()).getBiome();
|
z - fdZ * pipeline.getSize()).getBiome();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user