[Feature] More flexible/extensible End-Biome Placement
This commit is contained in:
parent
c695e0af5e
commit
3f3454e634
2 changed files with 63 additions and 7 deletions
|
@ -0,0 +1,60 @@
|
|||
package org.betterx.betterend.world.generator;
|
||||
|
||||
import org.betterx.bclib.api.v2.generator.BCLBiomeSource;
|
||||
import org.betterx.bclib.api.v2.generator.BCLibEndBiomeSource;
|
||||
import org.betterx.bclib.api.v2.generator.BiomeDecider;
|
||||
import org.betterx.bclib.api.v2.generator.config.BCLEndBiomeSourceConfig;
|
||||
import org.betterx.bclib.api.v2.levelgen.biomes.BiomeAPI;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.level.biome.Biome;
|
||||
import net.minecraft.world.level.biome.BiomeSource;
|
||||
|
||||
public class EndLandBiomeDecider extends BiomeDecider {
|
||||
public EndLandBiomeDecider() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
protected EndLandBiomeDecider(Registry<Biome> biomeRegistry) {
|
||||
super(biomeRegistry, (biome) -> false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canProvideFor(BiomeSource source) {
|
||||
if (source instanceof BCLibEndBiomeSource endSource) {
|
||||
return endSource.getTogetherConfig().generatorVersion == BCLEndBiomeSourceConfig.EndBiomeGeneratorType.PAULEVS;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiomeDecider createInstance(BCLBiomeSource biomeSource) {
|
||||
return new EndLandBiomeDecider(biomeSource.getBiomeRegistry());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiomeAPI.BiomeType suggestType(
|
||||
BiomeAPI.BiomeType originalType,
|
||||
BiomeAPI.BiomeType suggestedType,
|
||||
double density,
|
||||
int maxHeight,
|
||||
int blockX,
|
||||
int blockY,
|
||||
int blockZ,
|
||||
int quarterX,
|
||||
int quarterY,
|
||||
int quarterZ
|
||||
) {
|
||||
if (!TerrainGenerator.isLand(quarterX, quarterZ, maxHeight)) {
|
||||
return suggestedType.equals(BiomeAPI.BiomeType.END_CENTER)
|
||||
? BiomeAPI.BiomeType.END_BARRENS
|
||||
: BiomeAPI.BiomeType.END_VOID;
|
||||
}
|
||||
return suggestedType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canProvideBiome(BiomeAPI.BiomeType suggestedType) {
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue