Change Surface Rules later to catch Biomes added by FAPI
This commit is contained in:
parent
fc280cac4c
commit
e1883409fa
4 changed files with 46 additions and 2 deletions
|
@ -133,6 +133,12 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
|
|||
return biomeSource;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void injectSurfaceRules(RegistryAccess registryAccess, WorldGenSettings settings) {
|
||||
//END and NETHER are handled in #repairSettingsOnLoad
|
||||
SurfaceRuleUtil.injectSurfaceRules(settings, SurfaceRuleRegistry.NON_MANAGED_DIMENSIONS);
|
||||
}
|
||||
|
||||
private static Holder<NoiseGeneratorSettings> injectSurfaceRules(
|
||||
Holder<NoiseGeneratorSettings> reference,
|
||||
Holder<NoiseGeneratorSettings> settings,
|
||||
|
@ -236,7 +242,6 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
|
|||
public WorldGenSettings repairSettingsOnLoad(RegistryAccess registryAccess, WorldGenSettings settings) {
|
||||
settings = fixSettingsInCurrentWorld(registryAccess, LevelStem.NETHER, BuiltinDimensionTypes.NETHER, settings);
|
||||
settings = fixSettingsInCurrentWorld(registryAccess, LevelStem.END, BuiltinDimensionTypes.END, settings);
|
||||
SurfaceRuleUtil.injectSurfaceRules(settings, SurfaceRuleRegistry.NON_MANAGED_DIMENSIONS);
|
||||
return settings;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package org.betterx.worlds.together.mixin.common;
|
||||
|
||||
import org.betterx.worlds.together.world.WorldGenUtil;
|
||||
|
||||
import net.minecraft.core.RegistryAccess;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.level.progress.ChunkProgressListener;
|
||||
import net.minecraft.world.level.storage.WorldData;
|
||||
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
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;
|
||||
|
||||
/**
|
||||
* We need a hook here to alter surface rules after Fabric did add its biomes
|
||||
* in {@link net.fabricmc.fabric.mixin.biome.MixinMinecraftServer}
|
||||
*/
|
||||
@Mixin(value = MinecraftServer.class, priority = 500)
|
||||
public class MinecraftServerMixin {
|
||||
@Shadow
|
||||
@Final
|
||||
private RegistryAccess.Frozen registryHolder;
|
||||
@Shadow
|
||||
@Final
|
||||
protected WorldData worldData;
|
||||
|
||||
@Inject(method = "createLevels", at = @At("HEAD"))
|
||||
private void together_addSurfaceRules(ChunkProgressListener worldGenerationProgressListener, CallbackInfo ci) {
|
||||
WorldGenUtil.getWorldSettings().injectSurfaceRules(registryHolder, this.worldData.worldGenSettings());
|
||||
}
|
||||
}
|
|
@ -23,7 +23,6 @@ public class VanillaWorldPresetSettings extends WorldPresetSettings {
|
|||
|
||||
@Override
|
||||
public WorldGenSettings repairSettingsOnLoad(RegistryAccess registryAccess, WorldGenSettings settings) {
|
||||
SurfaceRuleUtil.injectSurfaceRules(settings, SurfaceRuleRegistry.ALL_DIMENSIONS);
|
||||
return settings;
|
||||
}
|
||||
|
||||
|
@ -31,4 +30,9 @@ public class VanillaWorldPresetSettings extends WorldPresetSettings {
|
|||
public BiomeSource addDatapackBiomes(BiomeSource biomeSource, Set<Holder<Biome>> datapackBiomes) {
|
||||
return biomeSource;
|
||||
}
|
||||
|
||||
|
||||
public void injectSurfaceRules(RegistryAccess registryAccess, WorldGenSettings settings) {
|
||||
SurfaceRuleUtil.injectSurfaceRules(settings, SurfaceRuleRegistry.ALL_DIMENSIONS);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,4 +52,5 @@ public abstract class WorldPresetSettings {
|
|||
public abstract Codec<? extends WorldPresetSettings> codec();
|
||||
public abstract WorldGenSettings repairSettingsOnLoad(RegistryAccess registryAccess, WorldGenSettings settings);
|
||||
public abstract BiomeSource addDatapackBiomes(BiomeSource biomeSource, Set<Holder<Biome>> datapackBiomes);
|
||||
public abstract void injectSurfaceRules(RegistryAccess registryAccess, WorldGenSettings settings);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue