From 6fe11a828bc5e664994bb50931c576e14b7b81ae Mon Sep 17 00:00:00 2001 From: Forstride Date: Thu, 20 Apr 2017 09:56:56 -0400 Subject: [PATCH] More work on Nether biomes --- .../biomesoplenty/api/enums/BOPClimates.java | 2 +- .../biome/nether/BiomeCorruptedSands.java | 4 ++-- .../common/biome/nether/BiomeFungiForest.java | 17 ++++++++++------- .../nether/BiomePhantasmagoricInferno.java | 13 +++++++++++++ .../common/biome/nether/BiomeUndergarden.java | 8 ++++---- .../common/biome/nether/BiomeVisceralHeap.java | 2 +- .../common/world/BiomeProviderBOPHell.java | 2 +- 7 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/main/java/biomesoplenty/api/enums/BOPClimates.java b/src/main/java/biomesoplenty/api/enums/BOPClimates.java index b2612a45c..70df71665 100644 --- a/src/main/java/biomesoplenty/api/enums/BOPClimates.java +++ b/src/main/java/biomesoplenty/api/enums/BOPClimates.java @@ -93,7 +93,7 @@ public enum BOPClimates { BOPClimates.SAVANNA.addBiome(20, Biomes.SAVANNA); BOPClimates.HOT_DESERT.addBiome(30, Biomes.DESERT).addBiome(10, Biomes.MESA_CLEAR_ROCK); BOPClimates.WASTELAND.addBiome(1, Biomes.DESERT); - BOPClimates.HELL.addBiome(35, Biomes.HELL); + BOPClimates.HELL.addBiome(40, Biomes.HELL); } private static BOPClimates[] values = BOPClimates.values(); diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java index 031003ca3..6c86eb22a 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeCorruptedSands.java @@ -30,8 +30,8 @@ public class BiomeCorruptedSands extends BOPHellBiome // splatter top blocks IBlockPosQuery emptyNetherrack = BlockQuery.buildAnd().withAirAbove().states(this.topBlock).create(); - this.addGenerator("soulsand_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(0.7F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptyNetherrack).with(Blocks.SOUL_SAND.getDefaultState()).create()); + this.addGenerator("soulsand_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(17.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptyNetherrack).with(Blocks.SOUL_SAND.getDefaultState()).create()); - this.addGenerator("thorns", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(2.0F).with(BOPPlants.THORN).create()); + this.addGenerator("thorns", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(7.0F).with(BOPPlants.THORN).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); } } diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java index bef129fe2..75b589052 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeFungiForest.java @@ -10,6 +10,7 @@ package biomesoplenty.common.biome.nether; import java.util.Random; import biomesoplenty.api.block.BOPBlocks; +import biomesoplenty.api.block.IBlockPosQuery; import biomesoplenty.api.config.IConfigObj; import biomesoplenty.api.enums.BOPClimates; import biomesoplenty.api.enums.BOPFlowers; @@ -20,6 +21,7 @@ import biomesoplenty.common.block.BlockBOPGrass; import biomesoplenty.common.block.BlockBOPLeaves; import biomesoplenty.common.block.BlockBOPMushroom; import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod; +import biomesoplenty.common.util.block.BlockQuery; import biomesoplenty.common.world.generator.GeneratorBigMushroom; import biomesoplenty.common.world.generator.GeneratorDoubleFlora; import biomesoplenty.common.world.generator.GeneratorFlora; @@ -49,12 +51,13 @@ public class BiomeFungiForest extends BOPHellBiome this.addWeight(BOPClimates.HELL, 20); // shrooms - this.addGenerator("glowshroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.1F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.GLOWSHROOM).scatterYMethod(ScatterYMethod.BELOW_GROUND).create()); - this.addGenerator("flat_mushroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.2F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.FLAT_MUSHROOM).scatterYMethod(ScatterYMethod.BELOW_GROUND).create()); - this.addGenerator("toadstools", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.1F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.TOADSTOOL).scatterYMethod(ScatterYMethod.BELOW_GROUND).create()); - this.addGenerator("red_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.RED_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.BELOW_GROUND).create()); - this.addGenerator("brown_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.BROWN_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.BELOW_GROUND).create()); - this.addGenerator("big_brown_mushroom", GeneratorStage.BIG_SHROOM,(new GeneratorBigMushroom.Builder()).amountPerChunk(0.1F).mushroomType(GeneratorBigMushroom.BigMushroomType.BROWN).create()); - this.addGenerator("big_red_mushroom", GeneratorStage.BIG_SHROOM,(new GeneratorBigMushroom.Builder()).amountPerChunk(0.5F).mushroomType(GeneratorBigMushroom.BigMushroomType.RED).create()); + IBlockPosQuery surfaceBlocks = BlockQuery.buildOr().states(this.topBlock).create(); + this.addGenerator("glowshroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(2.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.GLOWSHROOM).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + this.addGenerator("flat_mushroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.FLAT_MUSHROOM).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + this.addGenerator("toadstools", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.TOADSTOOL).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + this.addGenerator("red_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(5.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.RED_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + this.addGenerator("brown_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(2.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.BROWN_MUSHROOM.getDefaultState()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + this.addGenerator("big_brown_mushroom", GeneratorStage.BIG_SHROOM,(new GeneratorBigMushroom.Builder()).amountPerChunk(2.0F).mushroomType(GeneratorBigMushroom.BigMushroomType.BROWN).scatterYMethod(ScatterYMethod.NETHER_SURFACE).placeOn(surfaceBlocks).create()); + this.addGenerator("big_red_mushroom", GeneratorStage.BIG_SHROOM,(new GeneratorBigMushroom.Builder()).amountPerChunk(15.0F).mushroomType(GeneratorBigMushroom.BigMushroomType.RED).scatterYMethod(ScatterYMethod.NETHER_SURFACE).placeOn(surfaceBlocks).create()); } } diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java b/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java index e87059ad9..be748350e 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomePhantasmagoricInferno.java @@ -10,9 +10,13 @@ package biomesoplenty.common.biome.nether; import biomesoplenty.api.block.BOPBlocks; import biomesoplenty.api.block.IBlockPosQuery; import biomesoplenty.api.enums.BOPClimates; +import biomesoplenty.api.enums.BOPPlants; import biomesoplenty.api.generation.GeneratorStage; import biomesoplenty.common.block.BlockBOPGrass; +import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod; import biomesoplenty.common.util.block.BlockQuery; +import biomesoplenty.common.world.generator.GeneratorFlora; +import biomesoplenty.common.world.generator.GeneratorLakes; import biomesoplenty.common.world.generator.GeneratorSplatter; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; @@ -27,5 +31,14 @@ public class BiomePhantasmagoricInferno extends BOPHellBiome this.topBlock = BOPBlocks.ash_block.getDefaultState(); this.fillerBlock = BOPBlocks.ash_block.getDefaultState(); + + // lava lakes + this.addGenerator("lava_lakes", GeneratorStage.SAND, (new GeneratorLakes.Builder()).amountPerChunk(2.0F).waterLakeForBiome(this).liquid(Blocks.LAVA).frozenLiquid((IBlockState)null).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + + // splatter top blocks + IBlockPosQuery emptyAsh = BlockQuery.buildAnd().withAirAbove().states(this.topBlock).create(); + this.addGenerator("magma_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(4.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptyAsh).with(Blocks.MAGMA.getDefaultState()).create()); + + this.addGenerator("fire", GeneratorStage.FLOWERS,(new GeneratorFlora.Builder()).amountPerChunk(5.0F).with(Blocks.FIRE.getDefaultState()).placeOn(emptyAsh).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); } } diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java index ba34cdf4f..a8b60eecb 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeUndergarden.java @@ -38,7 +38,7 @@ public class BiomeUndergarden extends BOPHellBiome // splatter top blocks IBlockPosQuery emptyNetherrack = BlockQuery.buildAnd().states(this.topBlock).withAirAbove().create(); IBlockState overgrownNetherrack = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK); - this.addGenerator("overgrown_netherrack_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(14.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptyNetherrack).with(overgrownNetherrack).create()); + this.addGenerator("overgrown_netherrack_splatter", GeneratorStage.SAND, (new GeneratorSplatter.Builder()).amountPerChunk(15.0F).generationAttempts(128).scatterYMethod(ScatterYMethod.NETHER_SURFACE).replace(emptyNetherrack).with(overgrownNetherrack).create()); // flowers GeneratorWeighted flowerGenerator = new GeneratorWeighted(1.0F); @@ -47,14 +47,14 @@ public class BiomeUndergarden extends BOPHellBiome // trees IBlockPosQuery surfaceBlocks = BlockQuery.buildOr().states(this.topBlock, overgrownNetherrack).create(); - GeneratorWeighted treeGenerator = new GeneratorWeighted(7.0F); + GeneratorWeighted treeGenerator = new GeneratorWeighted(9.0F); this.addGenerator("trees", GeneratorStage.TREE, treeGenerator); treeGenerator.add("twiglet", 3, (new GeneratorTwigletTree.Builder()).scatterYMethod(ScatterYMethod.NETHER_SURFACE).placeOn(surfaceBlocks).minHeight(2).maxHeight(2).log(BlockBOPLog.paging.getVariantState(BOPWoods.HELLBARK)).leaves(BlockBOPLeaves.paging.getVariantState(BOPTrees.HELLBARK)).create()); // shrooms this.addGenerator("flat_mushroom", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.FLAT_MUSHROOM).create()); - this.addGenerator("toadstools", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.5F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.TOADSTOOL).create()); - this.addGenerator("red_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(0.6F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.RED_MUSHROOM.getDefaultState()).create()); + this.addGenerator("toadstools", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.5F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPMushroom.MushroomType.TOADSTOOL).create()); + this.addGenerator("red_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(2.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.RED_MUSHROOM.getDefaultState()).create()); this.addGenerator("brown_mushrooms", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(1.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(Blocks.BROWN_MUSHROOM.getDefaultState()).create()); } } diff --git a/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java b/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java index 995a4083b..0e5f2a459 100644 --- a/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java +++ b/src/main/java/biomesoplenty/common/biome/nether/BiomeVisceralHeap.java @@ -55,7 +55,7 @@ public class BiomeVisceralHeap extends BOPHellBiome this.wallBlock = BOPBlocks.flesh.getDefaultState(); // blood pools - this.addGenerator("blood_pools", GeneratorStage.SAND, (new GeneratorLakes.Builder()).amountPerChunk(0.5F).waterLakeForBiome(this).liquid(BOPBlocks.blood).frozenLiquid((IBlockState)null).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); + this.addGenerator("blood_pools", GeneratorStage.SAND, (new GeneratorLakes.Builder()).amountPerChunk(1.0F).waterLakeForBiome(this).liquid(BOPBlocks.blood).frozenLiquid((IBlockState)null).scatterYMethod(ScatterYMethod.NETHER_SURFACE).create()); this.addGenerator("eyebulbs", GeneratorStage.FLOWERS, (new GeneratorDoubleFlora.Builder()).amountPerChunk(1.0F).scatterYMethod(ScatterYMethod.NETHER_SURFACE).with(BlockBOPDoublePlant.DoublePlantType.EYEBULB).create()); } diff --git a/src/main/java/biomesoplenty/common/world/BiomeProviderBOPHell.java b/src/main/java/biomesoplenty/common/world/BiomeProviderBOPHell.java index 7941cccff..c77500da1 100644 --- a/src/main/java/biomesoplenty/common/world/BiomeProviderBOPHell.java +++ b/src/main/java/biomesoplenty/common/world/BiomeProviderBOPHell.java @@ -59,7 +59,7 @@ public class BiomeProviderBOPHell extends BiomeProvider public static GenLayer[] setupBOPGenLayers(long worldSeed, BOPWorldSettings settings) { - int biomeSize = settings.biomeSize.getValue(); + int biomeSize = 3; // the nether doesn't have oceans, so make it all land GenLayer mainBranch = new GenLayerIslandBOP(1L, 1);