From 47bd4d85ac279bcf16aa49fe363c1357358c8dd5 Mon Sep 17 00:00:00 2001 From: Matt Caughey Date: Fri, 27 Sep 2013 02:41:54 -0400 Subject: [PATCH] Added a redwood shrub thing to Redwood Forests --- .../biomes/BiomeDecoratorBOP.java | 13 ++++ .../biomes/BiomeGenRedwoodForest.java | 6 +- .../worldgen/WorldGenRedwoodShrub.java | 69 +++++++++++++++++++ .../worldgen/tree/WorldGenRedwoodTree.java | 8 +-- .../worldgen/tree/WorldGenRedwoodTree2.java | 8 +-- 5 files changed, 94 insertions(+), 10 deletions(-) create mode 100644 common/biomesoplenty/worldgen/WorldGenRedwoodShrub.java diff --git a/common/biomesoplenty/biomes/BiomeDecoratorBOP.java b/common/biomesoplenty/biomes/BiomeDecoratorBOP.java index 39f5d2ea0..2e783e17e 100644 --- a/common/biomesoplenty/biomes/BiomeDecoratorBOP.java +++ b/common/biomesoplenty/biomes/BiomeDecoratorBOP.java @@ -90,6 +90,7 @@ import biomesoplenty.worldgen.WorldGenPotatoes; import biomesoplenty.worldgen.WorldGenPumpkinAlt; import biomesoplenty.worldgen.WorldGenQuagmire; import biomesoplenty.worldgen.WorldGenQuicksand; +import biomesoplenty.worldgen.WorldGenRedwoodShrub; import biomesoplenty.worldgen.WorldGenReedBOP; import biomesoplenty.worldgen.WorldGenShield; import biomesoplenty.worldgen.WorldGenShortKelp; @@ -234,6 +235,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator public WorldGenerator bluebellGen; public WorldGenerator minersDelightGen; public WorldGenerator icyIrisGen; + public WorldGenerator redwoodShrubGen; public WorldGenerator boneSpineGen; public WorldGenerator boneSpine2Gen; @@ -331,6 +333,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator public int minersDelightPerChunk; public int icyIrisPerChunk; public int waterReedsPerChunk; + public int redwoodShrubsPerChunk; public int boneSpinesPerChunk; public int boneSpines2PerChunk; @@ -536,6 +539,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator waterlilyGen = new WorldGenWaterlily(); algaeGen = new WorldGenAlgae(); waterReedGen = new WorldGenWaterReeds(); + redwoodShrubGen = new WorldGenRedwoodShrub(0,0); pitGen = new WorldGenPit(Blocks.ash.get().blockID); waterlilyPerChunk = 0; lilyflowersPerChunk = 0; @@ -628,6 +632,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator minersDelightPerChunk = 2; icyIrisPerChunk = 0; waterReedsPerChunk = 0; + redwoodShrubsPerChunk = 0; generateLakes = true; generateAsh = false; generateMycelium = false; @@ -1545,6 +1550,14 @@ public class BiomeDecoratorBOP extends BiomeDecorator var5 = chunk_Z + randomGenerator.nextInt(16) + 8; highCattailGen.generate(currentWorld, randomGenerator, var3, var4, var5); } + + for (var2 = 0; var2 < redwoodShrubsPerChunk; ++var2) + { + var3 = chunk_X + randomGenerator.nextInt(16) + 8; + var4 = randomGenerator.nextInt(50) + 70; + var5 = chunk_Z + randomGenerator.nextInt(16) + 8; + redwoodShrubGen.generate(currentWorld, randomGenerator, var3, var4, var5); + } //Added doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, DEAD_BUSH); diff --git a/common/biomesoplenty/biomes/BiomeGenRedwoodForest.java b/common/biomesoplenty/biomes/BiomeGenRedwoodForest.java index 2ee15247c..7ba2a32ef 100644 --- a/common/biomesoplenty/biomes/BiomeGenRedwoodForest.java +++ b/common/biomesoplenty/biomes/BiomeGenRedwoodForest.java @@ -9,6 +9,7 @@ import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenTallGrass; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.configuration.configfile.BOPConfigurationMain; +import biomesoplenty.worldgen.WorldGenRedwoodShrub; import biomesoplenty.worldgen.realtree.WorldGenRealRedwood; import biomesoplenty.worldgen.realtree.WorldGenRealRedwood2; import biomesoplenty.worldgen.tree.WorldGenRedwoodTree; @@ -23,12 +24,13 @@ public class BiomeGenRedwoodForest extends BiomeGenBase super(par1); theBiomeDecorator = new BiomeDecoratorBOP(this); customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; - customBiomeDecorator.treesPerChunk = 6; + customBiomeDecorator.treesPerChunk = 50; customBiomeDecorator.grassPerChunk = 16; customBiomeDecorator.bushesPerChunk = 4; customBiomeDecorator.berryBushesPerChunk = 1; customBiomeDecorator.wheatGrassPerChunk = 7; customBiomeDecorator.shrubsPerChunk = 10; + customBiomeDecorator.redwoodShrubsPerChunk = 100; customBiomeDecorator.generatePumpkins = false; } @@ -43,7 +45,7 @@ public class BiomeGenRedwoodForest extends BiomeGenBase return par1Random.nextInt(4) == 0 ? new WorldGenRealRedwood() : (par1Random.nextInt(2) == 0 ? new WorldGenShrub(0,0) : new WorldGenRealRedwood2()); } - return par1Random.nextInt(4) == 0 ? new WorldGenRedwoodTree(false) : (par1Random.nextInt(2) == 0 ? new WorldGenShrub(0,0) : new WorldGenRedwoodTree2(false)); + return par1Random.nextInt(4) == 0 ? new WorldGenRedwoodTree(false) : (par1Random.nextInt(8) == 0 ? new WorldGenShrub(0,0) : new WorldGenRedwoodTree2(false)); } @Override diff --git a/common/biomesoplenty/worldgen/WorldGenRedwoodShrub.java b/common/biomesoplenty/worldgen/WorldGenRedwoodShrub.java new file mode 100644 index 000000000..0dda152e7 --- /dev/null +++ b/common/biomesoplenty/worldgen/WorldGenRedwoodShrub.java @@ -0,0 +1,69 @@ +package biomesoplenty.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import biomesoplenty.api.Blocks; + +public class WorldGenRedwoodShrub extends WorldGenerator +{ + private int field_76527_a; + private int field_76526_b; + + public WorldGenRedwoodShrub(int par1, int par2) + { + field_76526_b = par1; + field_76527_a = par2; + } + + @Override + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var15; + + for (boolean var6 = false; ((var15 = par1World.getBlockId(par3, par4, par5)) == 0 || var15 == Blocks.leavesColorized.get().blockID) && par4 > 0; --par4) + { + ; + } + + int var7 = par1World.getBlockId(par3, par4, par5); + int var77 = par1World.getBlockMetadata(par3, par4, par5); + + if (var7 == Blocks.logs3.get().blockID) + { + if (var77 == 0) + { + if (par1World.isAirBlock(par3 - 1, par4, par5) || par1World.isAirBlock(par3 + 1, par4, par5) || par1World.isAirBlock(par3, par4, par5 - 1) || par1World.isAirBlock(par3, par4, par5 + 1)) + { + ++par4; + this.setBlockAndMetadata(par1World, par3, par4, par5, Blocks.logs3.get().blockID,0); + + for (int var8 = par4; var8 <= par4 + 1; ++var8) + { + int var9 = var8 - par4; + int var10 = 2 - var9; + + for (int var11 = par3 - var10; var11 <= par3 + var10; ++var11) + { + int var12 = var11 - par3; + + for (int var13 = par5 - var10; var13 <= par5 + var10; ++var13) + { + int var14 = var13 - par5; + + if ((Math.abs(var12) != var10 || Math.abs(var14) != var10 || par2Random.nextInt(2) != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var11, var8, var13)]) + { + this.setBlockAndMetadata(par1World, var11, var8, var13, Blocks.leavesColorized.get().blockID, 3); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree.java b/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree.java index 03704e864..8a5ce70bf 100644 --- a/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree.java +++ b/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree.java @@ -24,7 +24,7 @@ public class WorldGenRedwoodTree extends WorldGenerator public WorldGenRedwoodTree(boolean par1) { - this(par1, 30, 0, 0, false); + this(par1, 40, 0, 0, false); } public WorldGenRedwoodTree(boolean par1, int par2, int par3, int par4, boolean par5) @@ -62,16 +62,16 @@ public class WorldGenRedwoodTree extends WorldGenerator for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) { - var9 = 1; + var9 = 7; if (var8 == par4) { - var9 = 0; + var9 = 7; } if (var8 >= par4 + 1 + var6 - 2) { - var9 = 2; + var9 = 8; } for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) diff --git a/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree2.java b/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree2.java index e8694c199..faf3f78c2 100644 --- a/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree2.java +++ b/common/biomesoplenty/worldgen/tree/WorldGenRedwoodTree2.java @@ -39,7 +39,7 @@ public class WorldGenRedwoodTree2 extends WorldGenerator @Override public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) { - int var6 = par2Random.nextInt(10) + minTreeHeight; + int var6 = par2Random.nextInt(15) + minTreeHeight; boolean var7 = true; if (par4 >= 1 && par4 + var6 + 1 <= 256) @@ -58,16 +58,16 @@ public class WorldGenRedwoodTree2 extends WorldGenerator for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) { - var9 = 1; + var9 = 5; if (var8 == par4) { - var9 = 0; + var9 = 5; } if (var8 >= par4 + 1 + var6 - 2) { - var9 = 2; + var9 = 6; } for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10)