mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 16:35:50 +00:00
add caching option to config pack
This commit is contained in:
parent
8a2024e8d8
commit
78d34498d9
@ -5,6 +5,7 @@ import com.dfsek.terra.api.world.biome.Biome;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||
import com.github.benmanes.caffeine.cache.LoadingCache;
|
||||
import com.github.benmanes.caffeine.cache.Scheduler;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@ -25,6 +26,8 @@ public class CachingBiomeProvider implements BiomeProvider, Handle {
|
||||
this.res = delegate.resolution();
|
||||
this.cache = Caffeine
|
||||
.newBuilder()
|
||||
.scheduler(Scheduler.disabledScheduler())
|
||||
.initialCapacity(98304)
|
||||
.maximumSize(98304) // 1 full chunk (high res)
|
||||
.build(vec -> delegate.getBiome(vec.x * res, vec.y * res, vec.z * res, vec.seed));
|
||||
|
||||
|
@ -231,7 +231,7 @@ public class ConfigPackImpl implements ConfigPack {
|
||||
|
||||
ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate();
|
||||
selfLoader.load(packPostTemplate, packManifest);
|
||||
seededBiomeProvider = packPostTemplate.getProviderBuilder();
|
||||
seededBiomeProvider = template.getBiomeCache() ? packPostTemplate.getProviderBuilder().caching() : packPostTemplate.getProviderBuilder();
|
||||
checkDeadEntries();
|
||||
}
|
||||
|
||||
|
@ -107,6 +107,10 @@ public class ConfigPackTemplate implements ConfigTemplate {
|
||||
@Value("generator")
|
||||
private @Meta ChunkGeneratorProvider generatorProvider;
|
||||
|
||||
@Value("cache.biome.enable")
|
||||
@Default
|
||||
private boolean biomeCache = false;
|
||||
|
||||
public boolean disableCarvers() {
|
||||
return disableCarvers;
|
||||
}
|
||||
@ -182,4 +186,8 @@ public class ConfigPackTemplate implements ConfigTemplate {
|
||||
public Map<String, String> getLocatable() {
|
||||
return locatable;
|
||||
}
|
||||
|
||||
public boolean getBiomeCache() {
|
||||
return biomeCache;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user