[Fix] Biomes from Terrablender have no features

This commit is contained in:
Frank 2022-06-10 03:40:04 +02:00
parent e49323be93
commit bb08368511

View file

@ -76,26 +76,31 @@ public class BCLChunkGenerator extends NoiseBasedChunkGenerator {
//terrablender is completley invalidating the feature imitialization
//we redo it at this point, otherwise we will get blank biomes
if (this instanceof ChunkGeneratorAccessor acc) {
Function<Holder<Biome>, BiomeGenerationSettings> function = (Holder<Biome> hh) -> hh.value()
.getGenerationSettings();
acc.bcl_setFeaturesPerStep(Suppliers.memoize(() -> FeatureSorter.buildFeaturesPerStep(
List.copyOf(biomeSource.possibleBiomes()),
(hh) -> function.apply(hh).features(),
true
)));
}
rebuildFeaturesPerStep(biomeSource);
}
System.out.println("Chunk Generator: " + this + " (biomeSource: " + biomeSource + ")");
}
private void rebuildFeaturesPerStep(BiomeSource biomeSource) {
if (this instanceof ChunkGeneratorAccessor acc) {
Function<Holder<Biome>, BiomeGenerationSettings> function = (Holder<Biome> hh) -> hh.value()
.getGenerationSettings();
acc.bcl_setFeaturesPerStep(Suppliers.memoize(() -> FeatureSorter.buildFeaturesPerStep(
List.copyOf(biomeSource.possibleBiomes()),
(hh) -> function.apply(hh).features(),
true
)));
}
}
public void restoreInitialBiomeSource() {
if (initialBiomeSource != getBiomeSource()) {
if (this instanceof ChunkGeneratorAccessor acc) {
BiomeSource bs = LevelGenUtil.getWorldSettings()
.fixBiomeSource(initialBiomeSource, getBiomeSource().possibleBiomes());
acc.bcl_setBiomeSource(bs);
rebuildFeaturesPerStep(getBiomeSource());
}
}
}