Fixed Generation Bugs

This commit is contained in:
Frank 2022-05-17 22:11:14 +02:00
parent 277dcc04b7
commit c66a1a1824
5 changed files with 26 additions and 11 deletions

View file

@ -69,11 +69,16 @@ public class BetterEnd implements ModInitializer {
BiomeAPI.registerEndBiomeModification((biomeID, biome) -> {
if (!biomeID.equals(Biomes.THE_VOID.location())) {
EndStructures.addBiomeStructures(biomeID, biome);
EndFeatures.addBiomeFeatures(biomeID, biome);
}
});
BiomeAPI.onFinishingEndBiomeTags((biomeID, biome) -> {
if (!biomeID.equals(Biomes.THE_VOID.location())) {
EndStructures.addBiomeStructures(biomeID, biome);
}
});
}
public static ResourceLocation makeID(String path) {
return new ResourceLocation(MOD_ID, path);

View file

@ -1,11 +1,6 @@
package ru.betterend.mixin.common;
import net.minecraft.world.level.levelgen.Aquifer;
import net.minecraft.world.level.levelgen.DensityFunctions;
import net.minecraft.world.level.levelgen.NoiseChunk;
import net.minecraft.world.level.levelgen.NoiseGeneratorSettings;
import net.minecraft.world.level.levelgen.NoiseRouter;
import net.minecraft.world.level.levelgen.NoiseSettings;
import net.minecraft.world.level.levelgen.*;
import net.minecraft.world.level.levelgen.blending.Blender;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
@ -13,6 +8,7 @@ import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.bclib.BCLib;
import ru.betterend.interfaces.BETargetChecker;
import ru.betterend.world.generator.TerrainGenerator;
@ -23,8 +19,19 @@ public class NoiseChunkMixin implements BETargetChecker {
private boolean be_isEndGenerator;
@Inject(method = "<init>*", at = @At("TAIL"))
private void be_onNoiseChunkInit(int i, int j, int k, NoiseRouter noiseRouter, int l, int m, DensityFunctions.BeardifierOrMarker beardifierOrMarker, NoiseGeneratorSettings noiseGeneratorSettings, Aquifer.FluidPicker fluidPicker, Blender blender, CallbackInfo ci) {
be_isEndGenerator = BETargetChecker.class.cast(noiseGeneratorSettings).be_isTarget();
private void be_onNoiseChunkInit(int i,
RandomState randomState,
int j,
int k,
NoiseSettings noiseSettings,
DensityFunctions.BeardifierOrMarker beardifierOrMarker,
NoiseGeneratorSettings noiseGeneratorSettings,
Aquifer.FluidPicker fluidPicker,
Blender blender,
CallbackInfo ci) {
var o = BETargetChecker.class.cast(noiseGeneratorSettings);
if (o!= null) be_isEndGenerator = o.be_isTarget();
else BCLib.LOGGER.warning(noiseGeneratorSettings + " has unknown implementation.");
}
@Override

View file

@ -15,7 +15,7 @@ public abstract class SlimeMixin extends Entity implements ISlime {
}
@Shadow
protected void setSize(int size, boolean heal) {
public void setSize(int size, boolean heal) {
}
@Override

View file

@ -83,7 +83,7 @@ public class EndBiomes {
}
private static void onWorldLoad(ServerLevel level, long seed, Registry<Biome> registry) {
if (CAVE_BIOMES.biomeRegistry != registry) {
if (CAVE_BIOMES==null || CAVE_BIOMES.biomeRegistry != registry) {
CAVE_BIOMES = new BiomePicker(registry);
registry.stream()
.filter(biome -> registry.getResourceKey(biome).isPresent())
@ -94,6 +94,7 @@ public class EndBiomes {
.filter(bcl -> bcl != null)
.forEach(bcl -> CAVE_BIOMES.addBiome(bcl));
CAVE_BIOMES.rebuild();
caveBiomeMap = null;
}

View file

@ -17,6 +17,8 @@ import java.util.Random;
import net.minecraft.util.RandomSource;
import net.minecraft.world.level.levelgen.LegacyRandomSource;
import net.fabricmc.fabric.impl.biome.TheEndBiomeData;
import java.util.concurrent.locks.ReentrantLock;
public class TerrainGenerator {