From 0d5ab5b419bfe5fa44074ba46de883df4ebaec24 Mon Sep 17 00:00:00 2001 From: Matt Caughey Date: Mon, 20 May 2013 20:49:30 -0400 Subject: [PATCH] More changes to Nether biomes. --- Planned Features.txt | 6 +- .../biomes/BiomeGenNetherGarden.java | 4 +- .../biomes/BiomeGenNetherLava.java | 1 + .../world/layer/BiomeLayerBiomes.java | 4 +- .../biomesoplenty/worldgen/WorldGenAsh.java | 3 +- .../worldgen/WorldGenNetherBush.java | 52 +++++++++++++++++ .../worldgen/WorldGenNetherGrass.java | 58 +++++++++++++++++++ .../worldgen/WorldGenSmolderingGrass.java | 3 +- 8 files changed, 121 insertions(+), 10 deletions(-) create mode 100644 src/minecraft/biomesoplenty/worldgen/WorldGenNetherBush.java diff --git a/Planned Features.txt b/Planned Features.txt index 23979d220..375c52d8c 100644 --- a/Planned Features.txt +++ b/Planned Features.txt @@ -40,15 +40,13 @@ Burning Brush: A smokey forest with burnt trees, smoldering grass, and ash. NETHER BIOMES: -Undergarden: Vines, nether wart, giant/small mushrooms, hellstem plant. +Undergarden: Vines, nether wart, giant/small mushrooms. Corrupted Sands: Soulsand, bramble, thorns. Phantasmagoric Inferno: Lots of lavafalls and lava ponds. -Aphotic Abyss: Large, empty pits that go into the void. Lots of mobs will spawn here. - -Parasitic Heap: A living, breathing biome where a parasitic block slowly engulfs netherrack. +Boneyard: Skulls, bones sticking out of the ground, large bone structures, and graves. --- diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenNetherGarden.java b/src/minecraft/biomesoplenty/biomes/BiomeGenNetherGarden.java index 9780b39db..c2934b84f 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenNetherGarden.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenNetherGarden.java @@ -24,7 +24,7 @@ public class BiomeGenNetherGarden extends BiomeGenBase this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; this.topBlock = (byte)Block.netherrack.blockID; this.fillerBlock = (byte)Block.netherrack.blockID; - this.customBiomeDecorator.treesPerChunk = 60; + this.customBiomeDecorator.treesPerChunk = 80; this.customBiomeDecorator.netherVinesPerChunk = 60; this.customBiomeDecorator.mushroomsPerChunk = 30; this.customBiomeDecorator.bigMushroomsPerChunk = 30; @@ -46,6 +46,6 @@ public class BiomeGenNetherGarden extends BiomeGenBase */ public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { - return new WorldGenNetherMushroom(); + return new WorldGenNetherMushroom(); } } diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenNetherLava.java b/src/minecraft/biomesoplenty/biomes/BiomeGenNetherLava.java index e4c683ece..a9a3a394a 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenNetherLava.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenNetherLava.java @@ -29,6 +29,7 @@ public class BiomeGenNetherLava extends BiomeGenBase this.fillerBlock = (byte)Block.netherrack.blockID; this.customBiomeDecorator.grassPerChunk = 15; this.customBiomeDecorator.netherLavaPerChunk = 20; + this.customBiomeDecorator.generateAsh = true; this.spawnableMonsterList.clear(); this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); diff --git a/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java b/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java index 785f60fda..0c8bfafe3 100644 --- a/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java +++ b/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java @@ -38,7 +38,7 @@ public class BiomeLayerBiomes extends BiomeLayer } if (Biomes.netherDesert.isPresent()) { - netherBiomes.add(Biomes.netherDesert.get()); + //netherBiomes.add(Biomes.netherDesert.get()); } if (Biomes.netherLava.isPresent()) { @@ -46,7 +46,7 @@ public class BiomeLayerBiomes extends BiomeLayer } if (Biomes.netherAbyss.isPresent()) { - netherBiomes.add(Biomes.netherAbyss.get()); + //netherBiomes.add(Biomes.netherAbyss.get()); } //PROMISED BIOMES diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenAsh.java b/src/minecraft/biomesoplenty/worldgen/WorldGenAsh.java index 67c009196..d93303988 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenAsh.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenAsh.java @@ -6,6 +6,7 @@ import biomesoplenty.api.Blocks; import biomesoplenty.configuration.BOPBlocks; import net.minecraft.util.MathHelper; +import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; @@ -64,7 +65,7 @@ public class WorldGenAsh extends WorldGenerator { double var45 = ((double)var44 + 0.5D - var24) / (var28 / 2.0D); - if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Blocks.ashStone.get().blockID) + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Blocks.ashStone.get().blockID || par1World.getBlockId(var38, var41, var44) == Block.netherrack.blockID) { par1World.setBlock(var38, var41, var44, this.minableBlockId); } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenNetherBush.java b/src/minecraft/biomesoplenty/worldgen/WorldGenNetherBush.java new file mode 100644 index 000000000..aa7701395 --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenNetherBush.java @@ -0,0 +1,52 @@ +package biomesoplenty.worldgen; + +import java.util.Random; + +import biomesoplenty.api.Blocks; +import biomesoplenty.configuration.BOPBlocks; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenNetherBush extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3, var4, var5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3, var4, var5); + int var99 = var1.getBlockId(var3, var4 + 1, var5); + + if (var6 != Block.netherrack.blockID && var99 != 0) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7, var4 - 1, var5 + var8) && var1.isAirBlock(var3 + var7, var4 - 2, var5 + var8)) + { + return false; + } + } + } + + var1.setBlock(var3, var4, var5, Block.netherrack.blockID); + this.setBlockAndMetadata(var1, var3, var4 + 1, var5, Block.wood.blockID,0); + this.setBlockAndMetadata(var1, var3, var4 + 2, var5, Block.wood.blockID,0); + this.setBlockAndMetadata(var1, var3 + 1, var4 + 2, var5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + 2, var5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + 2, var5 + 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + 2, var5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + 3, var5, Block.leaves.blockID, 0); + return true; + } + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenNetherGrass.java b/src/minecraft/biomesoplenty/worldgen/WorldGenNetherGrass.java index f1e49c327..6297135d9 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenNetherGrass.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenNetherGrass.java @@ -55,6 +55,64 @@ public class WorldGenNetherGrass extends WorldGenerator { par1World.setBlock(var8, var9, var10, Block.tallGrass.blockID, 0, 2); } + + if (var99 == 3) + { + par1World.setBlock(var8, var9, var10, Block.wood.blockID, 0, 2); + if (par1World.isAirBlock(var8, var9 + 1, var10)) + { + par1World.setBlock(var8, var9 + 1, var10, Block.wood.blockID, 0, 2); + } + if (par1World.isAirBlock(var8 + 1, var9 + 1, var10)) + { + par1World.setBlock(var8 + 1, var9 + 1, var10, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8 - 1, var9 + 1, var10)) + { + par1World.setBlock(var8 - 1, var9 + 1, var10, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8, var9 + 1, var10 + 1)) + { + par1World.setBlock(var8, var9 + 1, var10 + 1, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8, var9 + 1, var10 - 1)) + { + par1World.setBlock(var8, var9 + 1, var10 - 1, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8, var9 + 2, var10)) + { + par1World.setBlock(var8, var9 + 2, var10, Block.leaves.blockID, 0, 2); + } + } + + if (var99 == 4) + { + par1World.setBlock(var8, var9, var10, Block.wood.blockID, 0, 2); + if (par1World.isAirBlock(var8, var9 + 1, var10)) + { + par1World.setBlock(var8, var9 + 1, var10, Block.wood.blockID, 0, 2); + } + if (par1World.isAirBlock(var8 + 1, var9 + 1, var10)) + { + par1World.setBlock(var8 + 1, var9 + 1, var10, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8 - 1, var9 + 1, var10)) + { + par1World.setBlock(var8 - 1, var9 + 1, var10, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8, var9 + 1, var10 + 1)) + { + par1World.setBlock(var8, var9 + 1, var10 + 1, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8, var9 + 1, var10 - 1)) + { + par1World.setBlock(var8, var9 + 1, var10 - 1, Block.leaves.blockID, 0, 2); + } + if (par1World.isAirBlock(var8, var9 + 2, var10)) + { + par1World.setBlock(var8, var9 + 2, var10, Block.leaves.blockID, 0, 2); + } + } } } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java b/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java index 72a936b3f..b9794608d 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java @@ -5,6 +5,7 @@ import java.util.Random; import biomesoplenty.api.Blocks; import biomesoplenty.configuration.BOPBlocks; +import net.minecraft.block.Block; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; @@ -67,7 +68,7 @@ public class WorldGenSmolderingGrass extends WorldGenerator { double var45 = ((double)var44 + 0.5D - var24) / (var28 / 2.0D); - if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Blocks.ash.get().blockID) + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Blocks.ash.get().blockID || par1World.getBlockId(var38, var41, var44) == Block.netherrack.blockID) { par1World.setBlock(var38, var41, var44, this.minableBlockId, this.blockMeta, 2); }