Nether biome placement is now not-garbage
This commit is contained in:
parent
d35095a2d0
commit
a2b377f2d5
2 changed files with 14 additions and 35 deletions
|
@ -32,7 +32,7 @@ public class BOPDimensionType extends DimensionType
|
|||
|
||||
private static ChunkGenerator bopNetherGenerator(long seed)
|
||||
{
|
||||
return new NoiseChunkGenerator(BOPNetherBiomeProvider.Preset.NETHER.biomeSource(seed), seed, DimensionSettings.Preset.NETHER.settings());
|
||||
return new NoiseChunkGenerator(new BOPNetherBiomeProvider(seed), seed, DimensionSettings.Preset.NETHER.settings());
|
||||
}
|
||||
|
||||
public static SimpleRegistry<Dimension> bopDimensions(long seed)
|
||||
|
|
|
@ -7,57 +7,36 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.common.world;
|
||||
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.mojang.datafixers.util.Pair;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.provider.BiomeProvider;
|
||||
import net.minecraft.world.biome.provider.NetherBiomeProvider;
|
||||
import net.minecraft.world.gen.layer.Layer;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.function.LongFunction;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class BOPNetherBiomeProvider extends NetherBiomeProvider
|
||||
{
|
||||
private final Layer noiseBiomeLayer;
|
||||
|
||||
public BOPNetherBiomeProvider(long seed, List<Pair<Biome.Attributes, Biome>> parameters, Optional<NetherBiomeProvider.Preset> preset)
|
||||
public BOPNetherBiomeProvider(long seed)
|
||||
{
|
||||
super(seed, parameters, preset);
|
||||
super(seed, Lists.newArrayList(), Optional.empty());
|
||||
this.noiseBiomeLayer = BOPNetherLayerUtil.createGenLayers(seed);
|
||||
}
|
||||
|
||||
public static NetherBiomeProvider bopNether(long seed)
|
||||
@Override
|
||||
public Biome getNoiseBiome(int x, int y, int z)
|
||||
{
|
||||
List<Biome> biomeList = Lists.newArrayList(Biomes.NETHER_WASTES, Biomes.SOUL_SAND_VALLEY, Biomes.CRIMSON_FOREST, Biomes.WARPED_FOREST, Biomes.BASALT_DELTAS);
|
||||
|
||||
/* Add bop biomes to the biome list. */
|
||||
for (Biome biome : BOPClimates.NETHER.getLandBiomes().stream().map((entry) -> entry.biome).collect(Collectors.toList()))
|
||||
{
|
||||
biomeList.add(biome);
|
||||
}
|
||||
|
||||
return new BOPNetherBiomeProvider(seed, biomeList.stream().flatMap((biome) -> biome.optimalParameters().map((attribute) -> Pair.of(attribute, biome))).collect(ImmutableList.toImmutableList()), Optional.of(Preset.NETHER));
|
||||
return this.noiseBiomeLayer.get(x, z);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public Biome getNoiseBiome(int x, int y, int z)
|
||||
// {
|
||||
// return this.noiseBiomeLayer.get(x, z);
|
||||
// }
|
||||
|
||||
public static class Preset extends NetherBiomeProvider.Preset
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public BiomeProvider withSeed(long seed)
|
||||
{
|
||||
public Preset(ResourceLocation location, LongFunction<NetherBiomeProvider> biomeProvider)
|
||||
{
|
||||
super(location, biomeProvider);
|
||||
}
|
||||
|
||||
public static final NetherBiomeProvider.Preset NETHER = new NetherBiomeProvider.Preset(new ResourceLocation("nether"), (seed) -> BOPNetherBiomeProvider.bopNether(seed) );
|
||||
};
|
||||
return new BOPNetherBiomeProvider(seed);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue