More Nether biome stuff
This commit is contained in:
parent
c9a1076551
commit
d9f7e919ee
11 changed files with 376 additions and 18 deletions
|
@ -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:
|
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
|
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.
|
|
||||||
|
|
||||||
Alpha Essence Ore: Found in the Promised Land. Requires an Amethyst pickaxe to mine.
|
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:
|
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:
|
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.
|
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:
|
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.
|
Forested Beach: A beach with trees.
|
||||||
|
|
||||||
|
@ -50,7 +56,7 @@ Rocky Beach: A beach with jagged rocks.
|
||||||
|
|
||||||
OCEAN BIOMES:
|
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.
|
Kelp Forest: Lots and lots of kelp with varying heights.
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ import biomesoplenty.worldgen.WorldGenMesa;
|
||||||
import biomesoplenty.worldgen.WorldGenMud;
|
import biomesoplenty.worldgen.WorldGenMud;
|
||||||
import biomesoplenty.worldgen.WorldGenMycelium;
|
import biomesoplenty.worldgen.WorldGenMycelium;
|
||||||
import biomesoplenty.worldgen.WorldGenNetherVines;
|
import biomesoplenty.worldgen.WorldGenNetherVines;
|
||||||
|
import biomesoplenty.worldgen.WorldGenNetherWart;
|
||||||
import biomesoplenty.worldgen.WorldGenOasis;
|
import biomesoplenty.worldgen.WorldGenOasis;
|
||||||
import biomesoplenty.worldgen.WorldGenOutback;
|
import biomesoplenty.worldgen.WorldGenOutback;
|
||||||
import biomesoplenty.worldgen.WorldGenPit;
|
import biomesoplenty.worldgen.WorldGenPit;
|
||||||
|
@ -166,6 +167,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
|
||||||
protected WorldGenerator highCattailGen;
|
protected WorldGenerator highCattailGen;
|
||||||
protected WorldGenerator outbackGen;
|
protected WorldGenerator outbackGen;
|
||||||
protected WorldGenerator canyonGrassGen;
|
protected WorldGenerator canyonGrassGen;
|
||||||
|
protected WorldGenerator netherWartGen;
|
||||||
protected WorldGenerator steppeGen;
|
protected WorldGenerator steppeGen;
|
||||||
protected WorldGenerator thornGen;
|
protected WorldGenerator thornGen;
|
||||||
protected WorldGenerator toadstoolGen;
|
protected WorldGenerator toadstoolGen;
|
||||||
|
@ -274,6 +276,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
|
||||||
/** The amount of tall grass to generate per chunk. */
|
/** The amount of tall grass to generate per chunk. */
|
||||||
protected int grassPerChunk;
|
protected int grassPerChunk;
|
||||||
protected int outbackPerChunk;
|
protected int outbackPerChunk;
|
||||||
|
protected int netherWartPerChunk;
|
||||||
protected int canyonGrassPerChunk;
|
protected int canyonGrassPerChunk;
|
||||||
protected int steppePerChunk;
|
protected int steppePerChunk;
|
||||||
protected int highGrassPerChunk;
|
protected int highGrassPerChunk;
|
||||||
|
@ -424,6 +427,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
|
||||||
this.highGrassGen = new WorldGenHighGrass(Blocks.foliage.get().blockID, 3);
|
this.highGrassGen = new WorldGenHighGrass(Blocks.foliage.get().blockID, 3);
|
||||||
this.highCattailGen = new WorldGenHighCattail(Blocks.plants.get().blockID, 9);
|
this.highCattailGen = new WorldGenHighCattail(Blocks.plants.get().blockID, 9);
|
||||||
this.outbackGen = new WorldGenOutback(Blocks.foliage.get().blockID, 2);
|
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.canyonGrassGen = new WorldGenCanyonGrass(Blocks.foliage.get().blockID, 2);
|
||||||
this.steppeGen = new WorldGenSteppe(Block.sand.blockID, 0);
|
this.steppeGen = new WorldGenSteppe(Block.sand.blockID, 0);
|
||||||
this.carrotGen = new WorldGenCarrots(Block.tallGrass.blockID, 0);
|
this.carrotGen = new WorldGenCarrots(Block.tallGrass.blockID, 0);
|
||||||
|
@ -491,6 +495,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator
|
||||||
this.desertCactiPerChunk = 0;
|
this.desertCactiPerChunk = 0;
|
||||||
this.highGrassPerChunk = 0;
|
this.highGrassPerChunk = 0;
|
||||||
this.outbackPerChunk = 0;
|
this.outbackPerChunk = 0;
|
||||||
|
this.netherWartPerChunk = 0;
|
||||||
this.canyonGrassPerChunk = 0;
|
this.canyonGrassPerChunk = 0;
|
||||||
this.steppePerChunk = 0;
|
this.steppePerChunk = 0;
|
||||||
this.promisedWillowPerChunk = 0;
|
this.promisedWillowPerChunk = 0;
|
||||||
|
@ -1069,6 +1074,14 @@ public class BiomeDecoratorBOP extends BiomeDecorator
|
||||||
this.outbackGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5);
|
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)
|
for (var2 = 0; var2 < this.canyonGrassPerChunk; ++var2)
|
||||||
{
|
{
|
||||||
var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
|
||||||
|
|
|
@ -2,6 +2,7 @@ package biomesoplenty.biomes;
|
||||||
|
|
||||||
import biomesoplenty.configuration.BOPConfiguration;
|
import biomesoplenty.configuration.BOPConfiguration;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
import net.minecraft.world.biome.BiomeGenBase;
|
||||||
import net.minecraft.world.biome.SpawnListEntry;
|
import net.minecraft.world.biome.SpawnListEntry;
|
||||||
import net.minecraft.entity.monster.EntityGhast;
|
import net.minecraft.entity.monster.EntityGhast;
|
||||||
|
@ -17,6 +18,8 @@ public class BiomeGenNetherAbyss extends BiomeGenBase
|
||||||
super(par1);
|
super(par1);
|
||||||
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
||||||
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
||||||
|
this.topBlock = (byte)Block.netherrack.blockID;
|
||||||
|
this.fillerBlock = (byte)Block.netherrack.blockID;
|
||||||
this.spawnableMonsterList.clear();
|
this.spawnableMonsterList.clear();
|
||||||
this.spawnableCreatureList.clear();
|
this.spawnableCreatureList.clear();
|
||||||
this.spawnableWaterCreatureList.clear();
|
this.spawnableWaterCreatureList.clear();
|
||||||
|
|
|
@ -2,6 +2,7 @@ package biomesoplenty.biomes;
|
||||||
|
|
||||||
import biomesoplenty.configuration.BOPConfiguration;
|
import biomesoplenty.configuration.BOPConfiguration;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
import net.minecraft.world.biome.BiomeGenBase;
|
||||||
import net.minecraft.world.biome.SpawnListEntry;
|
import net.minecraft.world.biome.SpawnListEntry;
|
||||||
import net.minecraft.entity.monster.EntityGhast;
|
import net.minecraft.entity.monster.EntityGhast;
|
||||||
|
@ -17,6 +18,8 @@ public class BiomeGenNetherDesert extends BiomeGenBase
|
||||||
super(par1);
|
super(par1);
|
||||||
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
||||||
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
||||||
|
this.topBlock = (byte)Block.slowSand.blockID;
|
||||||
|
this.fillerBlock = (byte)Block.slowSand.blockID;
|
||||||
this.spawnableMonsterList.clear();
|
this.spawnableMonsterList.clear();
|
||||||
this.spawnableCreatureList.clear();
|
this.spawnableCreatureList.clear();
|
||||||
this.spawnableWaterCreatureList.clear();
|
this.spawnableWaterCreatureList.clear();
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.Random;
|
||||||
import biomesoplenty.configuration.BOPConfiguration;
|
import biomesoplenty.configuration.BOPConfiguration;
|
||||||
import biomesoplenty.worldgen.WorldGenNetherMushroom;
|
import biomesoplenty.worldgen.WorldGenNetherMushroom;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
import net.minecraft.world.biome.BiomeGenBase;
|
||||||
import net.minecraft.world.biome.SpawnListEntry;
|
import net.minecraft.world.biome.SpawnListEntry;
|
||||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||||
|
@ -21,9 +22,13 @@ public class BiomeGenNetherGarden extends BiomeGenBase
|
||||||
super(par1);
|
super(par1);
|
||||||
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
||||||
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
||||||
this.customBiomeDecorator.treesPerChunk = 3;
|
this.topBlock = (byte)Block.netherrack.blockID;
|
||||||
this.customBiomeDecorator.netherVinesPerChunk = 40;
|
this.fillerBlock = (byte)Block.netherrack.blockID;
|
||||||
|
this.customBiomeDecorator.treesPerChunk = 15;
|
||||||
|
this.customBiomeDecorator.netherVinesPerChunk = 80;
|
||||||
this.customBiomeDecorator.mushroomsPerChunk = 20;
|
this.customBiomeDecorator.mushroomsPerChunk = 20;
|
||||||
|
this.customBiomeDecorator.bigMushroomsPerChunk = 10;
|
||||||
|
this.customBiomeDecorator.netherWartPerChunk = 3;
|
||||||
this.spawnableMonsterList.clear();
|
this.spawnableMonsterList.clear();
|
||||||
this.spawnableCreatureList.clear();
|
this.spawnableCreatureList.clear();
|
||||||
this.spawnableWaterCreatureList.clear();
|
this.spawnableWaterCreatureList.clear();
|
||||||
|
|
|
@ -1,15 +1,23 @@
|
||||||
package biomesoplenty.biomes;
|
package biomesoplenty.biomes;
|
||||||
|
|
||||||
import biomesoplenty.configuration.BOPConfiguration;
|
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.BiomeGenBase;
|
||||||
import net.minecraft.world.biome.SpawnListEntry;
|
import net.minecraft.world.biome.SpawnListEntry;
|
||||||
|
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||||
import net.minecraft.entity.monster.EntityGhast;
|
import net.minecraft.entity.monster.EntityGhast;
|
||||||
import net.minecraft.entity.monster.EntityMagmaCube;
|
import net.minecraft.entity.monster.EntityMagmaCube;
|
||||||
import net.minecraft.entity.monster.EntityPigZombie;
|
import net.minecraft.entity.monster.EntityPigZombie;
|
||||||
|
|
||||||
public class BiomeGenNetherLava extends BiomeGenBase
|
public class BiomeGenNetherLava extends BiomeGenBase
|
||||||
{
|
{
|
||||||
|
private WorldGenerator theWorldGenerator;
|
||||||
private BiomeDecoratorBOP customBiomeDecorator;
|
private BiomeDecoratorBOP customBiomeDecorator;
|
||||||
|
|
||||||
public BiomeGenNetherLava(int par1)
|
public BiomeGenNetherLava(int par1)
|
||||||
|
@ -17,6 +25,10 @@ public class BiomeGenNetherLava extends BiomeGenBase
|
||||||
super(par1);
|
super(par1);
|
||||||
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
this.theBiomeDecorator = new BiomeDecoratorBOP(this);
|
||||||
this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
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.spawnableMonsterList.clear();
|
||||||
this.spawnableCreatureList.clear();
|
this.spawnableCreatureList.clear();
|
||||||
this.spawnableWaterCreatureList.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(EntityGhast.class, 50, 4, 4));
|
||||||
this.spawnableMonsterList.add(new SpawnListEntry(EntityPigZombie.class, 100, 4, 4));
|
this.spawnableMonsterList.add(new SpawnListEntry(EntityPigZombie.class, 100, 4, 4));
|
||||||
this.spawnableMonsterList.add(new SpawnListEntry(EntityMagmaCube.class, 1, 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class WorldGenDeadlands extends WorldGenerator
|
||||||
int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4);
|
int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4);
|
||||||
int var9 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8);
|
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);
|
par1World.setBlock(var7, var8, var9, Block.fire.blockID);
|
||||||
}
|
}
|
||||||
|
|
81
src/minecraft/biomesoplenty/worldgen/WorldGenLavaSpring.java
Normal file
81
src/minecraft/biomesoplenty/worldgen/WorldGenLavaSpring.java
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,7 +27,8 @@ public class WorldGenNetherMushroom extends WorldGenerator
|
||||||
|
|
||||||
public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
|
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)
|
if (this.mushroomType >= 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,6 +61,46 @@ public class WorldGenNetherVines extends WorldGenerator
|
||||||
{
|
{
|
||||||
var1.setBlock(var3 - 1, var4 - 5, var5, Block.vine.blockID, 8, 2);
|
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))
|
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);
|
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))
|
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);
|
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))
|
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);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
48
src/minecraft/biomesoplenty/worldgen/WorldGenNetherWart.java
Normal file
48
src/minecraft/biomesoplenty/worldgen/WorldGenNetherWart.java
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue