diff --git a/src/main/java/org/betterx/bclib/api/v2/generator/TypeBiomeDecider.java b/src/main/java/org/betterx/bclib/api/v2/generator/TypeBiomeDecider.java new file mode 100644 index 00000000..559de7d2 --- /dev/null +++ b/src/main/java/org/betterx/bclib/api/v2/generator/TypeBiomeDecider.java @@ -0,0 +1,24 @@ +package org.betterx.bclib.api.v2.generator; + +import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI; + +import net.minecraft.core.Registry; +import net.minecraft.world.level.biome.Biome; + +public abstract class TypeBiomeDecider extends BiomeDecider { + protected final BiomeAPI.BiomeType assignedType; + + public TypeBiomeDecider(BiomeAPI.BiomeType assignedType) { + this(null, assignedType); + } + + protected TypeBiomeDecider(Registry biomeRegistry, BiomeAPI.BiomeType assignedType) { + super(biomeRegistry, (biome) -> biome.getIntendedType().is(assignedType)); + this.assignedType = assignedType; + } + + @Override + public boolean canProvideBiome(BiomeAPI.BiomeType suggestedType) { + return suggestedType.equals(assignedType); + } +} diff --git a/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/BiomeAPI.java b/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/BiomeAPI.java index 7353db38..7dff6925 100644 --- a/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/BiomeAPI.java +++ b/src/main/java/org/betterx/bclib/api/v2/levelgen/biomes/BiomeAPI.java @@ -194,6 +194,19 @@ public class BiomeAPI { if (parentOrNull != null) str += " -> " + parentOrNull; return str; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BiomeType biomeType = (BiomeType) o; + return name.equals(biomeType.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } } /**