Readded the Chaparral, Coniferou sForest and Grove

This commit is contained in:
Adubbz 2014-01-09 01:03:13 +11:00
parent f020d7a958
commit d59a54f79b
13 changed files with 813 additions and 282 deletions

View File

@ -1,84 +1,98 @@
package biomesoplenty.common.biomes;
import net.minecraft.world.biome.BiomeGenBase;
import java.util.HashMap;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.entity.passive.EntityHorse;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase.Height;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.BOPBlockHelper;
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
import biomesoplenty.common.world.features.trees.WorldGenBOPShrub;
import biomesoplenty.common.world.features.trees.WorldGenChaparral2;
import biomesoplenty.common.world.features.trees.WorldGenChaparral3;
public class BiomeGenChaparral extends BOPBiome
{
private static final Height biomeHeight = new Height(0.3F, 0.6F);
public BiomeGenChaparral(int par1)
{
super(par1);
/*
spawnableCreatureList.clear();
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 8;
customBiomeDecorator.grassPerChunk = 20;
customBiomeDecorator.bushesPerChunk = 10;
customBiomeDecorator.berryBushesPerChunk = 2;
customBiomeDecorator.generateStoneInGrass = true;
customBiomeDecorator.generatePumpkins = false;
customBiomeDecorator.carrotsPerChunk = 1;
customBiomeDecorator.wheatGrassPerChunk = 10;
customBiomeDecorator.shrubsPerChunk = 10;
customBiomeDecorator.waterReedsPerChunk = 2;
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);
public BiomeGenChaparral(int id)
{
super(id);
//TODO: setHeight()
this.func_150570_a(biomeHeight);
//TODO: setColor()
this.setColor(12638301);
this.setTemperatureRainfall(0.8F, 0.4F);
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);
this.spawnableCreatureList.clear();
this.spawnableCreatureList.add(new SpawnListEntry(EntityHorse.class, 5, 2, 6));
this.theBiomeDecorator.treesPerChunk = 8;
this.theBiomeDecorator.grassPerChunk = 20;
this.bopWorldFeatures.bushesPerChunk = 10;
this.bopWorldFeatures.berryBushesPerChunk = 2;
this.bopWorldFeatures.generateStoneInGrass = true;
this.bopWorldFeatures.wildCarrotsPerChunk = 1;
this.bopWorldFeatures.shrubsPerChunk = 10;
this.bopWorldFeatures.waterReedsPerChunk = 2;
this.bopWorldFeatures.generatePumpkins = false;
}
@Override
//TODO: getRandomWorldGenForTrees()
public WorldGenAbstractTree func_150567_a(Random random)
{
return random.nextInt(2) == 0 ? new WorldGenChaparral2() : (random.nextInt(5) == 0 ? new WorldGenBOPShrub(Blocks.log, Blocks.leaves, 0, 0, Blocks.grass, Blocks.sand) : new WorldGenChaparral3());
}
Block block = Block.blocksList[var10];
if (block != null && block.isGenMineableReplaceable(par1World, var7, var8, var9, Block.stone.blockID))
{
par1World.setBlock(var7, var8, var9, Blocks.amethystOre.get().blockID, 4, 2);
}
}
}
*/
@Override
public HashMap<WorldGenerator, Double> getWeightedWorldGenForGrass()
{
HashMap<WorldGenerator, Double> grassMap = new HashMap();
/**
* Gets a WorldGen appropriate for this biome.
*/
/*
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return par1Random.nextInt(2) == 0 ? new WorldGenChaparral2() : (par1Random.nextInt(5) == 0 ? new WorldGenChaparral1(0, 0) : new WorldGenChaparral3());
}
*/
grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 2), 0.5D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
/**
* Gets a WorldGen appropriate for this biome.
*/
/*
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Blocks.foliage.get().blockID, 2) : new WorldGenTallGrass(Block.tallGrass.blockID, 1);
}
*/
return grassMap;
}
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
/*
@Override
public int getBiomeGrassColor()
{
return 12638301;
}
*/
@Override
public void decorate(World world, Random random, int chunkX, int chunkZ)
{
super.decorate(world, random, chunkX, chunkZ);
int var5 = 12 + random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int x = chunkX + random.nextInt(16);
int y = random.nextInt(28) + 4;
int z = chunkZ + random.nextInt(16);
//TODO: getBlock()
Block block = world.func_147439_a(x, y, z);
if (block != null && block.isReplaceableOreGen(world, x, y, z, Blocks.stone))
{
//TODO: setBlock()
world.func_147465_d(x, y, z, BOPBlockHelper.get("gemOre"), 4, 2);
}
}
}
@Override
//TODO: getBiomeGrassColor()
public int func_150558_b(int p_150558_1_, int p_150558_2_, int p_150558_3_)
{
return 12638301;
}
}

View File

@ -1,75 +1,93 @@
package biomesoplenty.common.biomes;
import net.minecraft.world.biome.BiomeGenBase;
import java.util.HashMap;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.entity.passive.EntityWolf;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.BOPBlockHelper;
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
import biomesoplenty.common.world.features.trees.WorldGenBOPTaiga2;
import biomesoplenty.common.world.features.trees.WorldGenBOPTaiga3;
public class BiomeGenConiferousForest extends BOPBiome
{
private static final Height biomeHeight = new Height(0.4F, 0.9F);
@SuppressWarnings("unchecked")
public BiomeGenConiferousForest(int par1)
public BiomeGenConiferousForest(int id)
{
super(par1);
/*
spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 8, 4, 4));
super(id);
//TODO: setHeight()
this.func_150570_a(biomeHeight);
//TODO: setColor()
this.setColor(5410656);
this.setTemperatureRainfall(0.5F, 0.5F);
customBiomeDecorator.treesPerChunk = 8;
customBiomeDecorator.grassPerChunk = 10;
customBiomeDecorator.mushroomsPerChunk = 8;
customBiomeDecorator.toadstoolsPerChunk = 3;
customBiomeDecorator.blueMilksPerChunk = 1;
customBiomeDecorator.poisonIvyPerChunk = 1;
customBiomeDecorator.berryBushesPerChunk = 1;
customBiomeDecorator.wheatGrassPerChunk = 5;
customBiomeDecorator.shrubsPerChunk = 8;
customBiomeDecorator.waterReedsPerChunk = 2;
customBiomeDecorator.sandPerChunk = -999;
customBiomeDecorator.sandPerChunk2 = -999;
customBiomeDecorator.gravelPerChunk = 1;
customBiomeDecorator.gravelPerChunk2 = 1;
customBiomeDecorator.cloverPatchesPerChunk = 10;
*/
}
this.spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 8, 4, 4));
/**
* Gets a WorldGen appropriate for this biome.
*/
/*
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return par1Random.nextInt(3) == 0 ? new WorldGenTaiga3(false) : (par1Random.nextInt(5) == 0 ? new WorldGenTaiga4(false) : new WorldGenTaiga9(false));
}
*/
this.theBiomeDecorator.treesPerChunk = 8;
this.theBiomeDecorator.grassPerChunk = 10;
this.theBiomeDecorator.mushroomsPerChunk = 8;
// gravelPerChunk
this.theBiomeDecorator.sandPerChunk = -999;
this.theBiomeDecorator.sandPerChunk2 = -999;
/**
* Gets a WorldGen appropriate for this biome.
*/
/*
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(Blocks.foliage.get().blockID, 2);
this.bopWorldFeatures.toadstoolsPerChunk = 3;
this.bopWorldFeatures.blueMilksPerChunk = 1;
this.bopWorldFeatures.poisonIvyPerChunk = 1;
this.bopWorldFeatures.berryBushesPerChunk = 1;
this.bopWorldFeatures.shrubsPerChunk = 8;
this.bopWorldFeatures.waterReedsPerChunk = 2;
this.bopWorldFeatures.cloverPatchesPerChunk = 10;
}
@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);
Block block = Block.blocksList[var10];
if (block != null && block.isGenMineableReplaceable(par1World, var7, var8, var9, Block.stone.blockID))
{
par1World.setBlock(var7, var8, var9, Block.oreEmerald.blockID, 0, 2);
}
}
//TODO: getRandomWorldGenForTrees()
public WorldGenAbstractTree func_150567_a(Random random)
{
return random.nextInt(3) == 0 ? new WorldGenBOPTaiga3(BOPBlockHelper.get("logs1"), BOPBlockHelper.get("leaves2"), 3, 1, false, 35, 10, 0):
(random.nextInt(5) == 0 ? new WorldGenBOPTaiga2(BOPBlockHelper.get("logs1"), BOPBlockHelper.get("leaves2"), 3, 1, false, 20, 15, 4) :
new WorldGenBOPTaiga2(BOPBlockHelper.get("logs1"), BOPBlockHelper.get("leaves2"), 3, 1, false, 10, 10, 5));
}
*/
@Override
public HashMap<WorldGenerator, Double> getWeightedWorldGenForGrass()
{
HashMap<WorldGenerator, Double> grassMap = new HashMap();
grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 0.5D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 2), 1D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
return grassMap;
}
@Override
public void decorate(World world, Random random, int chunkX, int chunkZ)
{
super.decorate(world, random, chunkX, chunkZ);
int var5 = 12 + random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int x = chunkX + random.nextInt(16);
int y = random.nextInt(28) + 4;
int z = chunkZ + random.nextInt(16);
//TODO: getBlock()
Block block = world.func_147439_a(x, y, z);
if (block != null && block.isReplaceableOreGen(world, x, y, z, Blocks.stone))
{
//TODO: setBlock()
world.func_147465_d(x, y, z, BOPBlockHelper.get("gemOre"), 0, 2);
}
}
}
}

View File

@ -1,93 +1,112 @@
package biomesoplenty.common.biomes;
import net.minecraft.world.biome.BiomeGenBase;
import java.util.HashMap;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase.Height;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.BOPBlockHelper;
import biomesoplenty.common.world.features.WorldGenBOPFlora;
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
import biomesoplenty.common.world.features.trees.WorldGenChaparral2;
import biomesoplenty.common.world.features.trees.WorldGenPoplar;
import biomesoplenty.common.world.features.trees.WorldGenPoplar2;
public class BiomeGenGrove extends BOPBiome
{
private static final Height biomeHeight = new Height(0.3F, 0.4F);
public BiomeGenGrove(int par1)
public BiomeGenGrove(int id)
{
super(par1);
/*
theBiomeDecorator = new BiomeDecoratorBOP(this);
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
customBiomeDecorator.treesPerChunk = 3;
customBiomeDecorator.flowersPerChunk = 5;
customBiomeDecorator.tinyFlowersPerChunk = 80;
customBiomeDecorator.whiteFlowersPerChunk = 15;
customBiomeDecorator.grassPerChunk = 8;
customBiomeDecorator.wheatGrassPerChunk = 4;
customBiomeDecorator.sproutsPerChunk = 1;
customBiomeDecorator.lilyflowersPerChunk = 3;
customBiomeDecorator.berryBushesPerChunk = 2;
customBiomeDecorator.shrubsPerChunk = 3;
customBiomeDecorator.cloverPatchesPerChunk = 20;
customBiomeDecorator.generatePumpkins = false;
*/
super(id);
//TODO: setHeight()
this.func_150570_a(biomeHeight);
//TODO: setColor()
this.setColor(5341009);
this.setTemperatureRainfall(0.4F, 0.8F);
this.theBiomeDecorator.treesPerChunk = 3;
this.theBiomeDecorator.flowersPerChunk = 5;
this.theBiomeDecorator.grassPerChunk = 8;
this.bopWorldFeatures.bopFlowersPerChunk = 50;
this.bopWorldFeatures.sproutsPerChunk = 1;
this.bopWorldFeatures.berryBushesPerChunk = 2;
this.bopWorldFeatures.shrubsPerChunk = 3;
this.bopWorldFeatures.cloverPatchesPerChunk = 20;
this.bopWorldFeatures.generatePumpkins = false;
}
/**
* Gets a WorldGen appropriate for this biome.
*/
/*
@Override
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
{
return par1Random.nextInt(2) == 0 ? new WorldGenChaparral2() : par1Random.nextInt(3) == 0 ? new WorldGenPoplar2() : new WorldGenPoplar();
}
*/
/**
* Gets a WorldGen appropriate for this biome.
*/
/*
@Override
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
{
return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(Blocks.foliage.get().blockID, 2);
//TODO: getRandomWorldGenForTrees()
public WorldGenAbstractTree func_150567_a(Random random)
{
return random.nextInt(2) == 0 ? new WorldGenChaparral2() : random.nextInt(3) == 0 ? new WorldGenPoplar2() : new WorldGenPoplar();
}
@Override
public HashMap<WorldGenerator, Double> getWeightedWorldGenForBOPFlowers()
{
HashMap<WorldGenerator, Double> flowerMap = new HashMap();
flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 0), 16D);
flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 3D);
return flowerMap;
}
@Override
public void decorate(World par1World, Random par2Random, int par3, int par4)
public HashMap<WorldGenerator, Double> getWeightedWorldGenForGrass()
{
super.decorate(par1World, par2Random, par3, par4);
int var5 = 3 + par2Random.nextInt(6);
HashMap<WorldGenerator, Double> grassMap = new HashMap();
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);
grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 0.5D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 2), 1D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
Block block = Block.blocksList[var10];
if (block != null && block.isGenMineableReplaceable(par1World, var7, var8, var9, Block.stone.blockID))
{
par1World.setBlock(var7, var8, var9, Block.oreEmerald.blockID, 0, 2);
}
}
return grassMap;
}
*/
/**
* Provides the basic grass color based on the biome temperature and rainfall
*/
/*
@Override
public void decorate(World world, Random random, int chunkX, int chunkZ)
{
super.decorate(world, random, chunkX, chunkZ);
int var5 = 12 + random.nextInt(6);
for (int var6 = 0; var6 < var5; ++var6)
{
int x = chunkX + random.nextInt(16);
int y = random.nextInt(28) + 4;
int z = chunkZ + random.nextInt(16);
//TODO: getBlock()
Block block = world.func_147439_a(x, y, z);
if (block != null && block.isReplaceableOreGen(world, x, y, z, Blocks.stone))
{
//TODO: setBlock()
world.func_147465_d(x, y, z, BOPBlockHelper.get("gemOre"), 0, 2);
}
}
}
@Override
public int getBiomeGrassColor()
{
//TODO: getBiomeGrassColor()
public int func_150558_b(int p_150558_1_, int p_150558_2_, int p_150558_3_)
{
return 5341009;
}
*/
/**
* Provides the basic foliage color based on the biome temperature and rainfall
*/
/*
@Override
public int getBiomeFoliageColor()
{
//TODO: getBiomeFoliageColor()
public int func_150571_c(int x, int y, int z)
{
return 6396257;
}
*/
}

View File

@ -10,7 +10,9 @@ import biomesoplenty.common.biomes.BiomeGenBambooForest;
import biomesoplenty.common.biomes.BiomeGenBorealForest;
import biomesoplenty.common.biomes.BiomeGenBrushland;
import biomesoplenty.common.biomes.BiomeGenCanyon;
import biomesoplenty.common.biomes.BiomeGenChaparral;
import biomesoplenty.common.biomes.BiomeGenCherryBlossomGrove;
import biomesoplenty.common.biomes.BiomeGenConiferousForest;
import biomesoplenty.common.biomes.BiomeGenCrag;
import biomesoplenty.common.biomes.BiomeGenDeadForest;
import biomesoplenty.common.biomes.BiomeGenDeciduousForest;
@ -19,6 +21,7 @@ import biomesoplenty.common.biomes.BiomeGenFen;
import biomesoplenty.common.biomes.BiomeGenFlowerField;
import biomesoplenty.common.biomes.BiomeGenFrostForest;
import biomesoplenty.common.biomes.BiomeGenGrassland;
import biomesoplenty.common.biomes.BiomeGenGrove;
import biomesoplenty.common.biomes.BiomeGenHighland;
import biomesoplenty.common.biomes.BiomeGenJadeCliffs;
import biomesoplenty.common.biomes.BiomeGenLavenderFields;
@ -79,10 +82,10 @@ public class BOPBiomes
registerBiome(new BOPBiomeListEntry(new BiomeGenBorealForest(BOPConfigurationIDs.borealForestID).setBiomeName("Boreal Forest"), BOPBiomeTemperatureType.WARM));
registerBiome(new BOPBiomeListEntry(new BiomeGenBrushland(BOPConfigurationIDs.brushlandID).setBiomeName("Brushland"), BOPBiomeTemperatureType.HOT));
registerBiome(new BOPBiomeListEntry(new BiomeGenCanyon(BOPConfigurationIDs.canyonID).setBiomeName("Canyon"), BOPBiomeTemperatureType.HOT));
//registerBiome(new BOPBiomeListEntry(new BiomeGenChaparral(BOPConfigurationIDs.chaparralID).setBiomeName("Chaparral"), BOPBiomeTemperatureType.WARM));*/
registerBiome(new BOPBiomeListEntry(new BiomeGenChaparral(BOPConfigurationIDs.chaparralID).setBiomeName("Chaparral"), BOPBiomeTemperatureType.WARM));
registerBiome(new BOPBiomeListEntry(new BiomeGenCherryBlossomGrove(BOPConfigurationIDs.cherryBlossomGroveID).setBiomeName("Cherry Blossom Grove"), BOPBiomeTemperatureType.COOL));
/*registerBiome(new BOPBiomeListEntry(new BiomeGenConiferousForest(BOPConfigurationIDs.coniferousForestID).setBiomeName("Coniferous Forest"), BOPBiomeTemperatureType.WARM));
registerBiome(new BOPBiomeListEntry(new BiomeGenConiferousForestSnow(BOPConfigurationIDs.coniferousForestSnowID).setBiomeName("Snowy Coniferous Forest"), BOPBiomeTemperatureType.ICY));*/
registerOnlyBiome(new BOPBiomeListEntry(new BiomeGenConiferousForest(BOPConfigurationIDs.coniferousForestID).setBiomeName("Coniferous Forest"), BOPBiomeTemperatureType.WARM));
//registerBiome(new BOPBiomeListEntry(new BiomeGenConiferousForestSnow(BOPConfigurationIDs.coniferousForestSnowID).setBiomeName("Snowy Coniferous Forest"), BOPBiomeTemperatureType.ICY));*/
registerBiome(new BOPBiomeListEntry(new BiomeGenCrag(BOPConfigurationIDs.cragID).setBiomeName("Crag"), BOPBiomeTemperatureType.HOT));
registerBiome(new BOPBiomeListEntry(new BiomeGenDeadForest(BOPConfigurationIDs.deadForestID).setBiomeName("Dead Forest"), BOPBiomeTemperatureType.COOL));
//registerBiome(new BOPBiomeListEntry(new BiomeGenDeadSwamp(BOPConfigurationIDs.deadSwampID).setBiomeName("Dead Swamp"), BOPBiomeTemperatureType.WARM));*/
@ -92,7 +95,7 @@ public class BOPBiomes
registerBiome(new BOPBiomeListEntry(new BiomeGenFlowerField(BOPConfigurationIDs.flowerFieldID).setBiomeName("Flower Field"), BOPBiomeTemperatureType.WARM));
registerBiome(new BOPBiomeListEntry(new BiomeGenFrostForest(BOPConfigurationIDs.frostForestID).setBiomeName("Frost Forest"), BOPBiomeTemperatureType.ICY));
registerBiome(new BOPBiomeListEntry(new BiomeGenGrassland(BOPConfigurationIDs.grasslandID).setBiomeName("Grassland"), BOPBiomeTemperatureType.WARM));
//registerBiome(new BOPBiomeListEntry(new BiomeGenGrove(BOPConfigurationIDs.groveID).setBiomeName("Grove"), BOPBiomeTemperatureType.WARM));
registerBiome(new BOPBiomeListEntry(new BiomeGenGrove(BOPConfigurationIDs.groveID).setBiomeName("Grove"), BOPBiomeTemperatureType.WARM));
/*registerBiome(new BOPBiomeListEntry(new BiomeGenHeathland(BOPConfigurationIDs.heathlandID).setBiomeName("Heathland"), BOPBiomeTemperatureType.WARM));*/
registerBiome(new BOPBiomeListEntry(new BiomeGenHighland(BOPConfigurationIDs.highlandID).setBiomeName("Highland"), BOPBiomeTemperatureType.WARM));
registerBiome(new BOPBiomeListEntry(new BiomeGenJadeCliffs(BOPConfigurationIDs.jadeCliffsID).setBiomeName("Jade Cliffs"), BOPBiomeTemperatureType.WARM));

View File

@ -5,6 +5,7 @@ public class BOPWorldFeatures
public boolean generatePumpkins = true;
public boolean generateQuicksand = false;
public boolean generateCanyon = false;
public boolean generateStoneInGrass = false;
public int waterPoolsPerChunk = 0;
public int lavaPoolsPerChunk = 0;
@ -35,6 +36,7 @@ public class BOPWorldFeatures
public int cattailsPerChunk = 0;
public int highCattailsPerChunk = 0;
public int algaePerChunk = 0;
public int sproutsPerChunk = 0;
public int bopFlowersPerChunk = 0;
}

View File

@ -1,76 +0,0 @@
package biomesoplenty.common.world.features;
import java.lang.reflect.Field;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.BOPBlockHelper;
import biomesoplenty.common.world.decoration.IBOPDecoration;
import biomesoplenty.common.world.generation.WorldGeneratorBOP;
public class WorldGenMud extends WorldGeneratorBOP
{
/** The maximum radius used when generating a patch of blocks. */
private int radius;
public WorldGenMud(int radius)
{
this.radius = radius;
}
@Override
public boolean generate(World world, Random random, int x, int y, int z)
{
//TODO: getBlock() getMaterial() water
if (world.func_147439_a(x, y, z).func_149688_o() != Material.field_151586_h)
return false;
else
{
int var6 = random.nextInt(radius - 2) + 2;
byte var7 = 2;
for (int var8 = x - var6; var8 <= x + var6; ++var8)
{
for (int var9 = z - var6; var9 <= z + var6; ++var9)
{
int var10 = var8 - x;
int var11 = var9 - z;
if (var10 * var10 + var11 * var11 <= var6 * var6)
{
for (int var12 = y - var7; var12 <= y + var7; ++var12)
{
//TODO: getBlock()
Block block = world.func_147439_a(var8, var12, var9);
if (block == Blocks.dirt || block == Blocks.grass)
{
//TODO: setBlock()
world.func_147449_b(var8, var12, var9, BOPBlockHelper.get("mud"));
}
}
}
}
}
return true;
}
}
@Override
public void doGeneration(World world, Random random, Field worldGeneratorField, WorldGenerator worldGenerator, BiomeGenBase biome, IBOPDecoration bopDecoration, int x, int z) throws Exception
{
for (int i = 0; i < worldGeneratorField.getInt(bopDecoration.getWorldFeatures()); i++)
{
int randX = x + random.nextInt(16) + 8;
int randZ = z + random.nextInt(16) + 8;
worldGenerator.generate(world, random, randX, world.getTopSolidOrLiquidBlock(randX, randZ), randZ);
}
}
}

View File

@ -111,5 +111,16 @@ public class WorldGenSplotches extends WorldGeneratorBOP
worldGenerator.generate(world, random, randX, randY, randZ);
}
}
else if (fieldName.equals("generateStoneInGrass") && bopDecoration.getWorldFeatures().generateStoneInGrass)
{
for (int i = 0; i < 15; ++i)
{
int randX = x + random.nextInt(16);
int randY = random.nextInt(64) + 64;
int randZ = z + random.nextInt(16);
worldGenerator.generate(world, random, randX, randY, randZ);
}
}
}
}

View File

@ -64,6 +64,18 @@ public class WorldGenBOPTaiga2 extends WorldGenAbstractTree
j1 = l - i1;
k1 = 2 + random.nextInt(2);
break;
case 4:
i1 = 8 + random.nextInt(4);
j1 = l - i1;
k1 = 2 + random.nextInt(2);
break;
case 5:
i1 = 2;
j1 = l - i1;
k1 = 2 + random.nextInt(2);
break;
default:
i1 = 1 + random.nextInt(2);
@ -176,7 +188,6 @@ public class WorldGenBOPTaiga2 extends WorldGenAbstractTree
if (block2.isAir(world, x, y + k2, z) || block2.isLeaves(world, x, y + k2, z))
{
this.func_150516_a(world, x, y + k2, z, Blocks.log, 1);
//TODO: setBlockAndMetadata()
this.func_150516_a(world, x, y + k2, z, wood, metaWood);
}

View File

@ -0,0 +1,200 @@
package biomesoplenty.common.world.features.trees;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSapling;
import net.minecraft.init.Blocks;
import net.minecraft.util.Direction;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
import net.minecraftforge.common.util.ForgeDirection;
public class WorldGenBOPTaiga3 extends WorldGenAbstractTree
{
private final int minTreeHeight;
private final int randomTreeHeight;
private final Block wood;
private final Block leaves;
private final int metaWood;
private final int metaLeaves;
private final int altNo;
public WorldGenBOPTaiga3(Block wood, Block leaves, int metaWood, int metaLeaves, boolean doBlockNotify, int minTreeHeight, int randomTreeHeight, int altNo)
{
super(doBlockNotify);
this.wood = wood;
this.leaves = leaves;
this.metaWood = metaWood;
this.metaLeaves = metaLeaves;
this.minTreeHeight = minTreeHeight;
this.randomTreeHeight = randomTreeHeight;
this.altNo = altNo;
}
@Override
public boolean generate(World world, Random random, int x, int y, int z)
{
int l = random.nextInt(randomTreeHeight) + minTreeHeight;
int i1;
int j1;
int k1;
switch (altNo)
{
default:
i1 = 10 + random.nextInt(5);
j1 = l - i1;
k1 = 4;
break;
}
boolean flag = true;
if (y >= 1 && y + l + 1 <= 256)
{
int i2;
int l3;
for (int l1 = y; l1 <= y + 1 + l && flag; ++l1)
{
boolean flag1 = true;
if (l1 - y < i1)
{
l3 = 0;
}
else
{
l3 = k1;
}
for (i2 = x - l3; i2 <= x + l3 && flag; ++i2)
{
for (int j2 = z - l3; j2 <= z + l3 && flag; ++j2)
{
if (l1 >= 0 && l1 < 256)
{
Block block = world.func_147439_a(i2, l1, j2);
if (!block.isAir(world, i2, l1, j2) && !block.isLeaves(world, i2, l1, j2))
{
flag = false;
}
}
else
{
flag = false;
}
}
}
}
if (!flag)
{
return false;
}
else
{
Block block1 = world.func_147439_a(x, y - 1, z);
Block block2 = world.func_147439_a(x + 1, y - 1, z);
Block block3 = world.func_147439_a(x - 1, y - 1, z);
Block block4 = world.func_147439_a(x, y - 1, z + 1);
Block block5 = world.func_147439_a(x, y - 1, z - 1);
boolean isSoil = block1.canSustainPlant(world, x, y - 1, z, ForgeDirection.UP, (BlockSapling)Blocks.sapling) &&
block2.canSustainPlant(world, x + 1, y - 1, z, ForgeDirection.UP, (BlockSapling)Blocks.sapling) &&
block3.canSustainPlant(world, x - 1, y - 1, z, ForgeDirection.UP, (BlockSapling)Blocks.sapling) &&
block4.canSustainPlant(world, x, y - 1, z + 1, ForgeDirection.UP, (BlockSapling)Blocks.sapling) &&
block5.canSustainPlant(world, x, y - 1, z - 1, ForgeDirection.UP, (BlockSapling)Blocks.sapling);
if (isSoil && y < 256 - l - 1)
{
block1.onPlantGrow(world, x, y - 1, z, x, y, z);
block1.onPlantGrow(world, x + 1, y - 1, z, x + 1, y, z);
block1.onPlantGrow(world, x - 1, y - 1, z, x - 1, y, z);
block1.onPlantGrow(world, x, y - 1, z + 1, x, y, z + 1);
block1.onPlantGrow(world, x, y - 1, z - 1, x, y, z - 1);
l3 = random.nextInt(2);
i2 = 1;
byte b0 = 0;
int k2;
int i4;
for (i4 = 0; i4 <= j1; ++i4)
{
k2 = y + l - i4;
for (int l2 = x - l3; l2 <= x + l3; ++l2)
{
int i3 = l2 - x;
for (int j3 = z - l3; j3 <= z + l3; ++j3)
{
int k3 = j3 - z;
if ((Math.abs(i3) != l3 || Math.abs(k3) != l3 || l3 <= 0) && world.func_147439_a(l2, k2, j3).canBeReplacedByLeaves(world, l2, k2, j3))
{
//TODO: setBlockAndMetadata()
this.func_150516_a(world, l2, k2, j3, leaves, this.metaLeaves);
this.func_150516_a(world, l2 + 1, k2, j3, leaves, this.metaLeaves);
this.func_150516_a(world, l2 - 1, k2, j3, leaves, this.metaLeaves);
this.func_150516_a(world, l2, k2, j3 + 1, leaves, this.metaLeaves);
this.func_150516_a(world, l2, k2, j3 - 1, leaves, this.metaLeaves);
}
}
}
if (l3 >= i2)
{
l3 = b0;
b0 = 1;
++i2;
if (i2 > k1)
{
i2 = k1;
}
}
else
{
++l3;
}
}
i4 = random.nextInt(3);
for (int i = 0; i < l - i4; ++i)
{
Block block6 = world.func_147439_a(x, y + i, z);
if (block6.isAir(world, x, y + i, z) || block6.isLeaves(world, x, y + i, z))
{
//TODO: setBlockAndMetadata()
this.func_150516_a(world, x, y + i, z, wood, metaWood);
this.func_150516_a(world, x + 1, y + i, z, wood, metaWood);
this.func_150516_a(world, x - 1, y + i, z, wood, metaWood);
this.func_150516_a(world, x, y + i, z + 1, wood, metaWood);
this.func_150516_a(world, x, y + i, z - 1, wood, metaWood);
}
}
return true;
}
else
{
return false;
}
}
}
else
{
return false;
}
}
}

View File

@ -0,0 +1,51 @@
package biomesoplenty.common.world.features.trees;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
public class WorldGenChaparral3 extends WorldGenAbstractTree
{
public WorldGenChaparral3()
{
super(false);
}
@Override
public boolean generate(World world, Random random, int x, int y, int z)
{
//TODO: isAirBlock()
while (world.func_147437_c(x, y, z) && y > 2)
{
--y;
}
//TODO: getBlock()
Block block = world.func_147439_a(x, y, z);
if (block != Blocks.grass && block != Blocks.sand)
{
return false;
}
else
{
for (int var7 = -2; var7 <= 2; ++var7)
{
for (int var8 = -2; var8 <= 2; ++var8)
{
//TODO: isAirBlock() isAirBlock()
if (world.func_147437_c(x + var7, y - 1, z + var8) && world.func_147437_c(x + var7, y - 2, z + var8))
return false;
}
}
//TODO: setBlock()
world.func_147449_b(x, y, z, Blocks.log);
world.func_147449_b(x, y + 1, z, Blocks.leaves);
return true;
}
}
}

View File

@ -0,0 +1,136 @@
package biomesoplenty.common.world.features.trees;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
public class WorldGenPoplar extends WorldGenAbstractTree
{
public WorldGenPoplar()
{
super(false);
}
@Override
public boolean generate(World world, Random random, int x, int y, int z)
{
//TODO: isAirBlock()
while (world.func_147437_c(x, y, z) && y > 2)
{
--y;
}
//TODO: getBlock()
Block block = world.func_147439_a(x, y, z);
if (block != Blocks.grass)
{
return false;
}
else
{
for (int var7 = -2; var7 <= 2; ++var7)
{
for (int var8 = -2; var8 <= 2; ++var8)
{
//TODO: isAirBlock() isAirBlock() isAirBlock()
if (world.func_147437_c(x + var7, y - 1, z + var8) && world.func_147437_c(x + var7, y - 2, z + var8) && !world.func_147437_c(x + var7, y, z + var8))
return false;
}
}
//TODO: setBlock()
world.func_147449_b(x, y, z, Blocks.dirt);
world.func_147465_d(x, y + 1, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 2, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 3, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 4, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 5, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 6, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 7, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 8, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 9, z, Blocks.log, 1, 2);
world.func_147465_d(x + 1, y + 3, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 3, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 3, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 3, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 4, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 4, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 4, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 4, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 4, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 4, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 4, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 4, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 5, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 5, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 5, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 5, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 5, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 5, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 5, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 5, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 2, y + 5, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 2, y + 5, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 5, z + 2, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 5, z - 2, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 6, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 6, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 6, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 6, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 6, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 6, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 6, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 6, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 2, y + 6, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 2, y + 6, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 6, z + 2, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 6, z - 2, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 7, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 7, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 7, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 7, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 7, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 7, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 7, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 7, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 2, y + 7, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 2, y + 7, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 7, z + 2, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 7, z - 2, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 8, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 8, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 8, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 8, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 8, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 8, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 8, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 8, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 9, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 9, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 9, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 9, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 10, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 10, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 10, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 10, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 11, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 12, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 13, z, Blocks.leaves, 1, 2);
return true;
}
}
}

View File

@ -0,0 +1,140 @@
package biomesoplenty.common.world.features.trees;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
public class WorldGenPoplar2 extends WorldGenAbstractTree
{
public WorldGenPoplar2()
{
super(false);
}
@Override
public boolean generate(World world, Random random, int x, int y, int z)
{
//TODO: isAirBlock()
while (world.func_147437_c(x, y, z) && y > 2)
{
--y;
}
//TODO: getBlock()
Block block = world.func_147439_a(x, y, z);
if (block != Blocks.grass)
{
return false;
}
else
{
for (int var7 = -2; var7 <= 2; ++var7)
{
for (int var8 = -2; var8 <= 2; ++var8)
{
//TODO: isAirBlock() isAirBlock() isAirBlock()
if (world.func_147437_c(x + var7, y - 1, z + var8) && world.func_147437_c(x + var7, y - 2, z + var8) && !world.func_147437_c(x + var7, y, z + var8))
return false;
}
}
world.func_147449_b(x, y, z, Blocks.dirt);
world.func_147465_d(x, y + 1, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 2, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 3, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 4, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 5, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 6, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 7, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 8, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 9, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 10, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 11, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 12, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 13, z, Blocks.log, 1, 2);
world.func_147465_d(x, y + 14, z, Blocks.log, 1, 2);
world.func_147465_d(x + 1, y + 7, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 7, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 7, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 7, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 8, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 8, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 8, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 8, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 8, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 8, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 8, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 8, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 9, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 9, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 9, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 9, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 9, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 9, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 9, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 9, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 2, y + 9, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 2, y + 9, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 9, z + 2, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 9, z - 2, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 10, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 10, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 10, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 10, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 10, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 10, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 10, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 10, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 2, y + 10, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 2, y + 10, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 10, z + 2, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 10, z - 2, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 11, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 11, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 11, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 11, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 11, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 11, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 11, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 11, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 2, y + 11, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 2, y + 11, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 11, z + 2, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 11, z - 2, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 12, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 12, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 12, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 12, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 12, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 12, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 12, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 12, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 13, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 13, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 13, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 13, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x + 1, y + 14, z, Blocks.leaves, 1, 2);
world.func_147465_d(x - 1, y + 14, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 14, z + 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 14, z - 1, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 15, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 16, z, Blocks.leaves, 1, 2);
world.func_147465_d(x, y + 17, z, Blocks.leaves, 1, 2);
return true;
}
}
}

View File

@ -6,12 +6,12 @@ import net.minecraft.init.Blocks;
import net.minecraft.world.gen.feature.WorldGenDoublePlant;
import net.minecraft.world.gen.feature.WorldGenLakes;
import net.minecraft.world.gen.feature.WorldGenLiquids;
import net.minecraft.world.gen.feature.WorldGenSand;
import net.minecraft.world.gen.feature.WorldGenerator;
import biomesoplenty.api.BOPBlockHelper;
import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora;
import biomesoplenty.common.world.features.WorldGenBOPFlora;
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
import biomesoplenty.common.world.features.WorldGenMud;
import biomesoplenty.common.world.features.WorldGenRiverCane;
import biomesoplenty.common.world.features.WorldGenSplotches;
import biomesoplenty.common.world.features.WorldGenWaterReeds;
@ -29,6 +29,7 @@ public class WorldGenFieldAssociation
{
associateField("generateQuicksand", new WorldGenSplotches(BOPBlockHelper.get("mud"), 1, 24));
associateField("generateCanyon", new WorldGenSplotches(BOPBlockHelper.get("redRock"), 0, 48));
associateField("generateStoneInGrass", new WorldGenSplotches(Blocks.stone, 0, 32));
associateField("waterPoolsPerChunk", new WorldGenLiquids(Blocks.flowing_water));
associateField("lavaPoolsPerChunk", new WorldGenLiquids(Blocks.flowing_lava));
@ -36,7 +37,7 @@ public class WorldGenFieldAssociation
associateField("waterLakesPerChunk", new WorldGenLakes(Blocks.water));
associateField("lavaLakesPerChunk", new WorldGenLakes(Blocks.lava));
associateField("mudPerChunk", new WorldGenMud(7));
associateField("mudPerChunk", new WorldGenSand(BOPBlockHelper.get("mud"), 7));
associateField("riverCanePerChunk", new WorldGenRiverCane());
associateField("shrubsPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("foliage"), 9));
associateField("bushesPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("foliage"), 4));
@ -58,6 +59,7 @@ public class WorldGenFieldAssociation
associateField("cattailsPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("plants"), 7));
associateField("highCattailsPerChunk", new WorldGenBOPDoubleFlora(BOPBlockHelper.get("plants"), BOPBlockHelper.get("plants"), 10, 9));
associateField("algaePerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("foliage"), 0));
associateField("sproutsPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("foliage"), 5));
WorldGenDoublePlant doubleTallGrass = new WorldGenDoublePlant();
//TODO: setMetadata() ?