diff --git a/src/minecraft/biomesoplenty/api/Biomes.java b/src/minecraft/biomesoplenty/api/Biomes.java index 6be95105e..9fe01eac2 100644 --- a/src/minecraft/biomesoplenty/api/Biomes.java +++ b/src/minecraft/biomesoplenty/api/Biomes.java @@ -22,6 +22,7 @@ public class Biomes public static Optional borealForest = Optional.absent(); public static Optional brushland = Optional.absent(); public static Optional canyon = Optional.absent(); + public static Optional canyonRavine = Optional.absent(); public static Optional chaparral = Optional.absent(); public static Optional cherryBlossomGrove = Optional.absent(); public static Optional coniferousForest = Optional.absent(); @@ -52,6 +53,7 @@ public class Biomes public static Optional mapleWoods = Optional.absent(); public static Optional marsh = Optional.absent(); public static Optional meadow = Optional.absent(); + public static Optional meadowForest = Optional.absent(); public static Optional mesa = Optional.absent(); public static Optional moor = Optional.absent(); public static Optional mountain = Optional.absent(); @@ -69,10 +71,13 @@ public class Biomes public static Optional oceanKelp = Optional.absent(); public static Optional ominousWoods = Optional.absent(); + public static Optional ominousWoodsThick = Optional.absent(); public static Optional orchard = Optional.absent(); public static Optional originValley = Optional.absent(); public static Optional outback = Optional.absent(); public static Optional pasture = Optional.absent(); + public static Optional pastureMeadow = Optional.absent(); + public static Optional pastureThin = Optional.absent(); public static Optional polar = Optional.absent(); public static Optional prairie = Optional.absent(); @@ -90,12 +95,14 @@ public class Biomes public static Optional shield = Optional.absent(); public static Optional shore = Optional.absent(); public static Optional shrubland = Optional.absent(); + public static Optional shrublandForest = Optional.absent(); public static Optional sludgepit = Optional.absent(); public static Optional spruceWoods = Optional.absent(); public static Optional steppe = Optional.absent(); public static Optional temperateRainforest = Optional.absent(); public static Optional thicket = Optional.absent(); public static Optional timber = Optional.absent(); + public static Optional timberThin = Optional.absent(); public static Optional tropicalRainforest = Optional.absent(); public static Optional tropics = Optional.absent(); public static Optional tundra = Optional.absent(); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenCanyonRavine.java b/src/minecraft/biomesoplenty/biomes/BiomeGenCanyonRavine.java new file mode 100644 index 000000000..1f95cdd43 --- /dev/null +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenCanyonRavine.java @@ -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; + } +} diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenJungleNew.java b/src/minecraft/biomesoplenty/biomes/BiomeGenJungleNew.java index bfd579ebc..8e39a9e0a 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenJungleNew.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenJungleNew.java @@ -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; - } } diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java b/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java index 4bee5d586..d69bddede 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java @@ -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); } /** diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenMeadowForest.java b/src/minecraft/biomesoplenty/biomes/BiomeGenMeadowForest.java new file mode 100644 index 000000000..688cfecb3 --- /dev/null +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenMeadowForest.java @@ -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; + } +} diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenOminousWoodsThick.java b/src/minecraft/biomesoplenty/biomes/BiomeGenOminousWoodsThick.java new file mode 100644 index 000000000..e17f4292e --- /dev/null +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenOminousWoodsThick.java @@ -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(); + } + } +} diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPastureMeadow.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPastureMeadow.java new file mode 100644 index 000000000..6243db936 --- /dev/null +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPastureMeadow.java @@ -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; + } +} diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPastureThin.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPastureThin.java new file mode 100644 index 000000000..ceac35f13 --- /dev/null +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPastureThin.java @@ -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; + } +} diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenShrublandForest.java b/src/minecraft/biomesoplenty/biomes/BiomeGenShrublandForest.java new file mode 100644 index 000000000..c22295dc1 --- /dev/null +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenShrublandForest.java @@ -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); + } +} diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenTimberThin.java b/src/minecraft/biomesoplenty/biomes/BiomeGenTimberThin.java new file mode 100644 index 000000000..2234b89ab --- /dev/null +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenTimberThin.java @@ -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; + } +} diff --git a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java index e7f19b170..bb13c922f 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java @@ -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)); diff --git a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java index 78051c3c2..e6e128bf7 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java +++ b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java @@ -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(); diff --git a/src/minecraft/biomesoplenty/helpers/AchievementHelper.java b/src/minecraft/biomesoplenty/helpers/AchievementHelper.java index 2f193a5a1..11d1e2d79 100644 --- a/src/minecraft/biomesoplenty/helpers/AchievementHelper.java +++ b/src/minecraft/biomesoplenty/helpers/AchievementHelper.java @@ -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) { diff --git a/src/minecraft/biomesoplenty/world/ChunkProviderBOP.java b/src/minecraft/biomesoplenty/world/ChunkProviderBOP.java index 8f9be7dd9..da63c748c 100644 --- a/src/minecraft/biomesoplenty/world/ChunkProviderBOP.java +++ b/src/minecraft/biomesoplenty/world/ChunkProviderBOP.java @@ -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) diff --git a/src/minecraft/biomesoplenty/world/layer/BiomeLayerShore.java b/src/minecraft/biomesoplenty/world/layer/BiomeLayerShore.java index f942e987d..150de9239 100644 --- a/src/minecraft/biomesoplenty/world/layer/BiomeLayerShore.java +++ b/src/minecraft/biomesoplenty/world/layer/BiomeLayerShore.java @@ -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 diff --git a/src/minecraft/biomesoplenty/world/layer/BiomeLayerSub.java b/src/minecraft/biomesoplenty/world/layer/BiomeLayerSub.java index 8d2518712..4ce5cc9e9 100644 --- a/src/minecraft/biomesoplenty/world/layer/BiomeLayerSub.java +++ b/src/minecraft/biomesoplenty/world/layer/BiomeLayerSub.java @@ -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) { diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenOminous3.java b/src/minecraft/biomesoplenty/worldgen/WorldGenOminous3.java new file mode 100644 index 000000000..db5c4d081 --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenOminous3.java @@ -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; + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenOminous4.java b/src/minecraft/biomesoplenty/worldgen/WorldGenOminous4.java new file mode 100644 index 000000000..ed6ffc77e --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenOminous4.java @@ -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; + } +}