Tweaks to Surface Rule application

This commit is contained in:
Frank 2022-06-22 01:08:12 +02:00
parent e1883409fa
commit ec764f99e6
4 changed files with 11 additions and 12 deletions

View file

@ -20,7 +20,7 @@ import java.net.Proxy;
@Mixin(value = MinecraftServer.class, priority = 2000)
public class MinecraftServerMixinLate {
@Inject(at = @At("RETURN"), method = "<init>")
private void appendGlobalFeatures(
private void bcl_restoreBiomeSource(
Thread thread,
LevelStorageSource.LevelStorageAccess levelStorageAccess,
PackRepository packRepository,

View file

@ -8,10 +8,9 @@ import org.betterx.bclib.api.v2.levelgen.LevelGenUtil;
import org.betterx.bclib.api.v2.levelgen.biomes.InternalBiomeAPI;
import org.betterx.bclib.interfaces.ChunkGeneratorAccessor;
import org.betterx.bclib.interfaces.NoiseGeneratorSettingsProvider;
import org.betterx.worlds.together.surfaceRules.SurfaceRuleRegistry;
import org.betterx.worlds.together.surfaceRules.SurfaceRuleUtil;
import org.betterx.worlds.together.world.WorldGenUtil;
import org.betterx.worlds.together.worldPreset.TogetherWorldPreset;
import org.betterx.worlds.together.worldPreset.settings.VanillaWorldPresetSettings;
import org.betterx.worlds.together.worldPreset.settings.WorldPresetSettings;
import com.mojang.serialization.Codec;
@ -135,16 +134,15 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
@Override
public void injectSurfaceRules(RegistryAccess registryAccess, WorldGenSettings settings) {
//END and NETHER are handled in #repairSettingsOnLoad
SurfaceRuleUtil.injectSurfaceRules(settings, SurfaceRuleRegistry.NON_MANAGED_DIMENSIONS);
VanillaWorldPresetSettings.DEFAULT.injectSurfaceRules(registryAccess, settings);
}
private static Holder<NoiseGeneratorSettings> injectSurfaceRules(
private static Holder<NoiseGeneratorSettings> buildGeneratorSettings(
Holder<NoiseGeneratorSettings> reference,
Holder<NoiseGeneratorSettings> settings,
BiomeSource biomeSource
) {
SurfaceRuleUtil.injectSurfaceRules(settings.value(), biomeSource);
//SurfaceRuleUtil.injectSurfaceRules(settings.value(), biomeSource);
return settings;
// NoiseGeneratorSettings old = settings.value();
// NoiseGeneratorSettings noise = new NoiseGeneratorSettings(
@ -216,7 +214,7 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
generator.bclib_getStructureSetsRegistry(),
noiseProvider.bclib_getNoises(),
bs,
injectSurfaceRules(
buildGeneratorSettings(
referenceProvider.bclib_getNoiseGeneratorSettingHolders(),
noiseProvider.bclib_getNoiseGeneratorSettingHolders(),
bs
@ -233,9 +231,9 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
settings,
referenceGenerator
);
} else {
}/* else {
SurfaceRuleUtil.injectSurfaceRules(dimensionKey, loadedChunkGenerator);
}
}*/
return settings;
}

View file

@ -18,7 +18,7 @@ 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)
@Mixin(value = MinecraftServer.class, priority = 2000)
public class MinecraftServerMixin {
@Shadow
@Final
@ -27,7 +27,7 @@ public class MinecraftServerMixin {
@Final
protected WorldData worldData;
@Inject(method = "createLevels", at = @At("HEAD"))
@Inject(method = "createLevels", at = @At(value = "HEAD"))
private void together_addSurfaceRules(ChunkProgressListener worldGenerationProgressListener, CallbackInfo ci) {
WorldGenUtil.getWorldSettings().injectSurfaceRules(registryHolder, this.worldData.worldGenSettings());
}

View file

@ -7,6 +7,7 @@
"BuiltinRegistriesMixin",
"DiggerItemAccessor",
"MainMixin",
"MinecraftServerMixin",
"NoiseGeneratorSettingsMixin",
"PrimaryLevelDataMixin",
"RegistryAccessMixin",