Fixed Generation Bugs
This commit is contained in:
parent
277dcc04b7
commit
c66a1a1824
5 changed files with 26 additions and 11 deletions
|
@ -69,11 +69,16 @@ public class BetterEnd implements ModInitializer {
|
||||||
|
|
||||||
BiomeAPI.registerEndBiomeModification((biomeID, biome) -> {
|
BiomeAPI.registerEndBiomeModification((biomeID, biome) -> {
|
||||||
if (!biomeID.equals(Biomes.THE_VOID.location())) {
|
if (!biomeID.equals(Biomes.THE_VOID.location())) {
|
||||||
EndStructures.addBiomeStructures(biomeID, biome);
|
|
||||||
EndFeatures.addBiomeFeatures(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) {
|
public static ResourceLocation makeID(String path) {
|
||||||
return new ResourceLocation(MOD_ID, path);
|
return new ResourceLocation(MOD_ID, path);
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
package ru.betterend.mixin.common;
|
package ru.betterend.mixin.common;
|
||||||
|
|
||||||
import net.minecraft.world.level.levelgen.Aquifer;
|
import net.minecraft.world.level.levelgen.*;
|
||||||
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.blending.Blender;
|
import net.minecraft.world.level.levelgen.blending.Blender;
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
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.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
import ru.bclib.BCLib;
|
||||||
import ru.betterend.interfaces.BETargetChecker;
|
import ru.betterend.interfaces.BETargetChecker;
|
||||||
import ru.betterend.world.generator.TerrainGenerator;
|
import ru.betterend.world.generator.TerrainGenerator;
|
||||||
|
|
||||||
|
@ -23,8 +19,19 @@ public class NoiseChunkMixin implements BETargetChecker {
|
||||||
private boolean be_isEndGenerator;
|
private boolean be_isEndGenerator;
|
||||||
|
|
||||||
@Inject(method = "<init>*", at = @At("TAIL"))
|
@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) {
|
private void be_onNoiseChunkInit(int i,
|
||||||
be_isEndGenerator = BETargetChecker.class.cast(noiseGeneratorSettings).be_isTarget();
|
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
|
@Override
|
||||||
|
|
|
@ -15,7 +15,7 @@ public abstract class SlimeMixin extends Entity implements ISlime {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
protected void setSize(int size, boolean heal) {
|
public void setSize(int size, boolean heal) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -83,7 +83,7 @@ public class EndBiomes {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void onWorldLoad(ServerLevel level, long seed, Registry<Biome> registry) {
|
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);
|
CAVE_BIOMES = new BiomePicker(registry);
|
||||||
registry.stream()
|
registry.stream()
|
||||||
.filter(biome -> registry.getResourceKey(biome).isPresent())
|
.filter(biome -> registry.getResourceKey(biome).isPresent())
|
||||||
|
@ -94,6 +94,7 @@ public class EndBiomes {
|
||||||
.filter(bcl -> bcl != null)
|
.filter(bcl -> bcl != null)
|
||||||
.forEach(bcl -> CAVE_BIOMES.addBiome(bcl));
|
.forEach(bcl -> CAVE_BIOMES.addBiome(bcl));
|
||||||
|
|
||||||
|
CAVE_BIOMES.rebuild();
|
||||||
caveBiomeMap = null;
|
caveBiomeMap = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,8 @@ import java.util.Random;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.level.levelgen.LegacyRandomSource;
|
import net.minecraft.world.level.levelgen.LegacyRandomSource;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.impl.biome.TheEndBiomeData;
|
||||||
|
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
public class TerrainGenerator {
|
public class TerrainGenerator {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue