Search in sources :

Example 1 with NoiseGeneratorSettingsAccess

use of potionstudios.byg.mixin.access.NoiseGeneratorSettingsAccess in project BYG by AOCAWOL.

the class AddSurfaceRulesUtil method appendSurfaceRule.

public static void appendSurfaceRule(WorldData worldData, ResourceKey<LevelStem> levelStemKey, SurfaceRules.RuleSource ruleSource) {
    if (worldData == null) {
        // For some reason mods can make world data null as seen in some user crash logs, this makes that issue clearer for us.
        throw new NullPointerException("Minecraft server's world data is null, this should be impossible...");
    }
    LevelStem levelStem = worldData.worldGenSettings().dimensions().get(levelStemKey);
    if (OverworldBiomeConfig.getConfig(false).generateOverworld()) {
        ChunkGenerator chunkGenerator = levelStem.generator();
        if (chunkGenerator != null && chunkGenerator instanceof NoiseBasedChunkGenerator) {
            Object noiseGeneratorSettings = ((NoiseBasedChunkGeneratorAccess) chunkGenerator).byg_getSettings().value();
            ((NoiseGeneratorSettingsAccess) noiseGeneratorSettings).byg_setSurfaceRule(SurfaceRules.sequence(ruleSource, ((NoiseGeneratorSettings) noiseGeneratorSettings).surfaceRule()));
        }
    }
}
Also used : LevelStem(net.minecraft.world.level.dimension.LevelStem) NoiseGeneratorSettingsAccess(potionstudios.byg.mixin.access.NoiseGeneratorSettingsAccess) ChunkGenerator(net.minecraft.world.level.chunk.ChunkGenerator) NoiseBasedChunkGenerator(net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator) NoiseBasedChunkGenerator(net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator) NoiseGeneratorSettings(net.minecraft.world.level.levelgen.NoiseGeneratorSettings)

Aggregations

ChunkGenerator (net.minecraft.world.level.chunk.ChunkGenerator)1 LevelStem (net.minecraft.world.level.dimension.LevelStem)1 NoiseBasedChunkGenerator (net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator)1 NoiseGeneratorSettings (net.minecraft.world.level.levelgen.NoiseGeneratorSettings)1 NoiseGeneratorSettingsAccess (potionstudios.byg.mixin.access.NoiseGeneratorSettingsAccess)1