Make sure biomes are not modified twice

This commit is contained in:
Frank 2021-12-03 03:58:53 +01:00
parent 298aa47e7c
commit fb79201b51
2 changed files with 8 additions and 2 deletions

View file

@ -37,6 +37,7 @@ import ru.bclib.world.features.BCLFeature;
import ru.bclib.world.generator.BiomePicker;
import ru.bclib.world.structures.BCLStructureFeature;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
@ -406,13 +407,19 @@ public class BiomeAPI {
applyModifications(biomes, level.dimension());
}
private static final Set<ResourceLocation> modifiedBiomes = new HashSet<>();
/**
* Will apply biome modifications to world, internal usage only.
* @param registryAccess
*/
public static void applyModifications(RegistryAccess registryAccess) {
Registry<Biome> biomeReg = registryAccess.registryOrThrow(Registry.BIOME_REGISTRY);
Set<Biome> biomes = biomeReg.entrySet().stream().map(e -> e.getValue()).collect(Collectors.toSet());
Set<Biome> biomes = biomeReg
.entrySet()
.stream()
.map(e -> e.getValue())
.filter(b -> modifiedBiomes.add(getBiomeID(b)))
.collect(Collectors.toSet());
applyModifications(
biomes.stream().filter(b->b.getBiomeCategory().equals(BiomeCategory.NETHER)).collect(Collectors.toSet()),

View file

@ -4,7 +4,6 @@ import com.mojang.serialization.DynamicOps;
import net.minecraft.core.RegistryAccess;
import net.minecraft.resources.RegistryReadOps;
import net.minecraft.resources.RegistryResourceAccess;
import net.minecraft.server.level.ServerLevel;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;