More features added to the Undergarden. Fixed a bug with trees in the Jade Cliffs.

This commit is contained in:
Matt Caughey 2013-05-19 13:34:19 -04:00
parent dadbb815bc
commit b74853da42
7 changed files with 98 additions and 16 deletions

View File

@ -28,6 +28,14 @@ Omega Essence: Mined from Omega Essence Ore. Used to turn Origin blocks bac
---
OVERWORLD BIOMES:
Hot Springs: Geysers, pools of water and lava, and decaying spruce trees.
Temperate Forest: Tall, decaying deciduous trees, thorns, and small bushes.
---
NETHER BIOMES:
Undergarden: Vines, nether wart, giant/small mushrooms, hellstem plant.

View File

@ -46,6 +46,7 @@ import biomesoplenty.worldgen.WorldGenMelon;
import biomesoplenty.worldgen.WorldGenMesa;
import biomesoplenty.worldgen.WorldGenMud;
import biomesoplenty.worldgen.WorldGenMycelium;
import biomesoplenty.worldgen.WorldGenNetherGrass;
import biomesoplenty.worldgen.WorldGenNetherVines;
import biomesoplenty.worldgen.WorldGenNetherWart;
import biomesoplenty.worldgen.WorldGenOasis;
@ -167,6 +168,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
protected WorldGenerator highCattailGen;
protected WorldGenerator outbackGen;
protected WorldGenerator canyonGrassGen;
protected WorldGenerator netherGrassGen;
protected WorldGenerator netherWartGen;
protected WorldGenerator steppeGen;
protected WorldGenerator thornGen;
@ -276,6 +278,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
/** The amount of tall grass to generate per chunk. */
protected int grassPerChunk;
protected int outbackPerChunk;
protected int netherGrassPerChunk;
protected int netherWartPerChunk;
protected int canyonGrassPerChunk;
protected int steppePerChunk;
@ -427,6 +430,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
this.highGrassGen = new WorldGenHighGrass(Blocks.foliage.get().blockID, 3);
this.highCattailGen = new WorldGenHighCattail(Blocks.plants.get().blockID, 9);
this.outbackGen = new WorldGenOutback(Blocks.foliage.get().blockID, 2);
this.netherGrassGen = new WorldGenNetherGrass(Block.tallGrass.blockID, 1);
this.netherWartGen = new WorldGenNetherWart(Block.netherStalk.blockID, 0);
this.canyonGrassGen = new WorldGenCanyonGrass(Blocks.foliage.get().blockID, 2);
this.steppeGen = new WorldGenSteppe(Block.sand.blockID, 0);
@ -495,6 +499,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
this.desertCactiPerChunk = 0;
this.highGrassPerChunk = 0;
this.outbackPerChunk = 0;
this.netherGrassPerChunk = 0;
this.netherWartPerChunk = 0;
this.canyonGrassPerChunk = 0;
this.steppePerChunk = 0;
@ -1074,6 +1079,14 @@ public class BiomeDecoratorBOP extends BiomeDecorator
this.outbackGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5);
}
for (var2 = 0; var2 < this.netherGrassPerChunk; ++var2)
{
var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
var4 = this.randomGenerator.nextInt(128);
var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
this.netherGrassGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5);
}
for (var2 = 0; var2 < this.netherWartPerChunk; ++var2)
{
var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8;

View File

@ -24,11 +24,14 @@ public class BiomeGenNetherGarden extends BiomeGenBase
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
this.topBlock = (byte)Block.netherrack.blockID;
this.fillerBlock = (byte)Block.netherrack.blockID;
this.customBiomeDecorator.treesPerChunk = 15;
this.customBiomeDecorator.netherVinesPerChunk = 80;
this.customBiomeDecorator.mushroomsPerChunk = 20;
this.customBiomeDecorator.bigMushroomsPerChunk = 10;
this.customBiomeDecorator.treesPerChunk = 60;
this.customBiomeDecorator.netherVinesPerChunk = 60;
this.customBiomeDecorator.mushroomsPerChunk = 30;
this.customBiomeDecorator.bigMushroomsPerChunk = 30;
this.customBiomeDecorator.netherWartPerChunk = 3;
this.customBiomeDecorator.netherGrassPerChunk = 8;
this.customBiomeDecorator.glowshroomsPerChunk = 3;
this.customBiomeDecorator.toadstoolsPerChunk = 5;
this.spawnableMonsterList.clear();
this.spawnableCreatureList.clear();
this.spawnableWaterCreatureList.clear();

View File

@ -104,13 +104,13 @@ public class BlockBOPMushroom extends BlockFlower
protected boolean canThisPlantGrowOnThisBlockID(int id, int metadata)
{
if (metadata == 0) //Toadstool
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID;
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID || id == Block.netherrack.blockID;
if (metadata == 1) //Portobello
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID | id == Blocks.holyGrass.get().blockID;
if (metadata == 2) //Blue Milk Cap
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID;
if (metadata == 3) //Glowshroom
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Block.stone.blockID;
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Block.stone.blockID || id == Block.netherrack.blockID;
else
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID;
}
@ -126,7 +126,7 @@ public class BlockBOPMushroom extends BlockFlower
switch (meta)
{
case 0: // Toadstool
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID;
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID || id == Block.netherrack.blockID;
case 1: // Portobello
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID;
@ -135,7 +135,7 @@ public class BlockBOPMushroom extends BlockFlower
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID;
case 3: // Glowshroom
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Block.stone.blockID;
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Block.stone.blockID || id == Block.netherrack.blockID;
default:
return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID;
@ -147,12 +147,7 @@ public class BlockBOPMushroom extends BlockFlower
@Override
public boolean canBlockStay(World world, int x, int y, int z)
{
if (world.getBlockId(x, y, z) != this.blockID)
return (world.getFullBlockLightValue(x, y, z) >= 8 || world.canBlockSeeTheSky(x, y, z))
&& this.canThisPlantGrowOnThisBlockID(world.getBlockId(x, y - 1, z));
else
return (world.getFullBlockLightValue(x, y, z) >= 8 || world.canBlockSeeTheSky(x, y, z))
&& this.canThisPlantGrowOnThisBlockID(world.getBlockId(x, y - 1, z), world.getBlockMetadata(x, y, z));
return this.canThisPlantGrowOnThisBlockID(world.getBlockId(x, y - 1, z), world.getBlockMetadata(x, y, z));
}
@Override

View File

@ -93,7 +93,7 @@ public class WorldGenJadeTree extends WorldGenerator
if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)])
{
this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 4);
this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 0);
}
}
}

View File

@ -0,0 +1,63 @@
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 WorldGenNetherGrass extends WorldGenerator
{
/** Stores ID for WorldGenTallGrass */
private int tallGrassID;
private int tallGrassMetadata;
public WorldGenNetherGrass(int par1, int par2)
{
this.tallGrassID = par1;
this.tallGrassMetadata = par2;
}
public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
{
int var11;
for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4)
{
;
}
for (int var7 = 0; var7 < 128; ++var7)
{
int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8);
int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4);
int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8);
int var99 = par2Random.nextInt(6);
if (par1World.isAirBlock(var8, var9, var10) && par1World.getBlockId(var8, var9 - 1, var10) == Block.netherrack.blockID)
{
par1World.setBlock(var8, var9 - 1, var10, Block.grass.blockID, 0, 2);
if (var99 == 0)
{
par1World.setBlock(var8, var9, var10, Block.mushroomRed.blockID, 0, 2);
}
if (var99 == 1)
{
par1World.setBlock(var8, var9, var10, Block.mushroomBrown.blockID, 0, 2);
}
if (var99 == 2)
{
par1World.setBlock(var8, var9, var10, Block.tallGrass.blockID, 0, 2);
}
}
}
return true;
}
}

View File

@ -85,7 +85,7 @@ public class WorldGenNetherMushroom extends WorldGenerator
{
j1 = par1World.getBlockId(par3, par4 - 1, par5);
if (j1 != Block.netherrack.blockID)
if (j1 != Block.netherrack.blockID && j1 != Block.grass.blockID)
{
return false;
}