*Hopefully* fixed decoration amounts, readded the canyon, brushland and dead forest
This commit is contained in:
parent
31f049910c
commit
dd74340d1b
18 changed files with 595 additions and 154 deletions
|
@ -1,47 +1,56 @@
|
||||||
package biomesoplenty.common.biomes;
|
package biomesoplenty.common.biomes;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
|
||||||
import net.minecraft.world.gen.feature.WorldGenTallGrass;
|
|
||||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||||
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
|
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenBrush1;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenBrush2;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenChaparral2;
|
||||||
|
|
||||||
public class BiomeGenBrushland extends BOPBiome
|
public class BiomeGenBrushland extends BOPBiome
|
||||||
{
|
{
|
||||||
|
private static final Height biomeHeight = new Height(0.3F, 0.3F);
|
||||||
|
|
||||||
public BiomeGenBrushland(int id)
|
public BiomeGenBrushland(int id)
|
||||||
{
|
{
|
||||||
super(id);
|
super(id);
|
||||||
|
|
||||||
|
//TODO: setHeight()
|
||||||
|
this.func_150570_a(biomeHeight);
|
||||||
|
//TODO: setColor()
|
||||||
|
this.setColor(13222271);
|
||||||
|
this.setTemperatureRainfall(2.0F, 0.05F);
|
||||||
|
|
||||||
this.theBiomeDecorator.treesPerChunk = 10;
|
this.theBiomeDecorator.treesPerChunk = 10;
|
||||||
this.theBiomeDecorator.grassPerChunk = 6;
|
this.theBiomeDecorator.grassPerChunk = 6;
|
||||||
this.theBiomeDecorator.flowersPerChunk = -999;
|
this.theBiomeDecorator.flowersPerChunk = -999;
|
||||||
|
|
||||||
/*customBiomeDecorator.thornsPerChunk = 4;
|
this.bopWorldFeatures.thornsPerChunk = 4;
|
||||||
customBiomeDecorator.shrubsPerChunk = 30;
|
this.bopWorldFeatures.shrubsPerChunk = 30;
|
||||||
customBiomeDecorator.waterReedsPerChunk = 2;
|
this.bopWorldFeatures.waterReedsPerChunk = 2;
|
||||||
customBiomeDecorator.generateQuicksand = true;*/
|
this.bopWorldFeatures.generateQuicksand = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Override
|
@Override
|
||||||
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
|
//TODO: getRandomWorldGenForTrees()
|
||||||
|
public WorldGenAbstractTree func_150567_a(Random random)
|
||||||
{
|
{
|
||||||
return par1Random.nextInt(2) == 0 ? new WorldGenBrush2() : (par1Random.nextInt(5) == 0 ? new WorldGenBrush1() : new WorldGenChaparral2());
|
return random.nextInt(2) == 0 ? new WorldGenBrush2() : (random.nextInt(5) == 0 ? new WorldGenBrush1() : new WorldGenChaparral2());
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HashMap<WorldGenerator, Double> getWeightedWorldGenForGrass()
|
public HashMap<WorldGenerator, Double> getWeightedWorldGenForGrass()
|
||||||
{
|
{
|
||||||
HashMap<WorldGenerator, Double> grassMap = new HashMap();
|
HashMap<WorldGenerator, Double> grassMap = new HashMap();
|
||||||
|
|
||||||
grassMap.put(new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
|
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
|
||||||
grassMap.put(new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
|
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
|
||||||
grassMap.put(new WorldGenTallGrass(Blocks.tallgrass, 1), 1D);
|
grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D);
|
||||||
|
|
||||||
return grassMap;
|
return grassMap;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,80 +1,100 @@
|
||||||
package biomesoplenty.common.biomes;
|
package biomesoplenty.common.biomes;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
|
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenBOPShrub;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenPineTree;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
import net.minecraft.world.biome.BiomeGenBase;
|
||||||
|
import net.minecraft.world.biome.BiomeGenBase.Height;
|
||||||
|
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
|
||||||
|
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||||
|
|
||||||
public class BiomeGenCanyon extends BOPBiome
|
public class BiomeGenCanyon extends BOPBiome
|
||||||
{
|
{
|
||||||
|
private static final Height biomeHeight = new Height(1.5F, 2.0F);
|
||||||
|
|
||||||
public BiomeGenCanyon(int par1)
|
public BiomeGenCanyon(int id)
|
||||||
{
|
{
|
||||||
super(par1);
|
super(id);
|
||||||
/*
|
|
||||||
spawnableCreatureList.clear();
|
|
||||||
theBiomeDecorator = new BiomeDecoratorBOP(this);
|
|
||||||
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
|
||||||
topBlock = (byte)Blocks.hardDirt.get().blockID;
|
|
||||||
fillerBlock = (byte)Blocks.hardDirt.get().blockID;
|
|
||||||
customBiomeDecorator.treesPerChunk = 7;
|
|
||||||
customBiomeDecorator.flowersPerChunk = -999;
|
|
||||||
customBiomeDecorator.canyonGrassPerChunk = 5;
|
|
||||||
customBiomeDecorator.aloePerChunk = 2;
|
|
||||||
customBiomeDecorator.waterReedsPerChunk = 2;
|
|
||||||
customBiomeDecorator.generatePumpkins = false;
|
|
||||||
customBiomeDecorator.generateCanyon = true;
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
//TODO: setHeight()
|
||||||
* Gets a WorldGen appropriate for this biome.
|
this.func_150570_a(biomeHeight);
|
||||||
*/
|
//TODO: setColor()
|
||||||
/*
|
this.setColor(11836528);
|
||||||
@Override
|
this.setTemperatureRainfall(0.8F, 0.4F);
|
||||||
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
|
|
||||||
{
|
this.spawnableCreatureList.clear();
|
||||||
return par1Random.nextInt(9) == 0 ? new WorldGenPineTree() : new WorldGenCanyonShrub(0,0);
|
|
||||||
|
this.topBlock = BOPBlockHelper.get("hardDirt");
|
||||||
|
this.fillerBlock = BOPBlockHelper.get("hardDirt");
|
||||||
|
this.theBiomeDecorator.grassPerChunk = 5;
|
||||||
|
this.theBiomeDecorator.treesPerChunk = 7;
|
||||||
|
this.theBiomeDecorator.flowersPerChunk = -999;
|
||||||
|
|
||||||
|
this.bopWorldFeatures.bromeliadsPerChunk = 2;
|
||||||
|
this.bopWorldFeatures.waterReedsPerChunk = 2;
|
||||||
|
this.bopWorldFeatures.generatePumpkins = false;
|
||||||
|
this.bopWorldFeatures.generateCanyon = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void decorate(World par1World, Random par2Random, int par3, int par4)
|
//TODO: getRandomWorldGenForTrees()
|
||||||
|
public WorldGenAbstractTree func_150567_a(Random random)
|
||||||
{
|
{
|
||||||
super.decorate(par1World, par2Random, par3, par4);
|
return random.nextInt(9) == 0 ? new WorldGenPineTree() : new WorldGenBOPShrub(Blocks.log2, Blocks.leaves2, 0, 0, 86, 96, BOPBlockHelper.get("hardDirt"));
|
||||||
int var5 = 12 + par2Random.nextInt(6);
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HashMap<WorldGenerator, Double> getWeightedWorldGenForGrass()
|
||||||
|
{
|
||||||
|
HashMap<WorldGenerator, Double> grassMap = new HashMap();
|
||||||
|
|
||||||
|
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 2), 1D);
|
||||||
|
|
||||||
|
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)
|
for (int var6 = 0; var6 < var5; ++var6)
|
||||||
{
|
{
|
||||||
int var7 = par3 + par2Random.nextInt(16);
|
int x = chunkX + random.nextInt(16);
|
||||||
int var8 = par2Random.nextInt(28) + 4;
|
int y = random.nextInt(28) + 4;
|
||||||
int var9 = par4 + par2Random.nextInt(16);
|
int z = chunkZ + random.nextInt(16);
|
||||||
int var10 = par1World.getBlockId(var7, var8, var9);
|
|
||||||
|
|
||||||
Block block = Block.blocksList[var10];
|
//TODO: getBlock()
|
||||||
if (block != null && block.isGenMineableReplaceable(par1World, var7, var8, var9, Block.stone.blockID))
|
Block block = world.func_147439_a(x, y, z);
|
||||||
|
|
||||||
|
if (block != null && block.isReplaceableOreGen(world, x, y, z, Blocks.stone))
|
||||||
{
|
{
|
||||||
par1World.setBlock(var7, var8, var9, Blocks.amethystOre.get().blockID, 2, 2);
|
//TODO: setBlock()
|
||||||
|
world.func_147465_d(x, y, z, BOPBlockHelper.get("gemOre"), 2, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides the basic foliage color based on the biome temperature and rainfall
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@Override
|
@Override
|
||||||
public int getBiomeFoliageColor()
|
//TODO: getBiomeFoliageColor()
|
||||||
|
public int func_150571_c(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return 11123300;
|
return 11123300;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides the basic foliage color based on the biome temperature and rainfall
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@Override
|
@Override
|
||||||
public int getBiomeGrassColor()
|
//TODO: getBiomeGrassColor()
|
||||||
|
public int func_150558_b(int p_150558_1_, int p_150558_2_, int p_150558_3_)
|
||||||
{
|
{
|
||||||
|
|
||||||
return 11123300;
|
return 11123300;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,91 +1,83 @@
|
||||||
package biomesoplenty.common.biomes;
|
package biomesoplenty.common.biomes;
|
||||||
|
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
import java.util.HashMap;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
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.configuration.BOPConfigurationMisc;
|
||||||
|
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenBOPTaiga2;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenDeadTree1;
|
||||||
|
import biomesoplenty.common.world.features.trees.WorldGenOriginalTree;
|
||||||
|
|
||||||
public class BiomeGenDeadForest extends BOPBiome
|
public class BiomeGenDeadForest extends BOPBiome
|
||||||
{
|
{
|
||||||
|
private static final Height biomeHeight = new Height(0.2F, 0.7F);
|
||||||
|
|
||||||
public BiomeGenDeadForest(int par1)
|
public BiomeGenDeadForest(int id)
|
||||||
{
|
{
|
||||||
super(par1);
|
super(id);
|
||||||
/*
|
|
||||||
theBiomeDecorator = new BiomeDecoratorBOP(this);
|
//TODO: setHeight()
|
||||||
customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator;
|
this.func_150570_a(biomeHeight);
|
||||||
customBiomeDecorator.treesPerChunk = 3;
|
//TODO: setColor()
|
||||||
customBiomeDecorator.grassPerChunk = 1;
|
this.setColor(12362085);
|
||||||
customBiomeDecorator.thornsPerChunk = 2;
|
this.setTemperatureRainfall(1.2F, 0.1F);
|
||||||
customBiomeDecorator.flowersPerChunk = -999;
|
|
||||||
customBiomeDecorator.reedsPerChunk = -999;
|
this.theBiomeDecorator.treesPerChunk = 3;
|
||||||
customBiomeDecorator.wheatGrassPerChunk = 1;
|
this.theBiomeDecorator.grassPerChunk = 1;
|
||||||
customBiomeDecorator.shrubsPerChunk = 2;
|
this.theBiomeDecorator.flowersPerChunk = -999;
|
||||||
customBiomeDecorator.waterReedsPerChunk = 2;
|
this.theBiomeDecorator.reedsPerChunk = -999;
|
||||||
*/
|
|
||||||
|
this.bopWorldFeatures.shrubsPerChunk = 2;
|
||||||
|
this.bopWorldFeatures.thornsPerChunk = 2;
|
||||||
|
this.bopWorldFeatures.waterReedsPerChunk = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a WorldGen appropriate for this biome.
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@Override
|
@Override
|
||||||
public WorldGenerator getRandomWorldGenForGrass(Random par1Random)
|
public HashMap<WorldGenerator, Double> getWeightedWorldGenForGrass()
|
||||||
{
|
{
|
||||||
return par1Random.nextInt(9) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 0) : new WorldGenTallGrass(Blocks.foliage.get().blockID, 1);
|
HashMap<WorldGenerator, Double> grassMap = new HashMap();
|
||||||
}
|
|
||||||
*/
|
grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 0), 0.5D);
|
||||||
|
grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D);
|
||||||
|
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
|
||||||
|
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
|
||||||
|
|
||||||
|
return grassMap;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets a WorldGen appropriate for this biome.
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@Override
|
@Override
|
||||||
public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
|
//TODO: getRandomWorldGenForTrees()
|
||||||
|
public WorldGenAbstractTree func_150567_a(Random random)
|
||||||
{
|
{
|
||||||
return par1Random.nextInt(3) == 0 ? new WorldGenDeadTree(false) : (par1Random.nextInt(4) == 0 ? new WorldGenTaiga5(false): new WorldGenDeadTree2(false));
|
return random.nextInt(3) == 0 ? new WorldGenDeadTree1(false, Blocks.dirt, Blocks.grass, BOPBlockHelper.get("driedDirt"), BOPBlockHelper.get("mud")) :
|
||||||
|
(random.nextInt(4) == 0 ? new WorldGenBOPTaiga2(Blocks.log, Blocks.leaves, 1, 1, false, 9, 9, 2, 4, 2, 4) :
|
||||||
|
new WorldGenOriginalTree(Blocks.log, BOPBlockHelper.get("leaves2"), 0, 0, false, 5, 3, false));
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides the basic grass color based on the biome temperature and rainfall
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@Override
|
@Override
|
||||||
public int getBiomeGrassColor()
|
//TODO: getBiomeGrassColor()
|
||||||
|
public int func_150558_b(int p_150558_1_, int p_150558_2_, int p_150558_3_)
|
||||||
{
|
{
|
||||||
return 12362085;
|
return 12362085;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getBiomeFoliageColor()
|
//TODO: getBiomeFoliageColor()
|
||||||
|
public int func_150571_c(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return 12362085;
|
return 12362085;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* takes temperature, returns color
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
@Override
|
@Override
|
||||||
public int getSkyColorByTemp(float par1)
|
public int getSkyColorByTemp(float par1)
|
||||||
{
|
{
|
||||||
if (BOPConfigurationMisc.skyColors)
|
if (BOPConfigurationMisc.skyColors) return 9873591;
|
||||||
return 9873591;
|
else return super.getSkyColorByTemp(par1);
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
|
@ -3,14 +3,12 @@ package biomesoplenty.common.biomes;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
|
||||||
import net.minecraft.world.biome.BiomeGenBase.Height;
|
|
||||||
import net.minecraft.world.gen.feature.WorldGenTallGrass;
|
|
||||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||||
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
|
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
|
||||||
|
|
||||||
public class BiomeGenHighland extends BOPBiome
|
public class BiomeGenHighland extends BOPBiome
|
||||||
{
|
{
|
||||||
|
@ -38,9 +36,9 @@ public class BiomeGenHighland extends BOPBiome
|
||||||
{
|
{
|
||||||
HashMap<WorldGenerator, Double> grassMap = new HashMap();
|
HashMap<WorldGenerator, Double> grassMap = new HashMap();
|
||||||
|
|
||||||
grassMap.put(new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
|
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D);
|
||||||
grassMap.put(new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
|
grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D);
|
||||||
grassMap.put(new WorldGenTallGrass(Blocks.tallgrass, 1), 1D);
|
grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D);
|
||||||
|
|
||||||
return grassMap;
|
return grassMap;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,11 @@ import biomesoplenty.common.biomes.BiomeGenAlps;
|
||||||
import biomesoplenty.common.biomes.BiomeGenArctic;
|
import biomesoplenty.common.biomes.BiomeGenArctic;
|
||||||
import biomesoplenty.common.biomes.BiomeGenBambooForest;
|
import biomesoplenty.common.biomes.BiomeGenBambooForest;
|
||||||
import biomesoplenty.common.biomes.BiomeGenBorealForest;
|
import biomesoplenty.common.biomes.BiomeGenBorealForest;
|
||||||
|
import biomesoplenty.common.biomes.BiomeGenBrushland;
|
||||||
|
import biomesoplenty.common.biomes.BiomeGenCanyon;
|
||||||
import biomesoplenty.common.biomes.BiomeGenCherryBlossomGrove;
|
import biomesoplenty.common.biomes.BiomeGenCherryBlossomGrove;
|
||||||
import biomesoplenty.common.biomes.BiomeGenCrag;
|
import biomesoplenty.common.biomes.BiomeGenCrag;
|
||||||
|
import biomesoplenty.common.biomes.BiomeGenDeadForest;
|
||||||
import biomesoplenty.common.biomes.BiomeGenDeciduousForest;
|
import biomesoplenty.common.biomes.BiomeGenDeciduousForest;
|
||||||
import biomesoplenty.common.biomes.BiomeGenDunes;
|
import biomesoplenty.common.biomes.BiomeGenDunes;
|
||||||
import biomesoplenty.common.biomes.BiomeGenFlowerField;
|
import biomesoplenty.common.biomes.BiomeGenFlowerField;
|
||||||
|
@ -73,15 +76,15 @@ public class BOPBiomes
|
||||||
//registerBiome(new BOPBiomeListEntry(new BiomeGenBayou(BOPConfigurationIDs.bayouID).setBiomeName("Bayou"), BOPBiomeTemperatureType.WARM));
|
//registerBiome(new BOPBiomeListEntry(new BiomeGenBayou(BOPConfigurationIDs.bayouID).setBiomeName("Bayou"), BOPBiomeTemperatureType.WARM));
|
||||||
/*registerBiome(new BOPBiomeListEntry(new BiomeGenBog(BOPConfigurationIDs.bogID).setBiomeName("Bog"), BOPBiomeTemperatureType.WARM));*/
|
/*registerBiome(new BOPBiomeListEntry(new BiomeGenBog(BOPConfigurationIDs.bogID).setBiomeName("Bog"), BOPBiomeTemperatureType.WARM));*/
|
||||||
registerBiome(new BOPBiomeListEntry(new BiomeGenBorealForest(BOPConfigurationIDs.borealForestID).setBiomeName("Boreal Forest"), BOPBiomeTemperatureType.WARM));
|
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 BiomeGenBrushland(BOPConfigurationIDs.brushlandID).setBiomeName("Brushland"), BOPBiomeTemperatureType.HOT));
|
||||||
//registerBiome(new BOPBiomeListEntry(new BiomeGenCanyon(BOPConfigurationIDs.canyonID).setBiomeName("Canyon"), BOPBiomeTemperatureType.HOT));
|
registerOnlyBiome(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 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 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 BiomeGenConiferousForestSnow(BOPConfigurationIDs.coniferousForestSnowID).setBiomeName("Snowy Coniferous Forest"), BOPBiomeTemperatureType.ICY));*/
|
||||||
registerBiome(new BOPBiomeListEntry(new BiomeGenCrag(BOPConfigurationIDs.cragID).setBiomeName("Crag"), BOPBiomeTemperatureType.HOT));
|
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 BiomeGenDeadForest(BOPConfigurationIDs.deadForestID).setBiomeName("Dead Forest"), BOPBiomeTemperatureType.COOL));
|
||||||
registerBiome(new BOPBiomeListEntry(new BiomeGenDeadSwamp(BOPConfigurationIDs.deadSwampID).setBiomeName("Dead Swamp"), BOPBiomeTemperatureType.WARM));*/
|
//registerBiome(new BOPBiomeListEntry(new BiomeGenDeadSwamp(BOPConfigurationIDs.deadSwampID).setBiomeName("Dead Swamp"), BOPBiomeTemperatureType.WARM));*/
|
||||||
registerBiome(new BOPBiomeListEntry(new BiomeGenDeciduousForest(BOPConfigurationIDs.deciduousForestID).setBiomeName("Deciduous Forest"), BOPBiomeTemperatureType.WARM));
|
registerBiome(new BOPBiomeListEntry(new BiomeGenDeciduousForest(BOPConfigurationIDs.deciduousForestID).setBiomeName("Deciduous Forest"), BOPBiomeTemperatureType.WARM));
|
||||||
registerBiome(new BOPBiomeListEntry(new BiomeGenDunes(BOPConfigurationIDs.dunesID).setBiomeName("Dunes"), BOPBiomeTemperatureType.HOT));
|
registerBiome(new BOPBiomeListEntry(new BiomeGenDunes(BOPConfigurationIDs.dunesID).setBiomeName("Dunes"), BOPBiomeTemperatureType.HOT));
|
||||||
/*registerBiome(new BOPBiomeListEntry(new BiomeGenFen(BOPConfigurationIDs.fenID).setBiomeName("Fen"), BOPBiomeTemperatureType.WARM));*/;
|
/*registerBiome(new BOPBiomeListEntry(new BiomeGenFen(BOPConfigurationIDs.fenID).setBiomeName("Fen"), BOPBiomeTemperatureType.WARM));*/;
|
||||||
|
|
|
@ -2,6 +2,13 @@ package biomesoplenty.common.world.decoration;
|
||||||
|
|
||||||
public class BOPWorldFeatures
|
public class BOPWorldFeatures
|
||||||
{
|
{
|
||||||
|
public boolean generatePumpkins = true;
|
||||||
|
public boolean generateQuicksand = false;
|
||||||
|
public boolean generateCanyon = false;
|
||||||
|
|
||||||
|
public int waterPondsPerChunk = 0;
|
||||||
|
public int lavaPondsPerChunk = 0;
|
||||||
|
|
||||||
public int mudPerChunk = 0;
|
public int mudPerChunk = 0;
|
||||||
public int riverCanePerChunk = 0;
|
public int riverCanePerChunk = 0;
|
||||||
public int shrubsPerChunk = 0;
|
public int shrubsPerChunk = 0;
|
||||||
|
@ -18,15 +25,10 @@ public class BOPWorldFeatures
|
||||||
public int doubleTallGrassPerChunk = 0;
|
public int doubleTallGrassPerChunk = 0;
|
||||||
public int poisonIvyPerChunk = 0;
|
public int poisonIvyPerChunk = 0;
|
||||||
public int berryBushesPerChunk = 0;
|
public int berryBushesPerChunk = 0;
|
||||||
public int waterPondsPerChunk = 0;
|
|
||||||
public int lavaPondsPerChunk = 0;
|
|
||||||
public int portobellosPerChunk = 0;
|
public int portobellosPerChunk = 0;
|
||||||
public int koruPerChunk = 0;
|
public int koruPerChunk = 0;
|
||||||
public int toadstoolsPerChunk = 0;
|
public int toadstoolsPerChunk = 0;
|
||||||
public int blueMilksPerChunk = 0;
|
public int blueMilksPerChunk = 0;
|
||||||
|
|
||||||
public int bopFlowersPerChunk = 0;
|
public int bopFlowersPerChunk = 0;
|
||||||
|
|
||||||
public boolean generatePumpkins = true;
|
|
||||||
public boolean generateQuicksand = false;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,8 +57,9 @@ public class WorldGenBOPFlora extends WorldGeneratorBOP
|
||||||
{
|
{
|
||||||
int randX = x + random.nextInt(16);
|
int randX = x + random.nextInt(16);
|
||||||
int randZ = z + random.nextInt(16);
|
int randZ = z + random.nextInt(16);
|
||||||
|
int randY = random.nextInt(world.getHeightValue(randX, randZ));
|
||||||
|
|
||||||
worldGenerator.generate(world, random, randX, world.getTopSolidOrLiquidBlock(randX, randZ), randZ);
|
worldGenerator.generate(world, random, randX, randY, randZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,8 +60,9 @@ public class WorldGenBOPTallGrass extends WorldGeneratorBOP
|
||||||
{
|
{
|
||||||
int randX = x + random.nextInt(16);
|
int randX = x + random.nextInt(16);
|
||||||
int randZ = z + random.nextInt(16);
|
int randZ = z + random.nextInt(16);
|
||||||
|
int randY = random.nextInt(world.getHeightValue(randX, randZ));
|
||||||
|
|
||||||
worldGenerator.generate(world, random, randX, world.getTopSolidOrLiquidBlock(randX, randZ), randZ);
|
worldGenerator.generate(world, random, randX, randY, randZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -57,8 +57,9 @@ public class WorldGenMoss extends WorldGeneratorBOP
|
||||||
{
|
{
|
||||||
int randX = x + random.nextInt(16);
|
int randX = x + random.nextInt(16);
|
||||||
int randZ = z + random.nextInt(16);
|
int randZ = z + random.nextInt(16);
|
||||||
|
int randY = random.nextInt(world.getHeightValue(randX, randZ));
|
||||||
|
|
||||||
worldGenerator.generate(world, random, randX, world.getTopSolidOrLiquidBlock(randX, randZ), randZ);
|
worldGenerator.generate(world, random, randX, randY, randZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,8 +49,9 @@ public class WorldGenRiverCane extends WorldGeneratorBOP
|
||||||
{
|
{
|
||||||
int randX = x + random.nextInt(16);
|
int randX = x + random.nextInt(16);
|
||||||
int randZ = z + random.nextInt(16);
|
int randZ = z + random.nextInt(16);
|
||||||
|
int randY = random.nextInt(world.getHeightValue(randX, randZ));
|
||||||
|
|
||||||
worldGenerator.generate(world, random, randX, world.getTopSolidOrLiquidBlock(randX, randZ), randZ);
|
worldGenerator.generate(world, random, randX, randY, randZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
package biomesoplenty.common.world.features;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.biome.BiomeGenBase;
|
||||||
|
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||||
|
import biomesoplenty.common.world.decoration.IBOPDecoration;
|
||||||
|
import biomesoplenty.common.world.generation.WorldGeneratorBOP;
|
||||||
|
|
||||||
|
public class WorldGenSplotches extends WorldGeneratorBOP
|
||||||
|
{
|
||||||
|
private Block splotchBlock;
|
||||||
|
private int splotchBlockMeta;
|
||||||
|
|
||||||
|
private int numberOfBlocks;
|
||||||
|
|
||||||
|
public WorldGenSplotches(Block quicksandBlock, int quicksandBlockMeta, int numberOfBlocks)
|
||||||
|
{
|
||||||
|
this.splotchBlock = quicksandBlock;
|
||||||
|
this.splotchBlockMeta = quicksandBlockMeta;
|
||||||
|
this.numberOfBlocks = numberOfBlocks;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean generate(World world, Random random, int x, int y, int z)
|
||||||
|
{
|
||||||
|
float var6 = random.nextFloat() * (float)Math.PI;
|
||||||
|
double var7 = x + MathHelper.sin(var6) * numberOfBlocks / 8.0F;
|
||||||
|
double var9 = x - MathHelper.sin(var6) * numberOfBlocks / 8.0F;
|
||||||
|
double var11 = z + MathHelper.cos(var6) * numberOfBlocks / 8.0F;
|
||||||
|
double var13 = z - MathHelper.cos(var6) * numberOfBlocks / 8.0F;
|
||||||
|
double var15 = y + random.nextInt(3) - 2;
|
||||||
|
double var17 = y + random.nextInt(3) - 2;
|
||||||
|
|
||||||
|
for (int var19 = 0; var19 <= numberOfBlocks; ++var19)
|
||||||
|
{
|
||||||
|
double var20 = var7 + (var9 - var7) * var19 / numberOfBlocks;
|
||||||
|
double var22 = var15 + (var17 - var15) * var19 / numberOfBlocks;
|
||||||
|
double var24 = var11 + (var13 - var11) * var19 / numberOfBlocks;
|
||||||
|
double var26 = random.nextDouble() * numberOfBlocks / 16.0D;
|
||||||
|
double var28 = (MathHelper.sin(var19 * (float)Math.PI / numberOfBlocks) + 1.0F) * var26 + 1.0D;
|
||||||
|
double var30 = (MathHelper.sin(var19 * (float)Math.PI / 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 = (var38 + 0.5D - var20) / (var28 / 2.0D);
|
||||||
|
|
||||||
|
if (var39 * var39 < 1.0D)
|
||||||
|
{
|
||||||
|
for (int var41 = var33; var41 <= var36; ++var41)
|
||||||
|
{
|
||||||
|
double var42 = (var41 + 0.5D - var22) / (var30 / 2.0D);
|
||||||
|
|
||||||
|
if (var39 * var39 + var42 * var42 < 1.0D)
|
||||||
|
{
|
||||||
|
for (int var44 = var34; var44 <= var37; ++var44)
|
||||||
|
{
|
||||||
|
double var45 = (var44 + 0.5D - var24) / (var28 / 2.0D);
|
||||||
|
|
||||||
|
//TODO: getBlock() getBlock() getBlock()
|
||||||
|
if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && (world.func_147439_a(var38, var41, var44) == Blocks.grass || world.func_147439_a(var38, var41, var44) == Blocks.dirt || world.func_147439_a(var38, var41, var44) == Blocks.sand))
|
||||||
|
{
|
||||||
|
//TODO: setBlockAndMetadata()
|
||||||
|
this.func_150516_a(world, var38, var41, var44, splotchBlock, splotchBlockMeta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doGeneration(World world, Random random, Field worldGeneratorField, WorldGenerator worldGenerator, BiomeGenBase biome, IBOPDecoration bopDecoration, int x, int z) throws Exception
|
||||||
|
{
|
||||||
|
String fieldName = worldGeneratorField.getName();
|
||||||
|
|
||||||
|
if (fieldName.equals("generateQuicksand") && bopDecoration.getWorldFeatures().generateQuicksand)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 5; ++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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (fieldName.equals("generateCanyon") && bopDecoration.getWorldFeatures().generateCanyon)
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -48,8 +48,9 @@ public class WorldGenWaterReeds extends WorldGeneratorBOP
|
||||||
{
|
{
|
||||||
int randX = x + random.nextInt(16);
|
int randX = x + random.nextInt(16);
|
||||||
int randZ = z + random.nextInt(16);
|
int randZ = z + random.nextInt(16);
|
||||||
|
int randY = random.nextInt(world.getHeightValue(randX, randZ));
|
||||||
|
|
||||||
worldGenerator.generate(world, random, randX, world.getTopSolidOrLiquidBlock(randX, randZ), randZ);
|
worldGenerator.generate(world, random, randX, randY, randZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
package biomesoplenty.common.world.features.trees;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
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.WorldGenTrees;
|
||||||
|
|
||||||
|
public class WorldGenBOPShrub extends WorldGenTrees
|
||||||
|
{
|
||||||
|
private Block wood;
|
||||||
|
private Block leaves;
|
||||||
|
|
||||||
|
private int metaWood;
|
||||||
|
private int metaLeaves;
|
||||||
|
|
||||||
|
private int minHeight;
|
||||||
|
private int maxHeight;
|
||||||
|
|
||||||
|
private List soilBlocks;
|
||||||
|
|
||||||
|
public WorldGenBOPShrub(Block wood, Block leaves, int metaWood, int metaLeaves, Block... soilBlocks)
|
||||||
|
{
|
||||||
|
this(wood, leaves, metaWood, metaLeaves, 0, 256, soilBlocks);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorldGenBOPShrub(Block wood, Block leaves, int metaWood, int metaLevaes, int minHeight, int maxHeight, Block... soilBlocks)
|
||||||
|
{
|
||||||
|
super(false);
|
||||||
|
|
||||||
|
this.wood = wood;
|
||||||
|
this.leaves = leaves;
|
||||||
|
|
||||||
|
this.metaWood = metaWood;
|
||||||
|
this.metaLeaves = metaLeaves;
|
||||||
|
|
||||||
|
this.minHeight = minHeight;
|
||||||
|
this.maxHeight = maxHeight;
|
||||||
|
|
||||||
|
this.soilBlocks = Arrays.asList(soilBlocks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean generate(World world, Random random, int x, int y, int z)
|
||||||
|
{
|
||||||
|
Block block;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
block = world.func_147439_a(x, y, z);
|
||||||
|
if (!(block.isLeaves(world, x, y, z) || block.isAir(world, x, y, z)))
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
--y;
|
||||||
|
} while (y > 0);
|
||||||
|
|
||||||
|
Block block1 = world.func_147439_a(x, y, z);
|
||||||
|
|
||||||
|
if (soilBlocks.contains(block1))
|
||||||
|
{
|
||||||
|
++y;
|
||||||
|
|
||||||
|
if (y > minHeight && y < maxHeight)
|
||||||
|
{
|
||||||
|
this.func_150516_a(world, x, y, z, wood, metaWood);
|
||||||
|
|
||||||
|
for (int l = y; l <= y + 2; ++l)
|
||||||
|
{
|
||||||
|
int i1 = l - y;
|
||||||
|
int j1 = 2 - i1;
|
||||||
|
|
||||||
|
for (int k1 = x - j1; k1 <= x + j1; ++k1)
|
||||||
|
{
|
||||||
|
int l1 = k1 - x;
|
||||||
|
|
||||||
|
for (int i2 = z - j1; i2 <= z + j1; ++i2)
|
||||||
|
{
|
||||||
|
int j2 = i2 - z;
|
||||||
|
|
||||||
|
if ((Math.abs(l1) != j1 || Math.abs(j2) != j1 || random.nextInt(2) != 0) && world.func_147439_a(k1, l, i2).canBeReplacedByLeaves(world, k1, l, i2))
|
||||||
|
{
|
||||||
|
this.func_150516_a(world, k1, l, i2, leaves, metaLeaves);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
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 WorldGenBrush1 extends WorldGenAbstractTree
|
||||||
|
{
|
||||||
|
public WorldGenBrush1()
|
||||||
|
{
|
||||||
|
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()
|
||||||
|
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.dirt);
|
||||||
|
world.func_147465_d(x, y + 1, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 2, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 3, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 4, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 5, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 6, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 7, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147449_b(x + 1, y + 7, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 7, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 7, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 7, z - 1, Blocks.leaves);
|
||||||
|
|
||||||
|
world.func_147449_b(x + 1, y + 8, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 8, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 8, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 8, z - 1, Blocks.leaves);
|
||||||
|
|
||||||
|
world.func_147449_b(x + 1, y + 8, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x + 1, y + 8, z - 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 8, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 8, z - 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 8, z, Blocks.leaves);
|
||||||
|
|
||||||
|
world.func_147449_b(x, y + 9, z, Blocks.leaves);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
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 WorldGenBrush2 extends WorldGenAbstractTree
|
||||||
|
{
|
||||||
|
public WorldGenBrush2()
|
||||||
|
{
|
||||||
|
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()
|
||||||
|
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.dirt);
|
||||||
|
world.func_147465_d(x, y + 1, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 2, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 3, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147465_d(x, y + 4, z, Blocks.log, 3, 2);
|
||||||
|
world.func_147449_b(x + 1, y + 4, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 4, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 4, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 4, z - 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x + 1, y + 4, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x + 1, y + 4, z - 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 4, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 4, z - 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x + 1, y + 5, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 5, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 5, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 5, z - 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 5, z, Blocks.leaves);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
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 WorldGenChaparral2 extends WorldGenAbstractTree
|
||||||
|
{
|
||||||
|
public WorldGenChaparral2()
|
||||||
|
{
|
||||||
|
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.dirt);
|
||||||
|
world.func_147449_b(x, y + 1, z, Blocks.log);
|
||||||
|
world.func_147449_b(x, y + 2, z, Blocks.log);
|
||||||
|
world.func_147449_b(x + 1, y + 2, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x - 1, y + 2, z, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 2, z + 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 2, z - 1, Blocks.leaves);
|
||||||
|
world.func_147449_b(x, y + 3, z, Blocks.leaves);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -52,7 +52,9 @@ public class WorldGenPineTree extends WorldGenAbstractTree
|
||||||
//================
|
//================
|
||||||
|
|
||||||
int h = 1;
|
int h = 1;
|
||||||
buildBlock(world, x, y, z, Blocks.dirt, 0);
|
|
||||||
|
var6.onPlantGrow(world, x, y - 1, z, x, y, z);
|
||||||
|
|
||||||
for(int b = 0; b < baselength; b++)
|
for(int b = 0; b < baselength; b++)
|
||||||
{
|
{
|
||||||
buildBlock(world, x, y + h, z, BOPBlockHelper.get("logs4"), 0);
|
buildBlock(world, x, y + h, z, BOPBlockHelper.get("logs4"), 0);
|
||||||
|
|
|
@ -2,14 +2,13 @@ package biomesoplenty.common.world.generation;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import net.minecraft.init.Blocks;
|
|
||||||
import net.minecraft.world.gen.feature.WorldGenDoublePlant;
|
import net.minecraft.world.gen.feature.WorldGenDoublePlant;
|
||||||
import net.minecraft.world.gen.feature.WorldGenLakes;
|
|
||||||
import net.minecraft.world.gen.feature.WorldGenerator;
|
import net.minecraft.world.gen.feature.WorldGenerator;
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
import biomesoplenty.common.world.features.WorldGenBOPFlora;
|
import biomesoplenty.common.world.features.WorldGenBOPFlora;
|
||||||
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
|
import biomesoplenty.common.world.features.WorldGenBOPTallGrass;
|
||||||
import biomesoplenty.common.world.features.WorldGenMud;
|
import biomesoplenty.common.world.features.WorldGenMud;
|
||||||
|
import biomesoplenty.common.world.features.WorldGenSplotches;
|
||||||
import biomesoplenty.common.world.features.WorldGenRiverCane;
|
import biomesoplenty.common.world.features.WorldGenRiverCane;
|
||||||
import biomesoplenty.common.world.features.WorldGenWaterReeds;
|
import biomesoplenty.common.world.features.WorldGenWaterReeds;
|
||||||
|
|
||||||
|
@ -44,6 +43,9 @@ public class WorldGenFieldAssociation
|
||||||
associateField("toadstoolsPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("mushrooms"), 0));
|
associateField("toadstoolsPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("mushrooms"), 0));
|
||||||
associateField("blueMilksPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("mushrooms"), 2));
|
associateField("blueMilksPerChunk", new WorldGenBOPFlora(BOPBlockHelper.get("mushrooms"), 2));
|
||||||
|
|
||||||
|
associateField("generateQuicksand", new WorldGenSplotches(BOPBlockHelper.get("mud"), 1, 24));
|
||||||
|
associateField("generateCanyon", new WorldGenSplotches(BOPBlockHelper.get("redRock"), 0, 48));
|
||||||
|
|
||||||
WorldGenDoublePlant doubleTallGrass = new WorldGenDoublePlant();
|
WorldGenDoublePlant doubleTallGrass = new WorldGenDoublePlant();
|
||||||
//TODO: setMetadata() ?
|
//TODO: setMetadata() ?
|
||||||
doubleTallGrass.func_150548_a(2);
|
doubleTallGrass.func_150548_a(2);
|
||||||
|
|
Loading…
Reference in a new issue