Make sure null Biomes do not crash

This commit is contained in:
Frank 2022-06-11 19:51:01 +02:00
parent 04fe6d33d7
commit f6d0cc7a38

View file

@ -6,7 +6,6 @@ import org.betterx.bclib.interfaces.NoiseGeneratorSettingsProvider;
import org.betterx.bclib.interfaces.SurfaceRuleProvider; import org.betterx.bclib.interfaces.SurfaceRuleProvider;
import org.betterx.bclib.mixin.common.BiomeGenerationSettingsAccessor; import org.betterx.bclib.mixin.common.BiomeGenerationSettingsAccessor;
import com.mojang.serialization.Codec;
import net.minecraft.core.Holder; import net.minecraft.core.Holder;
import net.minecraft.core.Registry; import net.minecraft.core.Registry;
import net.minecraft.core.RegistryAccess; import net.minecraft.core.RegistryAccess;
@ -24,15 +23,15 @@ import net.minecraft.world.level.levelgen.placement.PlacedFeature;
import net.fabricmc.fabric.api.event.registry.DynamicRegistrySetupCallback; import net.fabricmc.fabric.api.event.registry.DynamicRegistrySetupCallback;
import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback; import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback;
import net.fabricmc.fabric.impl.registry.sync.FabricRegistry;
import net.fabricmc.fabric.impl.registry.sync.FabricRegistryInit;
import net.fabricmc.fabric.impl.resource.loader.FabricLifecycledResourceManager;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.lang3.mutable.MutableInt;
import java.util.*; import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -82,8 +81,10 @@ public class InternalBiomeAPI {
BIOMES_TO_SORT.forEach(id -> { BIOMES_TO_SORT.forEach(id -> {
Biome b = biomeRegistry.get(id); Biome b = biomeRegistry.get(id);
BCLib.LOGGER.info("Sorting Features in Biome: " + id + "("+b+")"); if (b != null) {
BiomeAPI.sortBiomeFeatures(b); BCLib.LOGGER.info("Sorting Features in Biome: " + id + "(" + b + ")");
BiomeAPI.sortBiomeFeatures(b);
}
}); });
} }
} }
@ -242,6 +243,7 @@ public class InternalBiomeAPI {
} }
private static final Set<ResourceLocation> BIOMES_TO_SORT = Sets.newHashSet(); private static final Set<ResourceLocation> BIOMES_TO_SORT = Sets.newHashSet();
static { static {
DynamicRegistrySetupCallback.EVENT.register(registryManager -> { DynamicRegistrySetupCallback.EVENT.register(registryManager -> {
Optional<? extends Registry<Biome>> oBiomeRegistry = registryManager.registry(Registry.BIOME_REGISTRY); Optional<? extends Registry<Biome>> oBiomeRegistry = registryManager.registry(Registry.BIOME_REGISTRY);
@ -249,7 +251,7 @@ public class InternalBiomeAPI {
.event(oBiomeRegistry.get()) .event(oBiomeRegistry.get())
.register((rawId, id, biome) -> { .register((rawId, id, biome) -> {
BCLBiome b = BiomeAPI.getBiome(id); BCLBiome b = BiomeAPI.getBiome(id);
if (!"minecraft".equals(id.getNamespace()) && (b==null || b==BiomeAPI.EMPTY_BIOME)) { if (!"minecraft".equals(id.getNamespace()) && (b == null || b == BiomeAPI.EMPTY_BIOME)) {
//BCLib.LOGGER.info(" #### " + rawId + ", " + biome + ", " + id); //BCLib.LOGGER.info(" #### " + rawId + ", " + biome + ", " + id);
BIOMES_TO_SORT.add(id); BIOMES_TO_SORT.add(id);
} }