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) @Mixin(value = MinecraftServer.class, priority = 2000)
public class MinecraftServerMixinLate { public class MinecraftServerMixinLate {
@Inject(at = @At("RETURN"), method = "<init>") @Inject(at = @At("RETURN"), method = "<init>")
private void appendGlobalFeatures( private void bcl_restoreBiomeSource(
Thread thread, Thread thread,
LevelStorageSource.LevelStorageAccess levelStorageAccess, LevelStorageSource.LevelStorageAccess levelStorageAccess,
PackRepository packRepository, 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.api.v2.levelgen.biomes.InternalBiomeAPI;
import org.betterx.bclib.interfaces.ChunkGeneratorAccessor; import org.betterx.bclib.interfaces.ChunkGeneratorAccessor;
import org.betterx.bclib.interfaces.NoiseGeneratorSettingsProvider; 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.world.WorldGenUtil;
import org.betterx.worlds.together.worldPreset.TogetherWorldPreset; import org.betterx.worlds.together.worldPreset.TogetherWorldPreset;
import org.betterx.worlds.together.worldPreset.settings.VanillaWorldPresetSettings;
import org.betterx.worlds.together.worldPreset.settings.WorldPresetSettings; import org.betterx.worlds.together.worldPreset.settings.WorldPresetSettings;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
@ -135,16 +134,15 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
@Override @Override
public void injectSurfaceRules(RegistryAccess registryAccess, WorldGenSettings settings) { public void injectSurfaceRules(RegistryAccess registryAccess, WorldGenSettings settings) {
//END and NETHER are handled in #repairSettingsOnLoad VanillaWorldPresetSettings.DEFAULT.injectSurfaceRules(registryAccess, settings);
SurfaceRuleUtil.injectSurfaceRules(settings, SurfaceRuleRegistry.NON_MANAGED_DIMENSIONS);
} }
private static Holder<NoiseGeneratorSettings> injectSurfaceRules( private static Holder<NoiseGeneratorSettings> buildGeneratorSettings(
Holder<NoiseGeneratorSettings> reference, Holder<NoiseGeneratorSettings> reference,
Holder<NoiseGeneratorSettings> settings, Holder<NoiseGeneratorSettings> settings,
BiomeSource biomeSource BiomeSource biomeSource
) { ) {
SurfaceRuleUtil.injectSurfaceRules(settings.value(), biomeSource); //SurfaceRuleUtil.injectSurfaceRules(settings.value(), biomeSource);
return settings; return settings;
// NoiseGeneratorSettings old = settings.value(); // NoiseGeneratorSettings old = settings.value();
// NoiseGeneratorSettings noise = new NoiseGeneratorSettings( // NoiseGeneratorSettings noise = new NoiseGeneratorSettings(
@ -216,7 +214,7 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
generator.bclib_getStructureSetsRegistry(), generator.bclib_getStructureSetsRegistry(),
noiseProvider.bclib_getNoises(), noiseProvider.bclib_getNoises(),
bs, bs,
injectSurfaceRules( buildGeneratorSettings(
referenceProvider.bclib_getNoiseGeneratorSettingHolders(), referenceProvider.bclib_getNoiseGeneratorSettingHolders(),
noiseProvider.bclib_getNoiseGeneratorSettingHolders(), noiseProvider.bclib_getNoiseGeneratorSettingHolders(),
bs bs
@ -233,9 +231,9 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
settings, settings,
referenceGenerator referenceGenerator
); );
} else { }/* else {
SurfaceRuleUtil.injectSurfaceRules(dimensionKey, loadedChunkGenerator); SurfaceRuleUtil.injectSurfaceRules(dimensionKey, loadedChunkGenerator);
} }*/
return settings; 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 * We need a hook here to alter surface rules after Fabric did add its biomes
* in {@link net.fabricmc.fabric.mixin.biome.MixinMinecraftServer} * in {@link net.fabricmc.fabric.mixin.biome.MixinMinecraftServer}
*/ */
@Mixin(value = MinecraftServer.class, priority = 500) @Mixin(value = MinecraftServer.class, priority = 2000)
public class MinecraftServerMixin { public class MinecraftServerMixin {
@Shadow @Shadow
@Final @Final
@ -27,7 +27,7 @@ public class MinecraftServerMixin {
@Final @Final
protected WorldData worldData; protected WorldData worldData;
@Inject(method = "createLevels", at = @At("HEAD")) @Inject(method = "createLevels", at = @At(value = "HEAD"))
private void together_addSurfaceRules(ChunkProgressListener worldGenerationProgressListener, CallbackInfo ci) { private void together_addSurfaceRules(ChunkProgressListener worldGenerationProgressListener, CallbackInfo ci) {
WorldGenUtil.getWorldSettings().injectSurfaceRules(registryHolder, this.worldData.worldGenSettings()); WorldGenUtil.getWorldSettings().injectSurfaceRules(registryHolder, this.worldData.worldGenSettings());
} }

View file

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