add caching option to config pack

This commit is contained in:
dfsek 2022-06-18 02:33:25 -07:00
parent 8a2024e8d8
commit 78d34498d9
3 changed files with 12 additions and 1 deletions

View File

@ -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.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache; import com.github.benmanes.caffeine.cache.LoadingCache;
import com.github.benmanes.caffeine.cache.Scheduler;
import java.util.Optional; import java.util.Optional;
@ -25,6 +26,8 @@ public class CachingBiomeProvider implements BiomeProvider, Handle {
this.res = delegate.resolution(); this.res = delegate.resolution();
this.cache = Caffeine this.cache = Caffeine
.newBuilder() .newBuilder()
.scheduler(Scheduler.disabledScheduler())
.initialCapacity(98304)
.maximumSize(98304) // 1 full chunk (high res) .maximumSize(98304) // 1 full chunk (high res)
.build(vec -> delegate.getBiome(vec.x * res, vec.y * res, vec.z * res, vec.seed)); .build(vec -> delegate.getBiome(vec.x * res, vec.y * res, vec.z * res, vec.seed));

View File

@ -231,7 +231,7 @@ public class ConfigPackImpl implements ConfigPack {
ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate(); ConfigPackPostTemplate packPostTemplate = new ConfigPackPostTemplate();
selfLoader.load(packPostTemplate, packManifest); selfLoader.load(packPostTemplate, packManifest);
seededBiomeProvider = packPostTemplate.getProviderBuilder(); seededBiomeProvider = template.getBiomeCache() ? packPostTemplate.getProviderBuilder().caching() : packPostTemplate.getProviderBuilder();
checkDeadEntries(); checkDeadEntries();
} }

View File

@ -107,6 +107,10 @@ public class ConfigPackTemplate implements ConfigTemplate {
@Value("generator") @Value("generator")
private @Meta ChunkGeneratorProvider generatorProvider; private @Meta ChunkGeneratorProvider generatorProvider;
@Value("cache.biome.enable")
@Default
private boolean biomeCache = false;
public boolean disableCarvers() { public boolean disableCarvers() {
return disableCarvers; return disableCarvers;
} }
@ -182,4 +186,8 @@ public class ConfigPackTemplate implements ConfigTemplate {
public Map<String, String> getLocatable() { public Map<String, String> getLocatable() {
return locatable; return locatable;
} }
public boolean getBiomeCache() {
return biomeCache;
}
} }