Registry init fix
This commit is contained in:
parent
488608d2a0
commit
3efdfcb575
4 changed files with 16 additions and 4 deletions
|
@ -14,8 +14,7 @@ import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
|
|||
import ru.betterend.world.generator.BetterEndBiomeSource;
|
||||
|
||||
@Mixin(value = DimensionType.class, priority = 100)
|
||||
public class DimensionTypeMixin
|
||||
{
|
||||
public class DimensionTypeMixin {
|
||||
@Inject(method = "createEndGenerator", at = @At("HEAD"), cancellable = true)
|
||||
private static void replaceGenerator(Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, long seed, CallbackInfoReturnable<ChunkGenerator> info) {
|
||||
info.setReturnValue(new NoiseChunkGenerator(new BetterEndBiomeSource(biomeRegistry, seed), seed, () -> {
|
||||
|
|
|
@ -14,6 +14,7 @@ import net.fabricmc.loader.api.FabricLoader;
|
|||
import net.minecraft.resource.ServerResourceManager;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import ru.betterend.recipe.EndRecipeManager;
|
||||
import ru.betterend.registry.EndBiomes;
|
||||
|
||||
@Mixin(MinecraftServer.class)
|
||||
public class MinecraftServerMixin {
|
||||
|
@ -28,6 +29,7 @@ public class MinecraftServerMixin {
|
|||
@Inject(method = "loadWorld", at = @At(value = "RETURN"), cancellable = true)
|
||||
private void beOnLoadWorld(CallbackInfo info) {
|
||||
beInjectRecipes();
|
||||
EndBiomes.initRegistry((MinecraftServer) (Object) this);
|
||||
}
|
||||
|
||||
private void beInjectRecipes() {
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.google.common.collect.Maps;
|
|||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
|
@ -87,6 +88,16 @@ public class EndBiomes {
|
|||
CLIENT.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize registry if it was not initialized in world generation (when using mods/datapacks, that overrides the End generation)
|
||||
* @param server
|
||||
*/
|
||||
public static void initRegistry(MinecraftServer server) {
|
||||
if (biomeRegistry == null) {
|
||||
biomeRegistry = server.getRegistryManager().get(Registry.BIOME_KEY);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers new {@link EndBiome} and adds it to picker, can be used to add existing mod biomes into the End.
|
||||
* @param biome - {@link Biome} instance
|
||||
|
|
|
@ -108,7 +108,7 @@ public class MountainPiece extends BasePiece {
|
|||
pos.setZ(z);
|
||||
dist = 1 - (float) Math.pow(dist / r2, 0.3);
|
||||
int minY = map.get(x, z);
|
||||
if (minY < 56) {
|
||||
if (minY < 10) {
|
||||
continue;
|
||||
}
|
||||
pos.setY(minY);
|
||||
|
@ -116,7 +116,7 @@ public class MountainPiece extends BasePiece {
|
|||
pos.setY(pos.getY() - 1);
|
||||
}
|
||||
minY = pos.getY();
|
||||
if (minY > 56) {
|
||||
if (minY > 10) {
|
||||
float maxY = dist * height * getHeightClamp(world, 8, px, pz);
|
||||
if (maxY > 0) {
|
||||
maxY *= (float) noise1.eval(px * 0.05, pz * 0.05) * 0.3F + 0.7F;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue