[Fix] Disabled Biomes can crash BiomePicker (#7)
This commit is contained in:
parent
600aa50212
commit
473ed9a165
1 changed files with 7 additions and 5 deletions
|
@ -19,7 +19,7 @@ import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class BiomePicker {
|
public class BiomePicker {
|
||||||
public final Map<BCLBiome, ActualBiome> all = new HashMap<>();
|
private final Map<BCLBiome, ActualBiome> all = new HashMap<>();
|
||||||
public final Registry<Biome> biomeRegistry;
|
public final Registry<Biome> biomeRegistry;
|
||||||
private final List<ActualBiome> biomes = Lists.newArrayList();
|
private final List<ActualBiome> biomes = Lists.newArrayList();
|
||||||
private final List<String> allowedBiomes;
|
private final List<String> allowedBiomes;
|
||||||
|
@ -63,7 +63,8 @@ public class BiomePicker {
|
||||||
list.add(create(BiomeAPI.EMPTY_BIOME), 1);
|
list.add(create(BiomeAPI.EMPTY_BIOME), 1);
|
||||||
} else {
|
} else {
|
||||||
biomes.forEach(biome -> {
|
biomes.forEach(biome -> {
|
||||||
list.add(biome, biome.bclBiome.getGenChance());
|
if (biome.isValid)
|
||||||
|
list.add(biome, biome.bclBiome.getGenChance());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,14 +80,15 @@ public class BiomePicker {
|
||||||
private final WeightedList<ActualBiome> subbiomes = new WeightedList<>();
|
private final WeightedList<ActualBiome> subbiomes = new WeightedList<>();
|
||||||
private final ActualBiome edge;
|
private final ActualBiome edge;
|
||||||
private final ActualBiome parent;
|
private final ActualBiome parent;
|
||||||
|
public final boolean isValid;
|
||||||
|
|
||||||
private ActualBiome(BCLBiome bclBiome) {
|
private ActualBiome(BCLBiome bclBiome) {
|
||||||
all.put(bclBiome, this);
|
all.put(bclBiome, this);
|
||||||
this.bclBiome = bclBiome;
|
this.bclBiome = bclBiome;
|
||||||
|
|
||||||
this.key = biomeRegistry.getResourceKey(biomeRegistry.get(bclBiome.getID())).orElseThrow();
|
this.key = biomeRegistry.getResourceKey(biomeRegistry.get(bclBiome.getID())).orElse(null);
|
||||||
this.biome = biomeRegistry.getOrCreateHolderOrThrow(key);
|
this.biome = key != null ? biomeRegistry.getOrCreateHolderOrThrow(key) : null;
|
||||||
|
this.isValid = key != null;
|
||||||
bclBiome.forEachSubBiome((b, w) -> {
|
bclBiome.forEachSubBiome((b, w) -> {
|
||||||
if (isAllowed(b))
|
if (isAllowed(b))
|
||||||
subbiomes.add(create(b), w);
|
subbiomes.add(create(b), w);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue