More Nether biome stuff

This commit is contained in:
Matt Caughey 2013-05-18 18:23:21 -04:00
parent c9a1076551
commit d9f7e919ee
11 changed files with 376 additions and 18 deletions

View File

@ -1,34 +1,40 @@
GENERATION:
Jacaranda Tree: Purple-leafed trees that generate in the Extreme Hills, Heathland, and Mystic Grove.
Pine Tree: Pine trees that generate in the Canyon, Jade Cliffs, and Mountain.
---
BLOCKS:
Rock: Small rock that has a random size. Uses the vanilla stone texture.
Pebbles: Small rocks scattered around forest biomes.
Pinecone: Pinecone that grows under spruce and fir leaves. No use yet.
Pinecone: Pinecone that grows under spruce and fir leaves.
Origin Blocks: Planks, Gravel, Cobblestone, Mossy Cobblestone, Bricks, Block of Diamond, Block of Gold, Block of Iron, Lapis Lazuli Block
Originator: Used to turn certain blocks into previous forms. Requires Origin Essence to use.
Origin Blocks: Planks, Gravel, Cobblestone, Mossy Cobblestone, Bricks, Block of Diamond, Block of Gold, Block of Iron, Lapis Lazuli Block.
Alpha Essence Ore: Found in the Promised Land. Requires an Amethyst pickaxe to mine.
Omega Essence Ore: Found in the Nether. Requires and Amethyst pickaxe to mine.
Omega Essence Ore: Found in the Nether. Requires an Amethyst pickaxe to mine.
---
ITEMS:
Alpha Essence: Mined from Alpha Essence Ore.
Alpha Essence: Mined from Alpha Essence Ore. Used to turn certain blocks into their Origin counterparts.
Omega Essence: Mined from Omega Essence Ore.
Omega Essence: Mined from Omega Essence Ore. Used to turn Origin blocks back to their normal counterparts.
---
NETHER BIOMES:
Undergarden: Bramble, nether wart, giant/small mushrooms, hellstem plant, glowpines.
Undergarden: Vines, nether wart, giant/small mushrooms, hellstem plant.
Corrupted Sands: Soulsand, thorns, dead bushes.
Corrupted Sands: Soulsand, bramble, thorns.
Phantasmagoric Inferno: Lots of lavafalls and lava ponds.
Phantasmagoric Inferno: Lots of lavafalls and lava ponds.
Aphotic Abyss: Large, empty pits that go into the void. Lots of mobs will spawn here.
@ -38,9 +44,9 @@ Parasitic Heap: A living, breathing biome where a parasitic block slowly eng
BEACH BIOMES:
Gravel Beach: A beach covered in gravel
Gravel Beach: A beach covered in gravel.
Lush Beach: A beach with dune grass, and patches of leaves and grass
Lush Beach: A beach with dune grass, and patches of leaves and grass.
Forested Beach: A beach with trees.
@ -50,7 +56,7 @@ Rocky Beach: A beach with jagged rocks.
OCEAN BIOMES:
Coral Reef: Different types of coral, with reef stone on the ocean floor.
Coral Reef: Different types of coral, with reef stone on the ocean floor.
Kelp Forest: Lots and lots of kelp with varying heights.

View File

@ -47,6 +47,7 @@ import biomesoplenty.worldgen.WorldGenMesa;
import biomesoplenty.worldgen.WorldGenMud;
import biomesoplenty.worldgen.WorldGenMycelium;
import biomesoplenty.worldgen.WorldGenNetherVines;
import biomesoplenty.worldgen.WorldGenNetherWart;
import biomesoplenty.worldgen.WorldGenOasis;
import biomesoplenty.worldgen.WorldGenOutback;
import biomesoplenty.worldgen.WorldGenPit;
@ -166,6 +167,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
protected WorldGenerator highCattailGen;
protected WorldGenerator outbackGen;
protected WorldGenerator canyonGrassGen;
protected WorldGenerator netherWartGen;
protected WorldGenerator steppeGen;
protected WorldGenerator thornGen;
protected WorldGenerator toadstoolGen;
@ -274,6 +276,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
/** The amount of tall grass to generate per chunk. */
protected int grassPerChunk;
protected int outbackPerChunk;
protected int netherWartPerChunk;
protected int canyonGrassPerChunk;
protected int steppePerChunk;
protected int highGrassPerChunk;
@ -424,6 +427,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.netherWartGen = new WorldGenNetherWart(Block.netherStalk.blockID, 0);
this.canyonGrassGen = new WorldGenCanyonGrass(Blocks.foliage.get().blockID, 2);
this.steppeGen = new WorldGenSteppe(Block.sand.blockID, 0);
this.carrotGen = new WorldGenCarrots(Block.tallGrass.blockID, 0);
@ -491,6 +495,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
this.desertCactiPerChunk = 0;
this.highGrassPerChunk = 0;
this.outbackPerChunk = 0;
this.netherWartPerChunk = 0;
this.canyonGrassPerChunk = 0;
this.steppePerChunk = 0;
this.promisedWillowPerChunk = 0;
@ -1069,6 +1074,14 @@ public class BiomeDecoratorBOP extends BiomeDecorator
this.outbackGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5);
}
for (var2 = 0; var2 < this.netherWartPerChunk; ++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.netherWartGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5);
}
for (var2 = 0; var2 < this.canyonGrassPerChunk; ++var2)
{
var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8;

View File

@ -2,6 +2,7 @@ package biomesoplenty.biomes;
import biomesoplenty.configuration.BOPConfiguration;
import net.minecraft.block.Block;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.SpawnListEntry;
import net.minecraft.entity.monster.EntityGhast;
@ -17,6 +18,8 @@ public class BiomeGenNetherAbyss extends BiomeGenBase
super(par1);
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
this.topBlock = (byte)Block.netherrack.blockID;
this.fillerBlock = (byte)Block.netherrack.blockID;
this.spawnableMonsterList.clear();
this.spawnableCreatureList.clear();
this.spawnableWaterCreatureList.clear();

View File

@ -2,6 +2,7 @@ package biomesoplenty.biomes;
import biomesoplenty.configuration.BOPConfiguration;
import net.minecraft.block.Block;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.SpawnListEntry;
import net.minecraft.entity.monster.EntityGhast;
@ -17,6 +18,8 @@ public class BiomeGenNetherDesert extends BiomeGenBase
super(par1);
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
this.topBlock = (byte)Block.slowSand.blockID;
this.fillerBlock = (byte)Block.slowSand.blockID;
this.spawnableMonsterList.clear();
this.spawnableCreatureList.clear();
this.spawnableWaterCreatureList.clear();

View File

@ -5,6 +5,7 @@ import java.util.Random;
import biomesoplenty.configuration.BOPConfiguration;
import biomesoplenty.worldgen.WorldGenNetherMushroom;
import net.minecraft.block.Block;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.SpawnListEntry;
import net.minecraft.world.gen.feature.WorldGenerator;
@ -21,9 +22,13 @@ public class BiomeGenNetherGarden extends BiomeGenBase
super(par1);
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
this.customBiomeDecorator.treesPerChunk = 3;
this.customBiomeDecorator.netherVinesPerChunk = 40;
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.netherWartPerChunk = 3;
this.spawnableMonsterList.clear();
this.spawnableCreatureList.clear();
this.spawnableWaterCreatureList.clear();

View File

@ -1,15 +1,23 @@
package biomesoplenty.biomes;
import biomesoplenty.configuration.BOPConfiguration;
import biomesoplenty.worldgen.WorldGenLavaSpring;
import biomesoplenty.worldgen.WorldGenDeadlands;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.SpawnListEntry;
import net.minecraft.world.gen.feature.WorldGenerator;
import net.minecraft.entity.monster.EntityGhast;
import net.minecraft.entity.monster.EntityMagmaCube;
import net.minecraft.entity.monster.EntityPigZombie;
public class BiomeGenNetherLava extends BiomeGenBase
{
private WorldGenerator theWorldGenerator;
private BiomeDecoratorBOP customBiomeDecorator;
public BiomeGenNetherLava(int par1)
@ -17,6 +25,10 @@ public class BiomeGenNetherLava extends BiomeGenBase
super(par1);
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
this.topBlock = (byte)Block.netherrack.blockID;
this.fillerBlock = (byte)Block.netherrack.blockID;
this.customBiomeDecorator.grassPerChunk = 15;
this.customBiomeDecorator.lavaLakesPerChunk = 20;
this.spawnableMonsterList.clear();
this.spawnableCreatureList.clear();
this.spawnableWaterCreatureList.clear();
@ -24,5 +36,31 @@ public class BiomeGenNetherLava extends BiomeGenBase
this.spawnableMonsterList.add(new SpawnListEntry(EntityGhast.class, 50, 4, 4));
this.spawnableMonsterList.add(new SpawnListEntry(EntityPigZombie.class, 100, 4, 4));
this.spawnableMonsterList.add(new SpawnListEntry(EntityMagmaCube.class, 1, 4, 4));
this.theWorldGenerator = new WorldGenLavaSpring(Block.lavaMoving.blockID, 8);
}
/**
* Gets a WorldGen appropriate for this biome.
*/
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return new WorldGenDeadlands();
}
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 100;
int var6;
int var7;
int var8;
for (var5 = 0; var5 < 5; ++var5)
{
var6 = par3 + par2Random.nextInt(16);
var7 = 64 + par2Random.nextInt(64);
var8 = par4 + par2Random.nextInt(16);
this.theWorldGenerator.generate(par1World, par2Random, var6, var7, var8);
}
}
}

View File

@ -19,7 +19,7 @@ public class WorldGenDeadlands extends WorldGenerator
int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4);
int var9 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8);
if (par1World.isAirBlock(var7, var8, var9) && par1World.getBlockId(var7, var8 - 1, var9) == Blocks.ash.get().blockID)
if (par1World.isAirBlock(var7, var8, var9) && par1World.getBlockId(var7, var8 - 1, var9) == Blocks.ash.get().blockID || par1World.getBlockId(var7, var8 - 1, var9) == Block.netherrack.blockID)
{
par1World.setBlock(var7, var8, var9, Block.fire.blockID);
}

View File

@ -0,0 +1,81 @@
package biomesoplenty.worldgen;
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;
public class WorldGenLavaSpring extends WorldGenerator
{
/** The block ID of the ore to be placed using this generator. */
private int minableBlockId;
/** The number of blocks to generate. */
private int numberOfBlocks;
public WorldGenLavaSpring(int par1, int par2)
{
this.minableBlockId = par1;
this.numberOfBlocks = par2;
}
public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
{
float var6 = par2Random.nextFloat() * (float)Math.PI;
double var7 = (double)((float)(par3 + 8) + MathHelper.sin(var6) * (float)this.numberOfBlocks / 8.0F);
double var9 = (double)((float)(par3 + 8) - MathHelper.sin(var6) * (float)this.numberOfBlocks / 8.0F);
double var11 = (double)((float)(par5 + 8) + MathHelper.cos(var6) * (float)this.numberOfBlocks / 8.0F);
double var13 = (double)((float)(par5 + 8) - MathHelper.cos(var6) * (float)this.numberOfBlocks / 8.0F);
double var15 = (double)(par4 + par2Random.nextInt(3) - 2);
double var17 = (double)(par4 + par2Random.nextInt(3) - 2);
for (int var19 = 0; var19 <= this.numberOfBlocks; ++var19)
{
double var20 = var7 + (var9 - var7) * (double)var19 / (double)this.numberOfBlocks;
double var22 = var15 + (var17 - var15) * (double)var19 / (double)this.numberOfBlocks;
double var24 = var11 + (var13 - var11) * (double)var19 / (double)this.numberOfBlocks;
double var26 = par2Random.nextDouble() * (double)this.numberOfBlocks / 16.0D;
double var28 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * var26 + 1.0D;
double var30 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * var26 + 1.0D;
int var32 = MathHelper.floor_double(var20 - var28 / 2.0D);
int var33 = MathHelper.floor_double(var22 - var30 / 2.0D);
int var34 = MathHelper.floor_double(var24 - var28 / 2.0D);
int var35 = MathHelper.floor_double(var20 + var28 / 2.0D);
int var36 = MathHelper.floor_double(var22 + var30 / 2.0D);
int var37 = MathHelper.floor_double(var24 + var28 / 2.0D);
for (int var38 = var32; var38 <= var35; ++var38)
{
double var39 = ((double)var38 + 0.5D - var20) / (var28 / 2.0D);
if (var39 * var39 < 1.0D)
{
for (int var41 = var33; var41 <= var36; ++var41)
{
double var42 = ((double)var41 + 0.5D - var22) / (var30 / 2.0D);
if (var39 * var39 + var42 * var42 < 1.0D)
{
for (int var44 = var34; var44 <= var37; ++var44)
{
double var45 = ((double)var44 + 0.5D - var24) / (var28 / 2.0D);
if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Block.netherrack.blockID)
{
par1World.setBlock(var38, var41, var44, this.minableBlockId);
}
}
}
}
}
}
}
return true;
}
}

View File

@ -27,7 +27,8 @@ public class WorldGenNetherMushroom extends WorldGenerator
public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
{
int l = par2Random.nextInt(2);
//int l = par2Random.nextInt(2);
int l = 1;
if (this.mushroomType >= 0)
{

View File

@ -61,6 +61,46 @@ public class WorldGenNetherVines extends WorldGenerator
{
var1.setBlock(var3 - 1, var4 - 5, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 6, var5))
{
var1.setBlock(var3 - 1, var4 - 6, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 7, var5))
{
var1.setBlock(var3 - 1, var4 - 7, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 8, var5))
{
var1.setBlock(var3 - 1, var4 - 8, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 9, var5))
{
var1.setBlock(var3 - 1, var4 - 9, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 10, var5))
{
var1.setBlock(var3 - 1, var4 - 10, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 11, var5))
{
var1.setBlock(var3 - 1, var4 - 11, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 12, var5))
{
var1.setBlock(var3 - 1, var4 - 12, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 13, var5))
{
var1.setBlock(var3 - 1, var4 - 13, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 14, var5))
{
var1.setBlock(var3 - 1, var4 - 14, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 - 1, var4 - 15, var5))
{
var1.setBlock(var3 - 1, var4 - 15, var5, Block.vine.blockID, 8, 2);
}
if (var1.isAirBlock(var3 + 1, var4, var5))
{
@ -106,6 +146,46 @@ public class WorldGenNetherVines extends WorldGenerator
{
var1.setBlock(var3 + 1, var4 - 10, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 11, var5))
{
var1.setBlock(var3 + 1, var4 - 11, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 12, var5))
{
var1.setBlock(var3 + 1, var4 - 12, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 13, var5))
{
var1.setBlock(var3 + 1, var4 - 13, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 14, var5))
{
var1.setBlock(var3 + 1, var4 - 14, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 15, var5))
{
var1.setBlock(var3 + 1, var4 - 15, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 16, var5))
{
var1.setBlock(var3 + 1, var4 - 16, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 17, var5))
{
var1.setBlock(var3 + 1, var4 - 17, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 18, var5))
{
var1.setBlock(var3 + 1, var4 - 18, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 19, var5))
{
var1.setBlock(var3 + 1, var4 - 19, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3 + 1, var4 - 20, var5))
{
var1.setBlock(var3 + 1, var4 - 20, var5, Block.vine.blockID, 2, 2);
}
if (var1.isAirBlock(var3, var4, var5 - 1))
{
@ -171,6 +251,46 @@ public class WorldGenNetherVines extends WorldGenerator
{
var1.setBlock(var3, var4 - 15, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 16, var5 - 1))
{
var1.setBlock(var3, var4 - 16, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 17, var5 - 1))
{
var1.setBlock(var3, var4 - 17, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 18, var5 - 1))
{
var1.setBlock(var3, var4 - 18, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 19, var5 - 1))
{
var1.setBlock(var3, var4 - 19, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 20, var5 - 1))
{
var1.setBlock(var3, var4 - 20, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 21, var5 - 1))
{
var1.setBlock(var3, var4 - 21, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 22, var5 - 1))
{
var1.setBlock(var3, var4 - 22, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 23, var5 - 1))
{
var1.setBlock(var3, var4 - 23, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 24, var5 - 1))
{
var1.setBlock(var3, var4 - 24, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4 - 25, var5 - 1))
{
var1.setBlock(var3, var4 - 25, var5 - 1, Block.vine.blockID, 1, 2);
}
if (var1.isAirBlock(var3, var4, var5 + 1))
{
@ -256,6 +376,46 @@ public class WorldGenNetherVines extends WorldGenerator
{
var1.setBlock(var3, var4 - 20, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 21, var5 + 1))
{
var1.setBlock(var3, var4 - 21, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 22, var5 + 1))
{
var1.setBlock(var3, var4 - 22, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 23, var5 + 1))
{
var1.setBlock(var3, var4 - 23, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 24, var5 + 1))
{
var1.setBlock(var3, var4 - 24, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 25, var5 + 1))
{
var1.setBlock(var3, var4 - 25, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 26, var5 + 1))
{
var1.setBlock(var3, var4 - 26, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 27, var5 + 1))
{
var1.setBlock(var3, var4 - 27, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 28, var5 + 1))
{
var1.setBlock(var3, var4 - 28, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 29, var5 + 1))
{
var1.setBlock(var3, var4 - 29, var5 + 1, Block.vine.blockID, 4, 2);
}
if (var1.isAirBlock(var3, var4 - 30, var5 + 1))
{
var1.setBlock(var3, var4 - 30, var5 + 1, Block.vine.blockID, 4, 2);
}
return true;
}

View File

@ -0,0 +1,48 @@
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 WorldGenNetherWart extends WorldGenerator
{
/** Stores ID for WorldGenTallGrass */
private int tallGrassID;
private int tallGrassMetadata;
public WorldGenNetherWart(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);
if (par1World.isAirBlock(var8, var9, var10) && par1World.getBlockId(var8, var9 - 1, var10) == Block.netherrack.blockID)
{
par1World.setBlock(var8, var9 - 1, var10, Block.slowSand.blockID, 0, 2);
par1World.setBlock(var8, var9, var10, Block.netherStalk.blockID, 0, 2);
}
}
return true;
}
}