[Change] No special case for BetterEnd in BiomeSource

This commit is contained in:
Frank 2022-07-10 03:49:01 +02:00
parent 91d7931010
commit 6b09a39b95
2 changed files with 22 additions and 51 deletions

View file

@ -43,10 +43,6 @@ public class BCLib implements ModInitializer {
.getModContainer("nullscape")
.isPresent();
public static final boolean RUNS_BETTER_END = FabricLoader.getInstance()
.getModContainer("betterend")
.isPresent();
@Override
public void onInitialize() {
LevelGenEvents.register();

View file

@ -360,58 +360,33 @@ public class BCLibEndBiomeSource extends BCLBiomeSource implements BiomeSourceWi
BiomeAPI.BiomeType suggestedType;
// this is a crude way to fix this issue...
// basically this condition should not exist. The BetterEnd BiomeDeciders
// should do the else part
if (!BCLib.RUNS_BETTER_END || config.generatorVersion == BCLEndBiomeSourceConfig.EndBiomeGeneratorType.VANILLA) {
int x = (SectionPos.blockToSectionCoord(posX) * 2 + 1) * 8;
int z = (SectionPos.blockToSectionCoord(posZ) * 2 + 1) * 8;
double d = sampler.erosion().compute(new DensityFunction.SinglePointContext(x, posY, z));
if (dist <= (long) config.innerVoidRadiusSquared) {
suggestedType = BiomeAPI.BiomeType.END_CENTER;
} else {
if (d > 0.25) {
suggestedType = BiomeAPI.BiomeType.END_LAND; //highlands
} else if (d >= -0.0625) {
suggestedType = BiomeAPI.BiomeType.END_LAND; //midlands
} else {
suggestedType = d < -0.21875
? BiomeAPI.BiomeType.END_VOID //small islands
: (config.withVoidBiomes
? BiomeAPI.BiomeType.END_BARRENS
: BiomeAPI.BiomeType.END_LAND); //barrens
}
}
final BiomeAPI.BiomeType originalType = suggestedType;
for (BiomeDecider decider : deciders) {
suggestedType = decider
.suggestType(
originalType,
suggestedType,
d,
maxHeight,
posX,
posY,
posZ,
biomeX,
biomeY,
biomeZ
);
}
int x = (SectionPos.blockToSectionCoord(posX) * 2 + 1) * 8;
int z = (SectionPos.blockToSectionCoord(posZ) * 2 + 1) * 8;
double d = sampler.erosion().compute(new DensityFunction.SinglePointContext(x, posY, z));
if (dist <= (long) config.innerVoidRadiusSquared) {
suggestedType = BiomeAPI.BiomeType.END_CENTER;
} else {
pos.setLocation(biomeX, biomeZ);
final BiomeAPI.BiomeType originalType = (dist <= (long) config.innerVoidRadiusSquared
? BiomeAPI.BiomeType.END_CENTER
: BiomeAPI.BiomeType.END_LAND);
suggestedType = originalType;
for (BiomeDecider decider : deciders) {
suggestedType = decider
.suggestType(originalType, suggestedType, maxHeight, posX, posY, posZ, biomeX, biomeY, biomeZ);
if (d > 0.25) {
suggestedType = BiomeAPI.BiomeType.END_LAND; //highlands
} else if (d >= -0.0625) {
suggestedType = BiomeAPI.BiomeType.END_LAND; //midlands
} else {
suggestedType = d < -0.21875
? BiomeAPI.BiomeType.END_VOID //small islands
: (config.withVoidBiomes
? BiomeAPI.BiomeType.END_BARRENS
: BiomeAPI.BiomeType.END_LAND); //barrens
}
}
final BiomeAPI.BiomeType originalType = suggestedType;
for (BiomeDecider decider : deciders) {
suggestedType = decider
.suggestType(originalType, suggestedType, d, maxHeight, posX, posY, posZ, biomeX, biomeY, biomeZ);
}
BiomePicker.ActualBiome result;
for (BiomeDecider decider : deciders) {
if (decider.canProvideBiome(suggestedType)) {