Added sub-biomes

This commit is contained in:
Matt Caughey 2013-07-08 22:48:14 -04:00
parent e502c5ec6f
commit 8ee0b6a329
18 changed files with 962 additions and 29 deletions

View File

@ -22,6 +22,7 @@ public class Biomes
public static Optional<? extends BiomeGenBase> borealForest = Optional.absent();
public static Optional<? extends BiomeGenBase> brushland = Optional.absent();
public static Optional<? extends BiomeGenBase> canyon = Optional.absent();
public static Optional<? extends BiomeGenBase> canyonRavine = Optional.absent();
public static Optional<? extends BiomeGenBase> chaparral = Optional.absent();
public static Optional<? extends BiomeGenBase> cherryBlossomGrove = Optional.absent();
public static Optional<? extends BiomeGenBase> coniferousForest = Optional.absent();
@ -52,6 +53,7 @@ public class Biomes
public static Optional<? extends BiomeGenBase> mapleWoods = Optional.absent();
public static Optional<? extends BiomeGenBase> marsh = Optional.absent();
public static Optional<? extends BiomeGenBase> meadow = Optional.absent();
public static Optional<? extends BiomeGenBase> meadowForest = Optional.absent();
public static Optional<? extends BiomeGenBase> mesa = Optional.absent();
public static Optional<? extends BiomeGenBase> moor = Optional.absent();
public static Optional<? extends BiomeGenBase> mountain = Optional.absent();
@ -69,10 +71,13 @@ public class Biomes
public static Optional<? extends BiomeGenBase> oceanKelp = Optional.absent();
public static Optional<? extends BiomeGenBase> ominousWoods = Optional.absent();
public static Optional<? extends BiomeGenBase> ominousWoodsThick = Optional.absent();
public static Optional<? extends BiomeGenBase> orchard = Optional.absent();
public static Optional<? extends BiomeGenBase> originValley = Optional.absent();
public static Optional<? extends BiomeGenBase> outback = Optional.absent();
public static Optional<? extends BiomeGenBase> pasture = Optional.absent();
public static Optional<? extends BiomeGenBase> pastureMeadow = Optional.absent();
public static Optional<? extends BiomeGenBase> pastureThin = Optional.absent();
public static Optional<? extends BiomeGenBase> polar = Optional.absent();
public static Optional<? extends BiomeGenBase> prairie = Optional.absent();
@ -90,12 +95,14 @@ public class Biomes
public static Optional<? extends BiomeGenBase> shield = Optional.absent();
public static Optional<? extends BiomeGenBase> shore = Optional.absent();
public static Optional<? extends BiomeGenBase> shrubland = Optional.absent();
public static Optional<? extends BiomeGenBase> shrublandForest = Optional.absent();
public static Optional<? extends BiomeGenBase> sludgepit = Optional.absent();
public static Optional<? extends BiomeGenBase> spruceWoods = Optional.absent();
public static Optional<? extends BiomeGenBase> steppe = Optional.absent();
public static Optional<? extends BiomeGenBase> temperateRainforest = Optional.absent();
public static Optional<? extends BiomeGenBase> thicket = Optional.absent();
public static Optional<? extends BiomeGenBase> timber = Optional.absent();
public static Optional<? extends BiomeGenBase> timberThin = Optional.absent();
public static Optional<? extends BiomeGenBase> tropicalRainforest = Optional.absent();
public static Optional<? extends BiomeGenBase> tropics = Optional.absent();
public static Optional<? extends BiomeGenBase> tundra = Optional.absent();

View File

@ -0,0 +1,79 @@
package biomesoplenty.biomes;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.Blocks;
import biomesoplenty.worldgen.WorldGenCanyonShrub;
import biomesoplenty.worldgen.WorldGenPineTree;
public class BiomeGenCanyonRavine extends BiomeGenBase
{
private BiomeDecoratorBOP customBiomeDecorator;
public BiomeGenCanyonRavine(int par1)
{
super(par1);
spawnableCreatureList.clear();
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
topBlock = (byte)Blocks.hardDirt.get().blockID;
fillerBlock = (byte)Blocks.hardDirt.get().blockID;
customBiomeDecorator.treesPerChunk = 4;
customBiomeDecorator.flowersPerChunk = -999;
customBiomeDecorator.canyonGrassPerChunk = 3;
customBiomeDecorator.aloePerChunk = 2;
customBiomeDecorator.generatePumpkins = false;
customBiomeDecorator.generateCanyon = true;
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return par1Random.nextInt(9) == 0 ? new WorldGenPineTree() : new WorldGenCanyonShrub(0,0);
}
@Override
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 12 + par2Random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int var7 = par3 + par2Random.nextInt(16);
int var8 = par2Random.nextInt(28) + 4;
int var9 = par4 + par2Random.nextInt(16);
int var10 = par1World.getBlockId(var7, var8, var9);
if (var10 == Block.stone.blockID)
{
par1World.setBlock(var7, var8, var9, Blocks.amethystOre.get().blockID, 2, 2);
}
}
}
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
@Override
public int getBiomeFoliageColor()
{
return 11123300;
}
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
@Override
public int getBiomeGrassColor()
{
return 11123300;
}
}

View File

@ -87,22 +87,4 @@ public class BiomeGenJungleNew extends BiomeGenBase
var5.generate(par1World, par2Random, var7, var8, var9);
}
}
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
@Override
public int getBiomeGrassColor()
{
return 5232218;
}
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
@Override
public int getBiomeFoliageColor()
{
return 3266623;
}
}

View File

@ -60,7 +60,7 @@ public class BiomeGenMeadow extends BiomeGenBase
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return par1Random.nextInt(3) == 0 ? new WorldGenTaiga2(false) : new WorldGenShrub(0, 1);
return par1Random.nextInt(5) == 0 ? new WorldGenTaiga2(false) : new WorldGenShrub(0, 1);
}
/**

View File

@ -0,0 +1,75 @@
package biomesoplenty.biomes;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.feature.WorldGenTaiga2;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.Blocks;
public class BiomeGenMeadowForest extends BiomeGenBase
{
private BiomeDecoratorBOP customBiomeDecorator;
public BiomeGenMeadowForest(int par1)
{
super(par1);
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 7;
customBiomeDecorator.grassPerChunk = 10;
customBiomeDecorator.tinyFlowersPerChunk = 7;
customBiomeDecorator.flowersPerChunk = 10;
customBiomeDecorator.carrotsPerChunk = -999;
customBiomeDecorator.sandPerChunk = -999;
customBiomeDecorator.sandPerChunk2 = -999;
customBiomeDecorator.hydrangeasPerChunk = 3;
customBiomeDecorator.generatePumpkins = true;
}
@Override
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 12 + par2Random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int var7 = par3 + par2Random.nextInt(16);
int var8 = par2Random.nextInt(28) + 4;
int var9 = par4 + par2Random.nextInt(16);
int var10 = par1World.getBlockId(var7, var8, var9);
if (var10 == Block.stone.blockID)
{
par1World.setBlock(var7, var8, var9, Blocks.amethystOre.get().blockID, 4, 2);
}
}
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return new WorldGenTaiga2(false);
}
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
@Override
public int getBiomeGrassColor()
{
return 6533741;
}
@Override
public int getBiomeFoliageColor()
{
return 6533741;
}
}

View File

@ -0,0 +1,114 @@
package biomesoplenty.biomes;
import java.awt.Color;
import java.util.Random;
import net.minecraft.entity.monster.EntityCaveSpider;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.monster.EntitySpider;
import net.minecraft.entity.passive.EntityBat;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.SpawnListEntry;
import net.minecraft.world.gen.feature.WorldGenTallGrass;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.configuration.BOPConfiguration;
import biomesoplenty.worldgen.WorldGenOminous1;
import biomesoplenty.worldgen.WorldGenOminous3;
import biomesoplenty.worldgen.WorldGenOminous4;
import biomesoplenty.api.Blocks;
public class BiomeGenOminousWoodsThick extends BiomeGenBase
{
private BiomeDecoratorBOP customBiomeDecorator;
@SuppressWarnings("unchecked")
public BiomeGenOminousWoodsThick(int par1)
{
super(par1);
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 14;
customBiomeDecorator.grassPerChunk = 4;
customBiomeDecorator.highGrassPerChunk = 4;
customBiomeDecorator.flowersPerChunk = -999;
customBiomeDecorator.deathbloomsPerChunk = 2;
customBiomeDecorator.mushroomsPerChunk = 8;
customBiomeDecorator.reedsPerChunk = -999;
customBiomeDecorator.sandPerChunk = -999;
customBiomeDecorator.sandPerChunk2 = -999;
customBiomeDecorator.thornsPerChunk = 14;
customBiomeDecorator.poisonIvyPerChunk = 6;
customBiomeDecorator.poisonWaterPerChunk = 5;
waterColorMultiplier = 1973030;
spawnableMonsterList.clear();
spawnableCreatureList.clear();
spawnableWaterCreatureList.clear();
spawnableMonsterList.add(new SpawnListEntry(EntityCaveSpider.class, 5, 1, 2));
spawnableMonsterList.add(new SpawnListEntry(EntitySpider.class, 7, 1, 2));
spawnableMonsterList.add(new SpawnListEntry(EntityEnderman.class, 10, 1, 4));
spawnableCaveCreatureList.add(new SpawnListEntry(EntityBat.class, 10, 8, 8));
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
//return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenWillow2() : (par1Random.nextInt(7) == 0 ? new WorldGenDarkTree1() : (par1Random.nextInt(5) == 0 ? new WorldGenWillow1() : new WorldGenDarkTree2())));
return par1Random.nextInt(5) == 0 ? new WorldGenOminous3(false) : (par1Random.nextInt(3) == 0 ? new WorldGenOminous4(false) : new WorldGenOminous1(false));
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return par1Random.nextInt(6) == 0 ? new WorldGenTallGrass(Blocks.foliage.get().blockID, 1) : new WorldGenTallGrass(Blocks.foliage.get().blockID, 2);
}
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
@Override
public int getBiomeGrassColor()
{
return 4145489;
}
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
@Override
public int getBiomeFoliageColor()
{
return 4145489;
}
/**
* takes temperature, returns color
*/
@Override
public int getSkyColorByTemp(float par1)
{
if (BOPConfiguration.skyColors = true)
return 5069168;
else
{
par1 /= 3.0F;
if (par1 < -1.0F)
{
par1 = -1.0F;
}
if (par1 > 1.0F)
{
par1 = 1.0F;
}
return Color.getHSBColor(0.62222224F - par1 * 0.05F, 0.5F + par1 * 0.1F, 1.0F).getRGB();
}
}
}

View File

@ -0,0 +1,74 @@
package biomesoplenty.biomes;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.feature.WorldGenTallGrass;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.Blocks;
public class BiomeGenPastureMeadow extends BiomeGenBase
{
private BiomeDecoratorBOP customBiomeDecorator;
public BiomeGenPastureMeadow(int par1)
{
super(par1);
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 1;
customBiomeDecorator.grassPerChunk = 15;
customBiomeDecorator.sunflowersPerChunk = 40;
customBiomeDecorator.whiteFlowersPerChunk = 20;
spawnableCreatureList.clear();
}
@Override
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 12 + par2Random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int var7 = par3 + par2Random.nextInt(16);
int var8 = par2Random.nextInt(28) + 4;
int var9 = par4 + par2Random.nextInt(16);
int var10 = par1World.getBlockId(var7, var8, var9);
if (var10 == Block.stone.blockID)
{
par1World.setBlock(var7, var8, var9, Blocks.amethystOre.get().blockID, 4, 2);
}
}
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return par1Random.nextInt(8) == 0 ? new WorldGenTallGrass(Blocks.plants.get().blockID, 6) : new WorldGenTallGrass(Block.tallGrass.blockID, 1);
}
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
@Override
public int getBiomeGrassColor()
{
return 13166666;
}
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
@Override
public int getBiomeFoliageColor()
{
return 13166666;
}
}

View File

@ -0,0 +1,73 @@
package biomesoplenty.biomes;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.feature.WorldGenTallGrass;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.Blocks;
public class BiomeGenPastureThin extends BiomeGenBase
{
private BiomeDecoratorBOP customBiomeDecorator;
public BiomeGenPastureThin(int par1)
{
super(par1);
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 0;
customBiomeDecorator.grassPerChunk = 50;
customBiomeDecorator.flowersPerChunk = -999;
spawnableCreatureList.clear();
}
@Override
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 12 + par2Random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int var7 = par3 + par2Random.nextInt(16);
int var8 = par2Random.nextInt(28) + 4;
int var9 = par4 + par2Random.nextInt(16);
int var10 = par1World.getBlockId(var7, var8, var9);
if (var10 == Block.stone.blockID)
{
par1World.setBlock(var7, var8, var9, Blocks.amethystOre.get().blockID, 4, 2);
}
}
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(Blocks.plants.get().blockID, 6);
}
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
@Override
public int getBiomeGrassColor()
{
return 13166666;
}
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
@Override
public int getBiomeFoliageColor()
{
return 13166666;
}
}

View File

@ -0,0 +1,69 @@
package biomesoplenty.biomes;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.entity.passive.EntityHorse;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.SpawnListEntry;
import net.minecraft.world.gen.feature.WorldGenShrub;
import net.minecraft.world.gen.feature.WorldGenTallGrass;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.Blocks;
public class BiomeGenShrublandForest extends BiomeGenBase
{
private BiomeDecoratorBOP customBiomeDecorator;
public BiomeGenShrublandForest(int par1)
{
super(par1);
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 2;
customBiomeDecorator.flowersPerChunk = 0;
customBiomeDecorator.grassPerChunk = 10;
customBiomeDecorator.bushesPerChunk = 7;
customBiomeDecorator.generatePumpkins = false;
spawnableCreatureList.add(new SpawnListEntry(EntityHorse.class, 5, 2, 6));
}
@Override
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 12 + par2Random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int var7 = par3 + par2Random.nextInt(16);
int var8 = par2Random.nextInt(28) + 4;
int var9 = par4 + par2Random.nextInt(16);
int var10 = par1World.getBlockId(var7, var8, var9);
if (var10 == Block.stone.blockID)
{
par1World.setBlock(var7, var8, var9, Blocks.amethystOre.get().blockID, 4, 2);
}
}
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return new WorldGenShrub(0, 0);
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return new WorldGenTallGrass(Blocks.foliage.get().blockID, 1);
}
}

View File

@ -0,0 +1,86 @@
package biomesoplenty.biomes;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.feature.WorldGenTallGrass;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.Blocks;
import biomesoplenty.worldgen.WorldGenChaparral2;
import biomesoplenty.worldgen.WorldGenChaparral3;
import biomesoplenty.worldgen.WorldGenDeciduous2;
public class BiomeGenTimberThin extends BiomeGenBase
{
private BiomeDecoratorBOP customBiomeDecorator;
public BiomeGenTimberThin(int par1)
{
super(par1);
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 5;
customBiomeDecorator.grassPerChunk = 8;
customBiomeDecorator.thornsPerChunk = 2;
customBiomeDecorator.flowersPerChunk = -999;
customBiomeDecorator.toadstoolsPerChunk = 2;
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return par1Random.nextInt(4) == 0 ? new WorldGenChaparral3() : (par1Random.nextInt(8) == 0 ? new WorldGenChaparral2() : new WorldGenDeciduous2(false));
}
/**
* Gets a WorldGen appropriate for this biome.
*/
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return par1Random.nextInt(5) == 0 ? new WorldGenTallGrass(Blocks.foliage.get().blockID, 2) : new WorldGenTallGrass(Blocks.foliage.get().blockID, 1);
}
@Override
public void decorate(World par1World, Random par2Random, int par3, int par4)
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 3 + par2Random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int var7 = par3 + par2Random.nextInt(16);
int var8 = par2Random.nextInt(28) + 4;
int var9 = par4 + par2Random.nextInt(16);
int var10 = par1World.getBlockId(var7, var8, var9);
if (var10 == Block.stone.blockID)
{
par1World.setBlock(var7, var8, var9, Block.oreEmerald.blockID, 0, 2);
}
}
}
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
@Override
public int getBiomeGrassColor()
{
return 10923366;
}
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
@Override
public int getBiomeFoliageColor()
{
return 11049817;
}
}

View File

@ -22,6 +22,7 @@ import biomesoplenty.biomes.BiomeGenBog;
import biomesoplenty.biomes.BiomeGenBorealForest;
import biomesoplenty.biomes.BiomeGenBrushland;
import biomesoplenty.biomes.BiomeGenCanyon;
import biomesoplenty.biomes.BiomeGenCanyonRavine;
import biomesoplenty.biomes.BiomeGenChaparral;
import biomesoplenty.biomes.BiomeGenCherryBlossomGrove;
import biomesoplenty.biomes.BiomeGenConiferousForest;
@ -56,6 +57,7 @@ import biomesoplenty.biomes.BiomeGenMangrove;
import biomesoplenty.biomes.BiomeGenMapleWoods;
import biomesoplenty.biomes.BiomeGenMarsh;
import biomesoplenty.biomes.BiomeGenMeadow;
import biomesoplenty.biomes.BiomeGenMeadowForest;
import biomesoplenty.biomes.BiomeGenMesa;
import biomesoplenty.biomes.BiomeGenMoor;
import biomesoplenty.biomes.BiomeGenMountain;
@ -69,10 +71,13 @@ import biomesoplenty.biomes.BiomeGenOasis;
import biomesoplenty.biomes.BiomeGenOceanCoral;
import biomesoplenty.biomes.BiomeGenOceanKelp;
import biomesoplenty.biomes.BiomeGenOminousWoods;
import biomesoplenty.biomes.BiomeGenOminousWoodsThick;
import biomesoplenty.biomes.BiomeGenOrchard;
import biomesoplenty.biomes.BiomeGenOriginValley;
import biomesoplenty.biomes.BiomeGenOutback;
import biomesoplenty.biomes.BiomeGenPasture;
import biomesoplenty.biomes.BiomeGenPastureMeadow;
import biomesoplenty.biomes.BiomeGenPastureThin;
import biomesoplenty.biomes.BiomeGenPlainsNew;
import biomesoplenty.biomes.BiomeGenPolar;
import biomesoplenty.biomes.BiomeGenPrairie;
@ -89,6 +94,7 @@ import biomesoplenty.biomes.BiomeGenSeasonalForest;
import biomesoplenty.biomes.BiomeGenShield;
import biomesoplenty.biomes.BiomeGenShore;
import biomesoplenty.biomes.BiomeGenShrubland;
import biomesoplenty.biomes.BiomeGenShrublandForest;
import biomesoplenty.biomes.BiomeGenSludgepit;
import biomesoplenty.biomes.BiomeGenSpruceWoods;
import biomesoplenty.biomes.BiomeGenSteppe;
@ -97,6 +103,7 @@ import biomesoplenty.biomes.BiomeGenTaigaNew;
import biomesoplenty.biomes.BiomeGenTemperateRainforest;
import biomesoplenty.biomes.BiomeGenThicket;
import biomesoplenty.biomes.BiomeGenTimber;
import biomesoplenty.biomes.BiomeGenTimberThin;
import biomesoplenty.biomes.BiomeGenTropicalRainforest;
import biomesoplenty.biomes.BiomeGenTropics;
import biomesoplenty.biomes.BiomeGenTundra;
@ -170,7 +177,8 @@ public class BOPBiomes {
Biomes.bog = Optional.of((new BiomeGenBog(BOPConfiguration.bogID)).setColor(522674).setBiomeName("Bog").func_76733_a(9154376).setMinMaxHeight(-0.1F, 0.1F).setTemperatureRainfall(0.8F, 0.9F));
Biomes.borealForest = Optional.of((new BiomeGenBorealForest(BOPConfiguration.borealForestID)).setColor(353825).setBiomeName("Boreal Forest").func_76733_a(5159473).setMinMaxHeight(0.0F, 1.0F).setTemperatureRainfall(0.6F, 0.7F));
Biomes.brushland = Optional.of((new BiomeGenBrushland(BOPConfiguration.brushlandID)).setColor(16421912).setBiomeName("Brushland").setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.0F, 0.5F));
Biomes.canyon = Optional.of((new BiomeGenCanyon(BOPConfiguration.canyonID)).setColor(9286496).setBiomeName("Canyon").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.4F, 2.0F));
Biomes.canyon = Optional.of((new BiomeGenCanyon(BOPConfiguration.canyonID)).setColor(9286496).setBiomeName("Canyon").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(1.5F, 2.0F));
Biomes.canyonRavine = Optional.of((new BiomeGenCanyonRavine(BOPConfiguration.canyonRavineID)).setColor(9286496).setBiomeName("Canyon Ravine").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.1F, 0.2F));
Biomes.chaparral = Optional.of((new BiomeGenChaparral(BOPConfiguration.chaparralID)).setColor(9286496).setBiomeName("Chaparral").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.3F, 0.6F));
Biomes.cherryBlossomGrove = Optional.of((new BiomeGenCherryBlossomGrove(BOPConfiguration.cherryBlossomGroveID)).setColor(9286496).setBiomeName("Cherry Blossom Grove").setMinMaxHeight(0.1F, 0.2F).setTemperatureRainfall(0.7F, 0.8F));
Biomes.coniferousForest = Optional.of((new BiomeGenConiferousForest(BOPConfiguration.coniferousForestID)).setColor(747097).setBiomeName("Coniferous Forest").func_76733_a(5159473).setTemperatureRainfall(0.5F, 0.4F).setMinMaxHeight(0.1F, 0.8F));
@ -201,6 +209,7 @@ public class BOPBiomes {
Biomes.mapleWoods = Optional.of((new BiomeGenMapleWoods(BOPConfiguration.mapleWoodsID)).setColor(747097).setBiomeName("Maple Woods").func_76733_a(5159473).setTemperatureRainfall(0.2F, 0.8F).setMinMaxHeight(0.1F, 0.6F));
Biomes.marsh = Optional.of((new BiomeGenMarsh(BOPConfiguration.marshID)).setColor(10486015).setBiomeName("Marsh").setMinMaxHeight(-0.5F, 0.0F).setTemperatureRainfall(0.5F, 0.9F));
Biomes.meadow = Optional.of((new BiomeGenMeadow(BOPConfiguration.meadowID)).setColor(9286496).setBiomeName("Meadow").setTemperatureRainfall(0.7F, 0.7F));
Biomes.meadowForest = Optional.of((new BiomeGenMeadowForest(BOPConfiguration.meadowForestID)).setColor(9286496).setBiomeName("Meadow Forest").setTemperatureRainfall(0.7F, 0.7F));
Biomes.mesa = Optional.of((new BiomeGenMesa(BOPConfiguration.mesaID)).setColor(16421912).setBiomeName("Mesa").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.4F, 2.0F));
Biomes.moor = Optional.of((new BiomeGenMoor(BOPConfiguration.moorID)).setColor(16421912).setBiomeName("Moor").setTemperatureRainfall(0.5F, 1.0F).setMinMaxHeight(0.7F, 0.8F));
Biomes.mountain = Optional.of((new BiomeGenMountain(BOPConfiguration.mountainID)).setColor(14090235).setBiomeName("Mountain").setTemperatureRainfall(0.5F, 0.1F).setMinMaxHeight(1.2F, 1.2F));
@ -218,10 +227,13 @@ public class BOPBiomes {
Biomes.oceanKelp = Optional.of((new BiomeGenOceanKelp(BOPConfiguration.oceanKelpID)).setColor(10486015).setBiomeName("Kelp Forest").setMinMaxHeight(-0.4F, -0.1F).setTemperatureRainfall(0.5F, 0.9F));
Biomes.ominousWoods = Optional.of((new BiomeGenOminousWoods(BOPConfiguration.ominousWoodsID)).setColor(353825).setBiomeName("Ominous Woods").setDisableRain().func_76733_a(5159473).setTemperatureRainfall(0.8F, 0.9F));
Biomes.ominousWoodsThick = Optional.of((new BiomeGenOminousWoodsThick(BOPConfiguration.ominousWoodsThickID)).setColor(353825).setBiomeName("Thick Ominous Woods").setDisableRain().func_76733_a(5159473).setTemperatureRainfall(0.8F, 0.9F));
Biomes.orchard = Optional.of((new BiomeGenOrchard(BOPConfiguration.orchardID)).setColor(9286496).setBiomeName("Orchard").setTemperatureRainfall(0.8F, 0.4F));
Biomes.originValley = Optional.of((new BiomeGenOriginValley(BOPConfiguration.originValleyID)).setColor(353825).setBiomeName("Origin Valley").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(-0.1F, 0.6F));
Biomes.outback = Optional.of((new BiomeGenOutback(BOPConfiguration.outbackID)).setColor(9286496).setBiomeName("Outback").setTemperatureRainfall(0.8F, 0.0F).setMinMaxHeight(0.1F, 0.1F));
Biomes.pasture = Optional.of((new BiomeGenPasture(BOPConfiguration.pastureID)).setColor(9286496).setBiomeName("Pasture").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.1F, 0.1F));
Biomes.pastureMeadow = Optional.of((new BiomeGenPastureMeadow(BOPConfiguration.pastureMeadowID)).setColor(9286496).setBiomeName("Pasture Meadow").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.1F, 0.1F));
Biomes.pastureThin = Optional.of((new BiomeGenPastureThin(BOPConfiguration.pastureThinID)).setColor(9286496).setBiomeName("Thinned Pasture").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.1F, 0.1F));
Biomes.polar = Optional.of((new BiomeGenPolar(BOPConfiguration.polarID)).setColor(6316128).setBiomeName("Polar").setMinMaxHeight(-0.5F, 0.0F).setTemperatureRainfall(0.0F, 0.0F));
Biomes.prairie = Optional.of((new BiomeGenPrairie(BOPConfiguration.prairieID)).setColor(353825).setBiomeName("Prairie").func_76733_a(5159473).setTemperatureRainfall(0.9F, 0.6F).setMinMaxHeight(0.1F, 0.1F));
@ -239,12 +251,14 @@ public class BOPBiomes {
Biomes.shield = Optional.of((new BiomeGenShield(BOPConfiguration.shieldID)).setColor(522674).setBiomeName("Shield").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.4F).setTemperatureRainfall(0.5F, 0.8F));
Biomes.shore = Optional.of((new BiomeGenShore(BOPConfiguration.shoreID)).setColor(9286496).setBiomeName("Shore").setMinMaxHeight(-1.0F, 0.4F).setTemperatureRainfall(0.8F, 0.4F));
Biomes.shrubland = Optional.of((new BiomeGenShrubland(BOPConfiguration.shrublandID)).setColor(9286496).setBiomeName("Shrubland").setMinMaxHeight(0.1F, 0.2F).setTemperatureRainfall(0.6F, 0.0F));
Biomes.shrublandForest = Optional.of((new BiomeGenShrublandForest(BOPConfiguration.shrublandForestID)).setColor(9286496).setBiomeName("Thick Shrubland").setMinMaxHeight(0.1F, 0.2F).setTemperatureRainfall(0.6F, 0.0F));
Biomes.sludgepit = Optional.of((new BiomeGenSludgepit(BOPConfiguration.sludgepitID)).setColor(522674).setBiomeName("Sludgepit").func_76733_a(9154376).setMinMaxHeight(-0.3F, -0.1F).setTemperatureRainfall(0.8F, 0.9F));
Biomes.spruceWoods = Optional.of((new BiomeGenSpruceWoods(BOPConfiguration.spruceWoodsID)).setColor(353825).setBiomeName("Spruce Woods").func_76733_a(5159473).setTemperatureRainfall(0.6F, 0.7F));
Biomes.steppe = Optional.of((new BiomeGenSteppe(BOPConfiguration.steppeID)).setColor(9286496).setBiomeName("Steppe").setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.1F, 0.2F));
Biomes.temperateRainforest = Optional.of((new BiomeGenTemperateRainforest(BOPConfiguration.temperateRainforestID)).setColor(353825).setBiomeName("Temperate Rainforest").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(0.2F, 1.2F));
Biomes.thicket = Optional.of((new BiomeGenThicket(BOPConfiguration.thicketID)).setColor(353825).setBiomeName("Thicket").func_76733_a(5159473).setTemperatureRainfall(0.6F, 0.2F).setMinMaxHeight(0.0F, 0.2F));
Biomes.timber = Optional.of((new BiomeGenTimber(BOPConfiguration.timberID)).setColor(353825).setBiomeName("Timber").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(0.0F, 0.2F));
Biomes.timberThin = Optional.of((new BiomeGenTimberThin(BOPConfiguration.timberThinID)).setColor(353825).setBiomeName("Thinned Timber").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(0.0F, 0.2F));
Biomes.tropicalRainforest = Optional.of((new BiomeGenTropicalRainforest(BOPConfiguration.tropicalRainforestID)).setColor(9286496).setBiomeName("Tropical Rainforest").setTemperatureRainfall(1.2F, 0.9F).setMinMaxHeight(0.3F, 0.7F));
Biomes.tropics = Optional.of((new BiomeGenTropics(BOPConfiguration.tropicsID)).setColor(9286496).setBiomeName("Tropics").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 1.5F));
Biomes.tundra = Optional.of((new BiomeGenTundra(BOPConfiguration.tundraID)).setColor(14090235).setBiomeName("Tundra").setTemperatureRainfall(0.2F, 0.8F).setMinMaxHeight(-0.2F, 0.4F));

View File

@ -302,6 +302,7 @@ public class BOPConfiguration {
public static int borealForestID;
public static int brushlandID;
public static int canyonID;
public static int canyonRavineID;
public static int chaparralID;
public static int cherryBlossomGroveID;
public static int coniferousForestID;
@ -332,6 +333,7 @@ public class BOPConfiguration {
public static int mapleWoodsID;
public static int marshID;
public static int meadowID;
public static int meadowForestID;
public static int mesaID;
public static int moorID;
public static int mountainID;
@ -349,10 +351,13 @@ public class BOPConfiguration {
public static int oceanKelpID;
public static int ominousWoodsID;
public static int ominousWoodsThickID;
public static int orchardID;
public static int originValleyID;
public static int outbackID;
public static int pastureID;
public static int pastureMeadowID;
public static int pastureThinID;
public static int polarID;
public static int prairieID;
@ -371,12 +376,14 @@ public class BOPConfiguration {
public static int shieldID;
public static int shoreID;
public static int shrublandID;
public static int shrublandForestID;
public static int sludgepitID;
public static int spruceWoodsID;
public static int steppeID;
public static int temperateRainforestID;
public static int thicketID;
public static int timberID;
public static int timberThinID;
public static int tropicalRainforestID;
public static int tropicsID;
public static int tundraID;
@ -892,6 +899,14 @@ public class BOPConfiguration {
FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generating Biome ID's");
//23-79 ExtraBiomesXL
timberThinID = config.get("Biome IDs", "Thinned Timber (Sub-Biome) ID", 44).getInt();
pastureThinID = config.get("Biome IDs", "Thinned Pasture (Sub-Biome) ID", 45).getInt();
pastureMeadowID = config.get("Biome IDs", "Pasture Meadow (Sub-Biome) ID", 46).getInt();
ominousWoodsThickID = config.get("Biome IDs", "Thick Ominous Woods (Sub-Biome) ID", 47).getInt();
shrublandForestID = config.get("Biome IDs", "Thick Shrubland (Sub-Biome) ID", 48).getInt();
canyonRavineID = config.get("Biome IDs", "Canyon Ravine (Sub-Biome) ID", 49).getInt();
meadowForestID = config.get("Biome IDs", "Meadow Forest (Sub-Biome) ID", 50).getInt();
oceanCoralID = config.get("Biome IDs", "Coral Reef (Ocean) ID", 58).getInt();
oceanKelpID = config.get("Biome IDs", "Kelp Forest (Ocean) ID", 59).getInt();

View File

@ -487,6 +487,12 @@ public class AchievementHelper
{
player.addStat(AchievementHelper.achCanyon, 1);
}
if (biomeID == Biomes.canyonRavine.get().biomeID)
{
player.addStat(AchievementHelper.achCanyon, 1);
}
if (biomeID == Biomes.chaparral.get().biomeID)
{
player.addStat(AchievementHelper.achChaparral, 1);
@ -635,6 +641,11 @@ public class AchievementHelper
{
player.addStat(AchievementHelper.achMeadow, 1);
}
if (biomeID == Biomes.meadowForest.get().biomeID)
{
player.addStat(AchievementHelper.achMeadow, 1);
}
if (biomeID == Biomes.mesa.get().biomeID)
{
@ -660,6 +671,11 @@ public class AchievementHelper
{
player.addStat(AchievementHelper.achOminousWoods, 1);
}
if (biomeID == Biomes.ominousWoodsThick.get().biomeID)
{
player.addStat(AchievementHelper.achOminousWoods, 1);
}
if (biomeID == Biomes.orchard.get().biomeID)
{
@ -680,6 +696,16 @@ public class AchievementHelper
{
player.addStat(AchievementHelper.achPasture, 1);
}
if (biomeID == Biomes.pastureMeadow.get().biomeID)
{
player.addStat(AchievementHelper.achPasture, 1);
}
if (biomeID == Biomes.pastureThin.get().biomeID)
{
player.addStat(AchievementHelper.achPasture, 1);
}
if (biomeID == Biomes.polar.get().biomeID)
{
@ -735,6 +761,11 @@ public class AchievementHelper
{
player.addStat(AchievementHelper.achShrubland, 1);
}
if (biomeID == Biomes.shrublandForest.get().biomeID)
{
player.addStat(AchievementHelper.achShrubland, 1);
}
if (biomeID == Biomes.sludgepit.get().biomeID)
{
@ -765,6 +796,11 @@ public class AchievementHelper
{
player.addStat(AchievementHelper.achTimber, 1);
}
if (biomeID == Biomes.timberThin.get().biomeID)
{
player.addStat(AchievementHelper.achTimber, 1);
}
if (biomeID == Biomes.tropicalRainforest.get().biomeID)
{

View File

@ -38,6 +38,7 @@ import net.minecraftforge.event.Event.Result;
import net.minecraftforge.event.terraingen.ChunkProviderEvent;
import net.minecraftforge.event.terraingen.PopulateChunkEvent;
import net.minecraftforge.event.terraingen.TerrainGen;
import biomesoplenty.api.Biomes;
import biomesoplenty.configuration.BOPConfiguration;
import biomesoplenty.world.noise.NoiseOctaves;
import biomesoplenty.worldgen.structure.BOPMapGenScatteredFeature;
@ -549,14 +550,14 @@ public class ChunkProviderBOP implements IChunkProvider
int l1;
int i2;
if (TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, LAKE) &&
!flag && rand.nextInt(4) == 0)
{
k1 = k + rand.nextInt(16) + 8;
l1 = rand.nextInt(128);
i2 = l + rand.nextInt(16) + 8;
(new WorldGenLakes(Block.waterStill.blockID)).generate(worldObj, rand, k1, l1, i2);
}
if (biomegenbase != BiomeGenBase.desert && biomegenbase != BiomeGenBase.desertHills && biomegenbase != Biomes.desertNew.get() && biomegenbase != Biomes.glacier.get() && biomegenbase != Biomes.volcano.get() && biomegenbase != Biomes.scrubland.get() && biomegenbase != Biomes.dunes.get() && biomegenbase != Biomes.arctic.get() && biomegenbase != Biomes.pasture.get() && !flag && this.rand.nextInt(4) == 0
&& TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, LAKE))
{
k1 = k + this.rand.nextInt(16) + 8;
l1 = this.rand.nextInt(128);
i2 = l + this.rand.nextInt(16) + 8;
(new WorldGenLakes(Block.waterStill.blockID)).generate(this.worldObj, this.rand, k1, l1, i2);
}
if (TerrainGen.populate(par1IChunkProvider, worldObj, rand, par2, par3, flag, LAVA) &&
!flag && rand.nextInt(8) == 0)

View File

@ -24,7 +24,7 @@ public class BiomeLayerShore extends BiomeLayer
}
if (Biomes.beachOvergrown.isPresent())
{
beachBiomes.add(Biomes.beachOvergrown.get());
//beachBiomes.add(Biomes.beachOvergrown.get());
}
//OCEAN BIOMES

View File

@ -1,5 +1,6 @@
package biomesoplenty.world.layer;
import biomesoplenty.api.Biomes;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.layer.GenLayer;
import net.minecraft.world.gen.layer.IntCache;
@ -28,6 +29,13 @@ public class BiomeLayerSub extends BiomeLayer
//LIST
if (k1 == BiomeGenBase.desert.biomeID && nextInt(3) == 0) { l1 = BiomeGenBase.desertHills.biomeID; }
if (k1 == Biomes.meadow.get().biomeID && nextInt(2) == 0) { l1 = Biomes.meadowForest.get().biomeID; }
if (k1 == Biomes.canyon.get().biomeID && nextInt(2) == 0) { l1 = Biomes.canyonRavine.get().biomeID; }
if (k1 == Biomes.shrubland.get().biomeID && nextInt(3) == 0) { l1 = Biomes.shrublandForest.get().biomeID; }
if (k1 == Biomes.ominousWoods.get().biomeID && nextInt(3) == 0) { l1 = Biomes.ominousWoodsThick.get().biomeID; }
if (k1 == Biomes.pasture.get().biomeID && nextInt(2) == 0) { l1 = Biomes.pastureMeadow.get().biomeID; }
if (k1 == Biomes.pasture.get().biomeID && nextInt(3) == 0) { l1 = Biomes.pastureThin.get().biomeID; }
if (k1 == Biomes.timber.get().biomeID && nextInt(3) == 0) { l1 = Biomes.timberThin.get().biomeID; }
if (l1 == k1)
{

View File

@ -0,0 +1,137 @@
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 WorldGenOminous3 extends WorldGenerator
{
public WorldGenOminous3(boolean par1)
{
super(par1);
}
@Override
public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5)
{
int var6 = par2Random.nextInt(15) + 10;
int var7 = 2 + par2Random.nextInt(4);
int var8 = var6 - var7;
int var9 = 2 + par2Random.nextInt(3);
boolean var10 = true;
if (par4 >= 1 && par4 + var6 + 1 <= 256)
{
int var11;
int var13;
int var15;
int var21;
for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11)
{
boolean var12 = true;
if (var11 - par4 < var7)
{
var21 = 0;
}
else
{
var21 = var9;
}
for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13)
{
for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14)
{
if (var11 >= 0 && var11 < 256)
{
var15 = par1World.getBlockId(var13, var11, var14);
if (var15 != 0 && var15 != Blocks.leaves1.get().blockID)
{
var10 = false;
}
}
else
{
var10 = false;
}
}
}
}
if (!var10)
return false;
else
{
var11 = par1World.getBlockId(par3, par4 - 1, par5);
if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 256 - var6 - 1)
{
this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID);
var21 = par2Random.nextInt(2);
var13 = 1;
byte var22 = 0;
int var17;
int var16;
for (var15 = 0; var15 <= var8; ++var15)
{
var16 = par4 + var6 - var15;
for (var17 = par3 - var21; var17 <= par3 + var21; ++var17)
{
int var18 = var17 - par3;
for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19)
{
int var20 = var19 - par5;
if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)])
{
this.setBlockAndMetadata(par1World, var17, var16, var19, Blocks.leaves1.get().blockID, 3);
}
}
}
if (var21 >= var13)
{
var21 = var22;
var22 = 1;
++var13;
if (var13 > var9)
{
var13 = var9;
}
}
else
{
++var21;
}
}
var15 = par2Random.nextInt(3);
for (var16 = 0; var16 < var6 - var15; ++var16)
{
var17 = par1World.getBlockId(par3, par4 + var16, par5);
if (var17 == 0 || var17 == Blocks.leaves1.get().blockID)
{
this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Blocks.logs1.get().blockID, 2);
}
}
return true;
} else
return false;
}
} else
return false;
}
}

View File

@ -0,0 +1,163 @@
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 WorldGenOminous4 extends WorldGenerator
{
public WorldGenOminous4(boolean var1)
{
super(var1);
}
@Override
public boolean generate(World var1, Random var2, int var3, int var4, int var5)
{
int var6 = var2.nextInt(20) + 15;
int var7 = var2.nextInt(10) + 5;
int var8 = var6 - var7;
int var9 = 3 + var2.nextInt(1);
boolean var10 = true;
if (var4 >= 1 && var4 + var6 + 1 <= 256)
{
int var11;
int var13;
int var14;
int var15;
int var24;
for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11)
{
boolean var12 = true;
if (var11 - var4 < var7)
{
var24 = 0;
}
else
{
var24 = var9;
}
for (var13 = var3 - var24; var13 <= var3 + var24 && var10; ++var13)
{
for (var14 = var5 - var24; var14 <= var5 + var24 && var10; ++var14)
{
if (var11 >= 0 && var11 < 256)
{
var15 = var1.getBlockId(var13, var11, var14);
if (var15 != 0 && var15 != Blocks.leaves1.get().blockID)
{
var10 = false;
}
}
else
{
var10 = false;
}
}
}
}
if (!var10)
return false;
else
{
var11 = var1.getBlockId(var3, var4 - 1, var5);
var24 = var1.getBlockId(var3 - 1, var4 - 1, var5);
var13 = var1.getBlockId(var3, var4 - 1, var5 - 1);
var14 = var1.getBlockId(var3 - 1, var4 - 1, var5 - 1);
if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1)
{
if ((var24 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1)
{
if ((var13 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1)
{
if ((var14 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1)
{
var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID);
var1.setBlock(var3 - 1, var4 - 1, var5, Block.dirt.blockID);
var1.setBlock(var3, var4 - 1, var5 - 1, Block.dirt.blockID);
var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Block.dirt.blockID);
var15 = var2.nextInt(2);
int var16 = 1;
boolean var17 = false;
int var19;
int var18;
int var20;
for (var18 = 0; var18 <= var8; ++var18)
{
var19 = var4 + var6 - var18;
for (var20 = var3 - var15; var20 <= var3 + var15; ++var20)
{
int var21 = var20 - var3;
for (int var22 = var5 - var15; var22 <= var5 + var15; ++var22)
{
int var23 = var22 - var5;
if ((Math.abs(var21) != var15 || Math.abs(var23) != var15 || var15 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var20, var19, var22)])
{
this.setBlockAndMetadata(var1, var20, var19, var22, Blocks.leaves1.get().blockID, 3);
this.setBlockAndMetadata(var1, var20 - 1, var19, var22, Blocks.leaves1.get().blockID, 3);
this.setBlockAndMetadata(var1, var20, var19, var22 - 1, Blocks.leaves1.get().blockID, 3);
this.setBlockAndMetadata(var1, var20 - 1, var19, var22 - 1, Blocks.leaves1.get().blockID, 3);
}
}
}
if (var15 >= var16)
{
var15 = var17 ? 1 : 0;
var17 = true;
++var16;
if (var16 > var9)
{
var16 = var9;
}
}
else
{
++var15;
}
}
var18 = var2.nextInt(3);
for (var19 = 0; var19 < var6 - var18; ++var19)
{
var20 = var1.getBlockId(var3, var4 + var19, var5);
if (var20 == 0 || var20 == Blocks.leaves1.get().blockID)
{
this.setBlockAndMetadata(var1, var3, var4 + var19, var5, Blocks.logs1.get().blockID, 2);
this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5, Blocks.logs1.get().blockID, 2);
this.setBlockAndMetadata(var1, var3, var4 + var19, var5 - 1, Blocks.logs1.get().blockID, 2);
this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5 - 1, Blocks.logs1.get().blockID, 2);
}
}
return true;
} else
return false;
} else
return false;
} else
return false;
} else
return false;
}
} else
return false;
}
}