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;
|
import ru.betterend.world.generator.BetterEndBiomeSource;
|
||||||
|
|
||||||
@Mixin(value = DimensionType.class, priority = 100)
|
@Mixin(value = DimensionType.class, priority = 100)
|
||||||
public class DimensionTypeMixin
|
public class DimensionTypeMixin {
|
||||||
{
|
|
||||||
@Inject(method = "createEndGenerator", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "createEndGenerator", at = @At("HEAD"), cancellable = true)
|
||||||
private static void replaceGenerator(Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, long seed, CallbackInfoReturnable<ChunkGenerator> info) {
|
private static void replaceGenerator(Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry, long seed, CallbackInfoReturnable<ChunkGenerator> info) {
|
||||||
info.setReturnValue(new NoiseChunkGenerator(new BetterEndBiomeSource(biomeRegistry, seed), seed, () -> {
|
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.resource.ServerResourceManager;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import ru.betterend.recipe.EndRecipeManager;
|
import ru.betterend.recipe.EndRecipeManager;
|
||||||
|
import ru.betterend.registry.EndBiomes;
|
||||||
|
|
||||||
@Mixin(MinecraftServer.class)
|
@Mixin(MinecraftServer.class)
|
||||||
public class MinecraftServerMixin {
|
public class MinecraftServerMixin {
|
||||||
|
@ -28,6 +29,7 @@ public class MinecraftServerMixin {
|
||||||
@Inject(method = "loadWorld", at = @At(value = "RETURN"), cancellable = true)
|
@Inject(method = "loadWorld", at = @At(value = "RETURN"), cancellable = true)
|
||||||
private void beOnLoadWorld(CallbackInfo info) {
|
private void beOnLoadWorld(CallbackInfo info) {
|
||||||
beInjectRecipes();
|
beInjectRecipes();
|
||||||
|
EndBiomes.initRegistry((MinecraftServer) (Object) this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void beInjectRecipes() {
|
private void beInjectRecipes() {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import com.google.common.collect.Maps;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.registry.BuiltinRegistries;
|
import net.minecraft.util.registry.BuiltinRegistries;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
|
@ -87,6 +88,16 @@ public class EndBiomes {
|
||||||
CLIENT.clear();
|
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.
|
* 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
|
* @param biome - {@link Biome} instance
|
||||||
|
|
|
@ -108,7 +108,7 @@ public class MountainPiece extends BasePiece {
|
||||||
pos.setZ(z);
|
pos.setZ(z);
|
||||||
dist = 1 - (float) Math.pow(dist / r2, 0.3);
|
dist = 1 - (float) Math.pow(dist / r2, 0.3);
|
||||||
int minY = map.get(x, z);
|
int minY = map.get(x, z);
|
||||||
if (minY < 56) {
|
if (minY < 10) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
pos.setY(minY);
|
pos.setY(minY);
|
||||||
|
@ -116,7 +116,7 @@ public class MountainPiece extends BasePiece {
|
||||||
pos.setY(pos.getY() - 1);
|
pos.setY(pos.getY() - 1);
|
||||||
}
|
}
|
||||||
minY = pos.getY();
|
minY = pos.getY();
|
||||||
if (minY > 56) {
|
if (minY > 10) {
|
||||||
float maxY = dist * height * getHeightClamp(world, 8, px, pz);
|
float maxY = dist * height * getHeightClamp(world, 8, px, pz);
|
||||||
if (maxY > 0) {
|
if (maxY > 0) {
|
||||||
maxY *= (float) noise1.eval(px * 0.05, pz * 0.05) * 0.3F + 0.7F;
|
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