diff --git a/src/minecraft/biomesoplenty/api/Biomes.java b/src/minecraft/biomesoplenty/api/Biomes.java index 5f4a866ca..fee247176 100644 --- a/src/minecraft/biomesoplenty/api/Biomes.java +++ b/src/minecraft/biomesoplenty/api/Biomes.java @@ -57,9 +57,7 @@ public class Biomes public static Optional prairie = Optional.absent(); public static Optional promisedLandForest = Optional.absent(); public static Optional promisedLandPlains = Optional.absent(); - public static Optional promisedLandDesert = Optional.absent(); public static Optional promisedLandSwamp = Optional.absent(); - public static Optional promisedLandMushroom = Optional.absent(); public static Optional quagmire = Optional.absent(); public static Optional rainforest = Optional.absent(); public static Optional redwoodForest = Optional.absent(); diff --git a/src/minecraft/biomesoplenty/api/BlockReferences.java b/src/minecraft/biomesoplenty/api/BlockReferences.java index d872f7409..613806478 100644 --- a/src/minecraft/biomesoplenty/api/BlockReferences.java +++ b/src/minecraft/biomesoplenty/api/BlockReferences.java @@ -102,9 +102,10 @@ public class BlockReferences { holyGrass (Blocks.holyGrass, 0), holyDirt (Blocks.holyDirt, 0), holyStone (Blocks.holyStone, 0), - holySand (Blocks.holySand, 0), + crystal (Blocks.crystal, 0), cragRock (Blocks.cragRock, 0), quicksand (Blocks.mud, 1), + cloud (Blocks.cloud, 0), smolderingGrass (Blocks.holyGrass, 1), amethystBlock (Blocks.amethystOre, 1), amethystOre (Blocks.amethystOre, 0), diff --git a/src/minecraft/biomesoplenty/api/Blocks.java b/src/minecraft/biomesoplenty/api/Blocks.java index 91f21ec4f..f8c99f57a 100644 --- a/src/minecraft/biomesoplenty/api/Blocks.java +++ b/src/minecraft/biomesoplenty/api/Blocks.java @@ -21,10 +21,10 @@ public class Blocks public static Optional holyGrass = Optional.absent(); public static Optional holyDirt = Optional.absent(); public static Optional holyStone = Optional.absent(); - public static Optional holySand = Optional.absent(); public static Optional mud = Optional.absent(); public static Optional originGrass = Optional.absent(); public static Optional redRock = Optional.absent(); + public static Optional crystal = Optional.absent(); // Planks and logs public static Optional planks = Optional.absent(); @@ -71,6 +71,7 @@ public class Blocks public static Optional moss = Optional.absent(); public static Optional petals = Optional.absent(); public static Optional bamboo = Optional.absent(); + public static Optional cloud = Optional.absent(); // public static Optional amethystBlock = Optional.absent(); public static Optional amethystOre = Optional.absent(); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java b/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java index e82df6c78..922b10e55 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java @@ -33,6 +33,9 @@ import biomesoplenty.worldgen.WorldGenCanyon; import biomesoplenty.worldgen.WorldGenCanyonGrass; import biomesoplenty.worldgen.WorldGenCarrots; import biomesoplenty.worldgen.WorldGenCattail; +import biomesoplenty.worldgen.WorldGenCloud; +import biomesoplenty.worldgen.WorldGenCrystal1; +import biomesoplenty.worldgen.WorldGenCrystal2; import biomesoplenty.worldgen.WorldGenDesertCactus; import biomesoplenty.worldgen.WorldGenDriedDirt; import biomesoplenty.worldgen.WorldGenGravel; @@ -125,6 +128,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator protected WorldGenerator quagmireGen; protected WorldGenerator canyonGen; protected WorldGenerator smolderingGrassGen; + protected WorldGenerator cloudGen; protected WorldGenerator coalGen; protected WorldGenerator ironGen; @@ -181,6 +185,8 @@ public class BiomeDecoratorBOP extends BiomeDecorator protected WorldGenerator quicksandGen; protected WorldGenerator quicksand2Gen; protected WorldGenerator poisonIvyGen; + protected WorldGenerator crystalGen; + protected WorldGenerator crystalGen2; /** Field that holds mushroomBrown WorldGenFlowers */ protected WorldGenerator mushroomBrownGen; @@ -207,6 +213,8 @@ public class BiomeDecoratorBOP extends BiomeDecorator /** Amount of waterlilys per chunk. */ protected int waterlilyPerChunk; protected int algaePerChunk; + protected int crystalsPerChunk; + protected int crystals2PerChunk; /** * The number of trees to attempt to generate per chunk. Up to 10 in forests, none in deserts. @@ -328,6 +336,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator public boolean generateMelons; public boolean generateBoulders; public boolean generateSmolderingGrass; + public boolean generateClouds; public BiomeDecoratorBOP(BiomeGenBase par1BiomeGenBase) { @@ -352,6 +361,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator this.canyonGen = new WorldGenCanyon(Blocks.redRock.get().blockID, 48); this.smolderingGrassGen = new WorldGenSmolderingGrass(Blocks.holyGrass.get().blockID, 1, 32); this.driedDirtInSandGen = new WorldGenDriedDirt(Blocks.driedDirt.get().blockID, 32); + this.cloudGen = new WorldGenCloud(Blocks.cloud.get().blockID, 48); this.coalGen = new WorldGenMinable(Block.oreCoal.blockID, 16); this.ironGen = new WorldGenMinable(Block.oreIron.blockID, 8); this.goldGen = new WorldGenMinable(Block.oreGold.blockID, 8); @@ -385,6 +395,8 @@ public class BiomeDecoratorBOP extends BiomeDecorator this.quicksandGen = new WorldGenQuicksand(); this.quicksand2Gen = new WorldGenQuicksand2(); this.cattailGen = new WorldGenCattail(); + this.crystalGen = new WorldGenCrystal1(); + this.crystalGen2 = new WorldGenCrystal2(); this.mushroomBrownGen = new WorldGenBOPFlowers(Block.mushroomBrown.blockID, 0); this.mushroomRedGen = new WorldGenBOPFlowers(Block.mushroomRed.blockID, 0); this.toadstoolGen = new WorldGenBOPFlowers(Blocks.flowers.get().blockID, 10); @@ -466,6 +478,8 @@ public class BiomeDecoratorBOP extends BiomeDecorator this.lavaLakesPerChunk = 0; this.quicksandPerChunk = 0; this.quicksand2PerChunk = 0; + this.crystalsPerChunk = 0; + this.crystals2PerChunk = 0; this.generateLakes = true; this.generateAsh = false; this.generateMycelium = false; @@ -481,6 +495,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator this.generateMelons = false; this.generateBoulders = false; this.generateSmolderingGrass = false; + this.generateClouds = false; this.biome = par1BiomeGenBase; } @@ -607,6 +622,11 @@ public class BiomeDecoratorBOP extends BiomeDecorator { this.genStandardOre1(15, this.smolderingGrassGen, 64, 128); } + + if (this.generateClouds) + { + this.genCloudMain(1, this.cloudGen, 0, 50); + } if (this.generatePits) { @@ -751,6 +771,22 @@ public class BiomeDecoratorBOP extends BiomeDecorator this.plantRedGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); } + for (var2 = 0; var2 < this.crystalsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(50); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.crystalGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.crystals2PerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(50); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.crystalGen2.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + for (var2 = 0; var2 < this.promisedWillowPerChunk; ++var2) { var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; @@ -1204,6 +1240,26 @@ public class BiomeDecoratorBOP extends BiomeDecorator MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Post(currentWorld, randomGenerator, chunk_X, chunk_Z)); } + + /** + * Standard ore generation helper. Generates most ores. + */ + protected void genCloudMain(int par1, WorldGenerator par2WorldGenerator, int par3, int par4) + { + for (int var5 = 0; var5 < par1; ++var5) + { + int var6 = this.chunk_X + this.randomGenerator.nextInt(16); + int var7 = this.randomGenerator.nextInt(par4 - par3) + par3; + int var8 = this.chunk_Z + this.randomGenerator.nextInt(16); + int var999 = this.randomGenerator.nextInt(5); + if (var999 == 0) + { + par2WorldGenerator.generate(this.currentWorld, this.randomGenerator, var6, var7, var8); + par2WorldGenerator.generate(this.currentWorld, this.randomGenerator, var6, var7, var8 + 8); + par2WorldGenerator.generate(this.currentWorld, this.randomGenerator, var6 + 8, var7, var8 + 8); + } + } + } /** * Standard ore generation helper. Generates most ores. diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenBayou.java b/src/minecraft/biomesoplenty/biomes/BiomeGenBayou.java index 90db96f2b..9fac51e88 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenBayou.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenBayou.java @@ -34,7 +34,7 @@ public class BiomeGenBayou extends BiomeGenBase this.customBiomeDecorator.waterlilyPerChunk = 2; this.customBiomeDecorator.cattailsPerChunk = 1; this.customBiomeDecorator.highCattailsPerChunk = 1; - this.customBiomeDecorator.waterLakesPerChunk = 2; + this.customBiomeDecorator.waterLakesPerChunk = 5; this.customBiomeDecorator.algaePerChunk = 1; this.customBiomeDecorator.generatePumpkins = false; this.waterColorMultiplier = 16767282; diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenFungiForest.java b/src/minecraft/biomesoplenty/biomes/BiomeGenFungiForest.java index 93ae69f21..01b59bdf4 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenFungiForest.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenFungiForest.java @@ -45,7 +45,6 @@ public class BiomeGenFungiForest extends BiomeGenBase this.customBiomeDecorator.reedsBOPPerChunk = 1; this.customBiomeDecorator.generateMycelium = true; this.customBiomeDecorator.generatePumpkins = true; - this.customBiomeDecorator.generateMelons = true; this.waterColorMultiplier = 65326; this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenGarden.java b/src/minecraft/biomesoplenty/biomes/BiomeGenGarden.java index 7f6776dbb..b0ef6b1d6 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenGarden.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenGarden.java @@ -30,13 +30,15 @@ public class BiomeGenGarden extends BiomeGenBase this.customBiomeDecorator.flowersPerChunk = 20; this.customBiomeDecorator.whiteFlowersPerChunk = 25; this.customBiomeDecorator.tinyFlowersPerChunk = 15; - this.customBiomeDecorator.sproutsPerChunk = 1; + this.customBiomeDecorator.hydrangeasPerChunk = 10; + this.customBiomeDecorator.sproutsPerChunk = 5; this.customBiomeDecorator.rosesPerChunk = 20; this.customBiomeDecorator.grassPerChunk = 25; this.customBiomeDecorator.sandPerChunk = -999; this.customBiomeDecorator.sandPerChunk2 = -999; this.customBiomeDecorator.bushesPerChunk = 10; - this.customBiomeDecorator.generatePumpkins = false; + this.customBiomeDecorator.generatePumpkins = true; + this.customBiomeDecorator.generateMelons = true; this.spawnableCreatureList.clear(); this.spawnableCreatureList.add(new SpawnListEntry(EntityRosester.class, 10, 4, 4)); } @@ -46,7 +48,7 @@ public class BiomeGenGarden extends BiomeGenBase */ public WorldGenerator getRandomWorldGenForGrass(Random par1Random) { - return par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(Blocks.foliage.get().blockID, 1) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + return (par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : (par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : (par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Blocks.foliage.get().blockID, 2) : new WorldGenTallGrass(Blocks.foliage.get().blockID, 1)))); } /** diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenLushDesert.java b/src/minecraft/biomesoplenty/biomes/BiomeGenLushDesert.java index 8770581f3..a118a5c7b 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenLushDesert.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenLushDesert.java @@ -7,6 +7,8 @@ import biomesoplenty.configuration.BOPBlocks; import biomesoplenty.worldgen.WorldGenAcacia; import biomesoplenty.worldgen.WorldGenDeadTree3; +import net.minecraft.block.Block; +import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenerator; @@ -32,6 +34,7 @@ public class BiomeGenLushDesert extends BiomeGenBase this.customBiomeDecorator.desertCactiPerChunk = 10; this.customBiomeDecorator.cactiPerChunk = 20; this.customBiomeDecorator.tinyCactiPerChunk = 5; + this.customBiomeDecorator.waterLakesPerChunk = 5; this.customBiomeDecorator.aloePerChunk = 3; this.customBiomeDecorator.generateGrass = true; this.customBiomeDecorator.generateSand = true; @@ -43,6 +46,25 @@ public class BiomeGenLushDesert extends BiomeGenBase */ public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { - return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenAcacia(false) : (par1Random.nextInt(12) == 0 ? new WorldGenDeadTree3(false) : (par1Random.nextInt(2) == 0 ? this.worldGeneratorTrees : new WorldGenShrub(0,0)))); + return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenAcacia(false) : (par1Random.nextInt(24) == 0 ? new WorldGenDeadTree3(false) : (par1Random.nextInt(2) == 0 ? this.worldGeneratorTrees : new WorldGenShrub(0,0)))); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = par2Random.nextInt(50); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(53) + 75; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID || var10 == Blocks.redRock.get().blockID) + { + par1World.setBlock(var7, var8, var9, Block.waterMoving.blockID, 0, 2); + } + } } } diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandDesert.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandDesert.java deleted file mode 100644 index 1b5d33a9c..000000000 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandDesert.java +++ /dev/null @@ -1,113 +0,0 @@ -package biomesoplenty.biomes; - -import java.awt.Color; -import java.util.Random; - -import biomesoplenty.api.Blocks; -import biomesoplenty.configuration.BOPBlocks; -import biomesoplenty.configuration.BOPConfiguration; -import biomesoplenty.worldgen.WorldGenPalmTree1; -import biomesoplenty.worldgen.WorldGenPalmTree3; -import biomesoplenty.worldgen.WorldGenPromisedShrub; -import biomesoplenty.worldgen.WorldGenPromisedTree; -import biomesoplenty.worldgen.WorldGenPromisedTree2; -import biomesoplenty.worldgen.WorldGenPromisedTree3; -import biomesoplenty.worldgen.WorldGenWaterSpring; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.gen.feature.WorldGenMinable; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class BiomeGenPromisedLandDesert extends BiomeGenBase -{ - private WorldGenerator theWorldGenerator; - private BiomeDecoratorBOP customBiomeDecorator; - - public BiomeGenPromisedLandDesert(int par1) - { - super(par1); - this.theBiomeDecorator = new BiomeDecoratorBOP(this); - this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; - this.topBlock = (byte)Blocks.holySand.get().blockID; - this.fillerBlock = (byte)Blocks.holySand.get().blockID; - this.customBiomeDecorator.treesPerChunk = 4; - this.customBiomeDecorator.grassPerChunk = -999; - //this.customBiomeDecorator.cactiPerChunk = 5; - this.customBiomeDecorator.promisedWillowPerChunk = 80; - this.customBiomeDecorator.tinyCactiPerChunk = 10; - this.customBiomeDecorator.aloePerChunk = 2; - this.customBiomeDecorator.generateLakes = false; - this.customBiomeDecorator.pondsPerChunk = -100; - this.customBiomeDecorator.waterLakesPerChunk = 2; - this.spawnableCreatureList.clear(); - this.spawnableWaterCreatureList.clear(); - this.spawnableMonsterList.clear(); - this.spawnableCaveCreatureList.clear(); - this.customBiomeDecorator.generatePumpkins = true; - this.customBiomeDecorator.generateMelons = true; - this.customBiomeDecorator.generateLakes = false; - this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); - } - - /** - * Gets a WorldGen appropriate for this biome. - */ - public WorldGenerator getRandomWorldGenForTrees(Random par1Random) - { - return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenPalmTree3() : new WorldGenPalmTree1()); - } - - /** - * Provides the basic foliage color based on the biome temperature and rainfall - */ - public int getBiomeFoliageColor() - { - return 4583331; - } - - public void decorate(World par1World, Random par2Random, int par3, int par4) - { - super.decorate(par1World, par2Random, par3, par4); - int var5 = 100; - int var6; - int var7; - int var8; - - for (var5 = 0; var5 < 10; ++var5) - { - var6 = par3 + par2Random.nextInt(16); - var7 = par2Random.nextInt(60); - var8 = par4 + par2Random.nextInt(16); - this.theWorldGenerator.generate(par1World, par2Random, var6, var7, var8); - } - } - - /** - * takes temperature, returns color - */ - public int getSkyColorByTemp(float par1) - { - if (BOPConfiguration.skyColors = true) - { - return 50175; - } - 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/BiomeGenPromisedLandForest.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandForest.java index a40468763..51ff271e4 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandForest.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandForest.java @@ -30,20 +30,23 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; this.topBlock = (byte)Blocks.holyGrass.get().blockID; this.fillerBlock = (byte)Blocks.holyDirt.get().blockID; - this.customBiomeDecorator.treesPerChunk = 12; + this.customBiomeDecorator.treesPerChunk = 20; this.customBiomeDecorator.grassPerChunk = -999; this.customBiomeDecorator.holyTallGrassPerChunk = 50; this.customBiomeDecorator.promisedWillowPerChunk = 80; - this.customBiomeDecorator.pinkFlowersPerChunk = 6; + this.customBiomeDecorator.pinkFlowersPerChunk = 12; this.customBiomeDecorator.blueMilksPerChunk = 5; this.customBiomeDecorator.generateLakes = false; this.customBiomeDecorator.pondsPerChunk = -100; - this.customBiomeDecorator.waterLakesPerChunk = 8; + this.customBiomeDecorator.waterLakesPerChunk = 10; + this.customBiomeDecorator.crystalsPerChunk = 25; + this.customBiomeDecorator.crystals2PerChunk = 50; this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.spawnableCaveCreatureList.clear(); this.customBiomeDecorator.generatePumpkins = false; + this.customBiomeDecorator.generateClouds = true; //this.customBiomeDecorator.generateLakes = false; this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); } @@ -53,7 +56,7 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase */ public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { - return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenPromisedTree3(false) : (par1Random.nextInt(8) == 0 ? new WorldGenPromisedTree2(false) : new WorldGenPromisedTree(false))); + return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenPromisedTree3(false) : (par1Random.nextInt(2) == 0 ? new WorldGenPromisedShrub(0,0) : (par1Random.nextInt(8) == 0 ? new WorldGenPromisedTree2(false) : new WorldGenPromisedTree(false)))); } /** @@ -61,7 +64,7 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase */ public int getBiomeFoliageColor() { - return 4583331; + return 7925125; } public void decorate(World par1World, Random par2Random, int par3, int par4) diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandMushroom.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandMushroom.java deleted file mode 100644 index ac42446d7..000000000 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandMushroom.java +++ /dev/null @@ -1,118 +0,0 @@ -package biomesoplenty.biomes; - -import java.awt.Color; -import java.util.Random; - -import biomesoplenty.api.Blocks; -import biomesoplenty.configuration.BOPBlocks; -import biomesoplenty.configuration.BOPConfiguration; -import biomesoplenty.worldgen.WorldGenBOPBigMushroom; -import biomesoplenty.worldgen.WorldGenPromisedBush; -import biomesoplenty.worldgen.WorldGenPromisedShrub; -import biomesoplenty.worldgen.WorldGenPromisedTree; -import biomesoplenty.worldgen.WorldGenPromisedTree2; -import biomesoplenty.worldgen.WorldGenPromisedTree3; -import biomesoplenty.worldgen.WorldGenWaterSpring; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.gen.feature.WorldGenBigMushroom; -import net.minecraft.world.gen.feature.WorldGenMinable; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class BiomeGenPromisedLandMushroom extends BiomeGenBase -{ - private WorldGenerator theWorldGenerator; - private BiomeDecoratorBOP customBiomeDecorator; - - public BiomeGenPromisedLandMushroom(int par1) - { - super(par1); - this.theBiomeDecorator = new BiomeDecoratorBOP(this); - this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; - this.topBlock = (byte)Blocks.holyGrass.get().blockID; - this.fillerBlock = (byte)Blocks.holyDirt.get().blockID; - this.customBiomeDecorator.treesPerChunk = 15; - this.customBiomeDecorator.grassPerChunk = -999; - this.customBiomeDecorator.holyTallGrassPerChunk = 50; - this.customBiomeDecorator.promisedWillowPerChunk = 80; - this.customBiomeDecorator.pinkFlowersPerChunk = 6; - this.customBiomeDecorator.blueMilksPerChunk = 15; - this.customBiomeDecorator.toadstoolsPerChunk = 15; - this.customBiomeDecorator.portobellosPerChunk = 15; - this.customBiomeDecorator.mushroomsPerChunk = 30; - //this.customBiomeDecorator.bigMushroomsPerChunk = 10; - this.customBiomeDecorator.generateLakes = false; - //this.customBiomeDecorator.generateMycelium = true; - this.customBiomeDecorator.pondsPerChunk = -100; - this.customBiomeDecorator.waterLakesPerChunk = 5; - this.spawnableCreatureList.clear(); - this.spawnableWaterCreatureList.clear(); - this.spawnableMonsterList.clear(); - this.spawnableCaveCreatureList.clear(); - this.customBiomeDecorator.generatePumpkins = false; - //this.customBiomeDecorator.generateLakes = false; - this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); - } - - /** - * Gets a WorldGen appropriate for this biome. - */ - public WorldGenerator getRandomWorldGenForTrees(Random par1Random) - { - return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenBOPBigMushroom() : new WorldGenPromisedTree2(false)); - } - - /** - * Provides the basic foliage color based on the biome temperature and rainfall - */ - public int getBiomeFoliageColor() - { - return 4583331; - } - - public void decorate(World par1World, Random par2Random, int par3, int par4) - { - super.decorate(par1World, par2Random, par3, par4); - int var5 = 100; - int var6; - int var7; - int var8; - - for (var5 = 0; var5 < 10; ++var5) - { - var6 = par3 + par2Random.nextInt(16); - var7 = par2Random.nextInt(60); - var8 = par4 + par2Random.nextInt(16); - this.theWorldGenerator.generate(par1World, par2Random, var6, var7, var8); - } - } - - /** - * takes temperature, returns color - */ - public int getSkyColorByTemp(float par1) - { - if (BOPConfiguration.skyColors = true) - { - return 50175; - } - 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/BiomeGenPromisedLandPlains.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandPlains.java index 8b467b827..c084a32b0 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandPlains.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandPlains.java @@ -35,15 +35,17 @@ public class BiomeGenPromisedLandPlains extends BiomeGenBase this.customBiomeDecorator.grassPerChunk = -999; this.customBiomeDecorator.holyTallGrassPerChunk = 999; this.customBiomeDecorator.promisedWillowPerChunk = 80; - this.customBiomeDecorator.blueMilksPerChunk = 1; this.customBiomeDecorator.generateLakes = false; this.customBiomeDecorator.pondsPerChunk = -100; - this.customBiomeDecorator.waterLakesPerChunk = 4; + this.customBiomeDecorator.waterLakesPerChunk = 6; + this.customBiomeDecorator.crystalsPerChunk = 25; + this.customBiomeDecorator.crystals2PerChunk = 50; this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.spawnableCaveCreatureList.clear(); this.customBiomeDecorator.generatePumpkins = false; + this.customBiomeDecorator.generateClouds = true; //this.customBiomeDecorator.generateLakes = false; this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); } @@ -61,7 +63,7 @@ public class BiomeGenPromisedLandPlains extends BiomeGenBase */ public int getBiomeFoliageColor() { - return 4583331; + return 11266663; } public void decorate(World par1World, Random par2Random, int par3, int par4) diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java index abda158a0..0c92b260a 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java @@ -7,6 +7,7 @@ import biomesoplenty.api.Blocks; import biomesoplenty.configuration.BOPBlocks; import biomesoplenty.configuration.BOPConfiguration; import biomesoplenty.worldgen.WorldGenPromisedShrub; +import biomesoplenty.worldgen.WorldGenPromisedTree; import biomesoplenty.worldgen.WorldGenPromisedWillowTree; import biomesoplenty.worldgen.WorldGenWaterSpring; @@ -27,20 +28,25 @@ public class BiomeGenPromisedLandSwamp extends BiomeGenBase this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; this.topBlock = (byte)Blocks.holyGrass.get().blockID; this.fillerBlock = (byte)Blocks.holyDirt.get().blockID; - this.customBiomeDecorator.treesPerChunk = 24; + this.customBiomeDecorator.treesPerChunk = 12; this.customBiomeDecorator.grassPerChunk = -999; - this.customBiomeDecorator.holyTallGrassPerChunk = 50; + this.customBiomeDecorator.holyTallGrassPerChunk = 100; this.customBiomeDecorator.promisedWillowPerChunk = 80; this.customBiomeDecorator.pinkFlowersPerChunk = 6; this.customBiomeDecorator.blueMilksPerChunk = 15; + this.customBiomeDecorator.toadstoolsPerChunk = 10; + this.customBiomeDecorator.portobellosPerChunk = 5; this.customBiomeDecorator.generateLakes = false; this.customBiomeDecorator.pondsPerChunk = -100; - this.customBiomeDecorator.waterLakesPerChunk = 17; + this.customBiomeDecorator.waterLakesPerChunk = 20; + this.customBiomeDecorator.crystalsPerChunk = 25; + this.customBiomeDecorator.crystals2PerChunk = 50; this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.spawnableCaveCreatureList.clear(); this.customBiomeDecorator.generatePumpkins = false; + this.customBiomeDecorator.generateClouds = true; //this.customBiomeDecorator.generateLakes = false; this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); } @@ -50,7 +56,7 @@ public class BiomeGenPromisedLandSwamp extends BiomeGenBase */ public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { - return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenPromisedShrub(0, 0) : new WorldGenPromisedWillowTree()); + return (WorldGenerator)(par1Random.nextInt(6) == 0 ? new WorldGenPromisedTree(false) : new WorldGenPromisedWillowTree()); } /** diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java b/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java index 12ab38ce6..087d8d3fb 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java @@ -131,12 +131,14 @@ public class BlockBOPFlower extends BlockFlower protected boolean canThisPlantGrowOnThisBlockID(int id, int metadata) { + if (metadata == 6) //Tulip + return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.tilledField.blockID || id == Blocks.holyGrass.get().blockID; if (metadata == 10) //Toadstool return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID; if (metadata == 11) //Cactus - return id == Block.sand.blockID || id == Blocks.redRock.get().blockID || id == Blocks.holySand.get().blockID; + return id == Block.sand.blockID || id == Blocks.redRock.get().blockID; if (metadata == 12) //Yucca - return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID || id == Blocks.holySand.get().blockID; + return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID; if (metadata == 13) //Portobello return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID | id == Blocks.holyGrass.get().blockID; if (metadata == 14) //Blue Milk Cap @@ -155,14 +157,17 @@ public class BlockBOPFlower extends BlockFlower if (itemStack.itemID == this.blockID) switch (meta) { + case 6: // Tulip + return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.tilledField.blockID || id == Blocks.holyGrass.get().blockID; + case 10: // Toadstool return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID; case 11: // Cactus - return id == Blocks.redRock.get().blockID || id == Block.sand.blockID || id == Blocks.holySand.get().blockID; + return id == Blocks.redRock.get().blockID || id == Block.sand.blockID; case 12: // Yucca - return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID || id == Blocks.holySand.get().blockID; + return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID; case 13: // Portobello return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID; diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java b/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java index 2690f8639..04ef0f3e4 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java @@ -1,16 +1,22 @@ package biomesoplenty.blocks; +import java.util.Random; + import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; + import biomesoplenty.BiomesOPlenty; +import biomesoplenty.api.Items; public class BlockBOPGeneric extends Block { public enum BlockType { - ASH_STONE, HARD_SAND, HARD_DIRT, HARD_ICE, HOLY_STONE, BAMBOO_THATCHING, DRIED_DIRT, CRAG_ROCK, MUD_BRICK, HOLY_DIRT, HOLY_SAND; + ASH_STONE, HARD_SAND, HARD_DIRT, HARD_ICE, HOLY_STONE, BAMBOO_THATCHING, DRIED_DIRT, CRAG_ROCK, MUD_BRICK, HOLY_DIRT, CRYSTAL; } private Icon texture; @@ -64,8 +70,8 @@ public class BlockBOPGeneric extends Block setHardness(0.6F).setStepSound(Block.soundGravelFootstep).setUnlocalizedName("holyDirt"); break; - case HOLY_SAND: - setHardness(0.3F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("holySand"); + case CRYSTAL: + setHardness(0.15F).setResistance(5.0F).setLightValue(1.0F).setStepSound(Block.soundGlassFootstep).setUnlocalizedName("crystal"); break; default: @@ -118,14 +124,53 @@ public class BlockBOPGeneric extends Block texture = iconRegister.registerIcon("BiomesOPlenty:holydirt"); break; - case HOLY_SAND: - texture = iconRegister.registerIcon("BiomesOPlenty:holysand"); + case CRYSTAL: + texture = iconRegister.registerIcon("BiomesOPlenty:crystal"); break; default: break; } } + + @Override + public int idDropped(int par1, Random par2Random, int par3) + { + switch (type) + { + case CRYSTAL: + return Items.miscItems.get().itemID; + + default: + return this.blockID; + } + } + + @Override + public int damageDropped(int meta) + { + switch (type) + { + case CRYSTAL: + return 4; + + default: + return meta; + } + } + + @Override + public int quantityDropped(int meta, int fortune, Random random) + { + switch (type) + { + case CRYSTAL: + return 4; + + default: + return 1; + } + } @Override public Icon getIcon(int side, int meta) diff --git a/src/minecraft/biomesoplenty/blocks/BlockCloud.java b/src/minecraft/biomesoplenty/blocks/BlockCloud.java new file mode 100644 index 000000000..4922bf666 --- /dev/null +++ b/src/minecraft/biomesoplenty/blocks/BlockCloud.java @@ -0,0 +1,52 @@ +package biomesoplenty.blocks; + +import biomesoplenty.BiomesOPlenty; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockCloud extends Block +{ + public BlockCloud(int par1) + { + super(par1, Material.sponge); + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + } + + @Override + public void registerIcons(IconRegister par1IconRegister) + { + this.blockIcon = par1IconRegister.registerIcon("BiomesOPlenty:cloud"); + } + + @Override + @SideOnly(Side.CLIENT) + + /** + * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha + */ + public int getRenderBlockPass() + { + return 1; + } + + @Override + @SideOnly(Side.CLIENT) + + /** + * Returns true if the given side of this block type should be rendered, if the adjacent block is at the given + * coordinates. Args: blockAccess, x, y, z, side + */ + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return super.shouldSideBeRendered(par1IBlockAccess, par2, par3, par4, 1 - par5); + } +} \ No newline at end of file diff --git a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java index 27252c32f..a7b01df25 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java @@ -94,13 +94,13 @@ public class BOPBiomes { Biomes.highland = Optional.of((new BiomeGenHighland(BOPConfiguration.highlandID)).setColor(6316128).setBiomeName("Highland").setMinMaxHeight(0.9F, 1.9F).setTemperatureRainfall(0.5F, 0.5F)); Biomes.icyHills = Optional.of((new BiomeGenIcyHills(BOPConfiguration.icyHillsID)).setColor(14090235).setBiomeName("Icy Hills").setEnableSnow().setTemperatureRainfall(0.0F, 0.0F).setMinMaxHeight(-0.2F, 0.5F)); Biomes.jadeCliffs = Optional.of((new BiomeGenJadeCliffs(BOPConfiguration.jadeCliffsID)).setColor(14090235).setBiomeName("Jade Cliffs").setTemperatureRainfall(0.5F, 0.1F).setMinMaxHeight(0.1F, 2.0F)); - Biomes.lushDesert = Optional.of((new BiomeGenLushDesert(BOPConfiguration.lushDesertID)).setColor(16421912).setBiomeName("Lush Desert").setTemperatureRainfall(0.8F, 0.2F).setMinMaxHeight(0.0F, 0.9F)); + Biomes.lushDesert = Optional.of((new BiomeGenLushDesert(BOPConfiguration.lushDesertID)).setColor(16421912).setBiomeName("Lush Desert").setTemperatureRainfall(0.8F, 0.2F).setMinMaxHeight(0.1F, 1.5F)); Biomes.lushSwamp = Optional.of((new BiomeGenLushSwamp(BOPConfiguration.lushSwampID)).setColor(522674).setBiomeName("Lush Swamp").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.1F).setTemperatureRainfall(0.7F, 1.0F)); Biomes.mangrove = Optional.of((new BiomeGenMangrove(BOPConfiguration.mangroveID)).setColor(16440917).setBiomeName("Mangrove").setMinMaxHeight(-0.4F, -0.1F).setTemperatureRainfall(0.8F, 0.9F)); 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.mesa = Optional.of((new BiomeGenMesa(BOPConfiguration.mesaID)).setColor(16421912).setBiomeName("Mesa").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.8F, 1.0F)); + 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)); Biomes.mysticGrove = Optional.of((new BiomeGenMysticGrove(BOPConfiguration.mysticGroveID)).setColor(353825).setBiomeName("Mystic Grove").setDisableRain().func_76733_a(5159473).setTemperatureRainfall(0.9F, 1.0F)); @@ -113,10 +113,8 @@ public class BOPBiomes { Biomes.polar = Optional.of((new BiomeGenPolar(BOPConfiguration.polarID)).setColor(6316128).setBiomeName("Polar").setMinMaxHeight(-0.5F, 0.0F).setTemperatureRainfall(0.2F, 0.8F)); 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)); Biomes.promisedLandForest = Optional.of((new BiomeGenPromisedLandForest(BOPConfiguration.promisedLandForestID)).setColor(112).setBiomeName("Wonderous Woods").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); - Biomes.promisedLandPlains = Optional.of((new BiomeGenPromisedLandPlains(BOPConfiguration.promisedLandPlainsID)).setColor(112).setBiomeName("Purified Plains").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); - Biomes.promisedLandDesert = Optional.of((new BiomeGenPromisedLandDesert(BOPConfiguration.promisedLandDesertID)).setColor(112).setBiomeName("Divine Desert").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); + Biomes.promisedLandPlains = Optional.of((new BiomeGenPromisedLandPlains(BOPConfiguration.promisedLandPlainsID)).setColor(112).setBiomeName("Majestic Meadow").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); Biomes.promisedLandSwamp = Optional.of((new BiomeGenPromisedLandSwamp(BOPConfiguration.promisedLandSwampID)).setColor(112).setBiomeName("Blessed Bog").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); - Biomes.promisedLandMushroom = Optional.of((new BiomeGenPromisedLandMushroom(BOPConfiguration.promisedLandMushroomID)).setColor(112).setBiomeName("Majestic Mushrooms").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); Biomes.quagmire = Optional.of((new BiomeGenQuagmire(BOPConfiguration.quagmireID)).setColor(522674).setBiomeName("Quagmire").func_76733_a(9154376).setMinMaxHeight(-0.1F, 0.3F).setTemperatureRainfall(0.8F, 0.9F)); Biomes.rainforest = Optional.of((new BiomeGenRainforest(BOPConfiguration.rainforestID)).setColor(5470985).setBiomeName("Rainforest").func_76733_a(5470985).setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.7F, 1.8F)); Biomes.redwoodForest = Optional.of((new BiomeGenRedwoodForest(BOPConfiguration.redwoodForestID)).setColor(747097).setBiomeName("Redwood Forest").func_76733_a(5159473).setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.0F, 0.4F)); @@ -134,7 +132,7 @@ public class BOPBiomes { 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.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, 0.8F)); + 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").setEnableSnow().setTemperatureRainfall(0.05F, 0.0F).setMinMaxHeight(-0.2F, 0.0F)); Biomes.volcano = Optional.of((new BiomeGenVolcano(BOPConfiguration.volcanoID)).setColor(9286496).setBiomeName("Volcano").setDisableRain().setMinMaxHeight(0.6F, 0.9F).setTemperatureRainfall(2.0F, 0.0F)); Biomes.wasteland = Optional.of((new BiomeGenWasteland(BOPConfiguration.wastelandID)).setColor(16421912).setBiomeName("Wasteland").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.0F, 0.0F)); @@ -201,9 +199,7 @@ public class BOPBiomes { BiomeDictionary.registerBiomeType(Biomes.prairie.get(), Type.PLAINS); BiomeDictionary.registerBiomeType(Biomes.promisedLandForest.get(), Type.FOREST, Type.MAGICAL); BiomeDictionary.registerBiomeType(Biomes.promisedLandPlains.get(), Type.PLAINS, Type.MAGICAL); - BiomeDictionary.registerBiomeType(Biomes.promisedLandDesert.get(), Type.DESERT, Type.MAGICAL); BiomeDictionary.registerBiomeType(Biomes.promisedLandSwamp.get(), Type.SWAMP, Type.MAGICAL); - BiomeDictionary.registerBiomeType(Biomes.promisedLandMushroom.get(), Type.MUSHROOM, Type.MAGICAL); BiomeDictionary.registerBiomeType(Biomes.quagmire.get(), Type.WASTELAND); BiomeDictionary.registerBiomeType(Biomes.rainforest.get(), Type.JUNGLE, Type.HILLS, Type.FOREST); BiomeDictionary.registerBiomeType(Biomes.redwoodForest.get(), Type.FOREST); diff --git a/src/minecraft/biomesoplenty/configuration/BOPBlocks.java b/src/minecraft/biomesoplenty/configuration/BOPBlocks.java index f991d4dab..b2504e55e 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBlocks.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBlocks.java @@ -30,6 +30,7 @@ import biomesoplenty.blocks.BlockBOPSlab.SlabCategory; import biomesoplenty.blocks.BlockBOPStairs; import biomesoplenty.blocks.BlockBOPStairs.Category; import biomesoplenty.blocks.BlockBamboo; +import biomesoplenty.blocks.BlockCloud; import biomesoplenty.blocks.BlockMoss; import biomesoplenty.blocks.BlockMud; import biomesoplenty.blocks.BlockOriginGrass; @@ -124,8 +125,8 @@ public class BOPBlocks { Blocks.hardDirt = Optional.of(new BlockBOPGeneric(BOPConfiguration.hardDirtID, Material.rock, BlockType.HARD_DIRT)); Blocks.holyGrass = Optional.of(new BlockBOPGrass(BOPConfiguration.holyGrassID).setUnlocalizedName("holyGrass")); Blocks.holyDirt = Optional.of(new BlockBOPGeneric(BOPConfiguration.holyDirtID, Material.sand, BlockType.HOLY_DIRT)); - Blocks.holySand = Optional.of(new BlockBOPGeneric(BOPConfiguration.holySandID, Material.sand, BlockType.HOLY_SAND)); Blocks.holyStone = Optional.of(new BlockBOPGeneric(BOPConfiguration.holyStoneID, Material.rock, BlockType.HOLY_STONE)); + Blocks.crystal = Optional.of(new BlockBOPGeneric(BOPConfiguration.crystalID, Material.glass, BlockType.CRYSTAL)); Blocks.promisedPortal = Optional.of(new BlockPromisedPortal(BOPConfiguration.promisedLandPortalID).setUnlocalizedName("promisedPortal").setBlockUnbreakable().setResistance(6000000.0F).setLightValue(1.0F)); // Blocks.amethystOre = Optional.of(new BlockBOPGeneric(BOPConfiguration.amethystOreID, Material.rock, BlockType.AMETHYST_ORE)); // Blocks.amethystBlock = Optional.of(new BlockBOPGeneric(BOPConfiguration.amethystBlockID, Material.iron, BlockType.AMETHYST_BLOCK)); @@ -136,6 +137,7 @@ public class BOPBlocks { Blocks.cragRock = Optional.of(new BlockBOPGeneric(BOPConfiguration.cragRockID, Material.rock, BlockType.CRAG_ROCK)); // Blocks.quicksand = Optional.of((new BlockQuicksand(BOPConfiguration.quicksandID)).setHardness(0.3F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("quicksand")); // Blocks.grass = Optional.of(new BlockBOPGrass(3000).setUnlocalizedName("holyGrass")); + Blocks.cloud = Optional.of((new BlockCloud(BOPConfiguration.cloudID)).setHardness(0.1F).setLightOpacity(3).setStepSound(Block.soundClothFootstep).setUnlocalizedName("cloud")); Blocks.planks = Optional.of((new BlockBOPPlank(BOPConfiguration.planksID)).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("planks")); @@ -188,10 +190,10 @@ public class BOPBlocks { GameRegistry.registerBlock(Blocks.redBricksStairs.get(), "redBricksStairs"); GameRegistry.registerBlock(Blocks.hardSand.get(), "hardSand"); GameRegistry.registerBlock(Blocks.hardDirt.get(), "hardDirt"); + GameRegistry.registerBlock(Blocks.crystal.get(), "crystal"); // GameRegistry.registerBlock(Blocks.holyGrass.get(), "holyGrass"); GameRegistry.registerBlock(Blocks.holyGrass.get(), ItemBOPGrass.class, "holyGrass"); GameRegistry.registerBlock(Blocks.holyDirt.get(), "holyDirt"); - GameRegistry.registerBlock(Blocks.holySand.get(), "holySand"); GameRegistry.registerBlock(Blocks.holyStone.get(), "holyStone"); GameRegistry.registerBlock(Blocks.promisedPortal.get(), "promisedPortal"); GameRegistry.registerBlock(Blocks.amethystOre.get(), ItemBOPAmethyst.class, "amethystOre"); @@ -202,6 +204,7 @@ public class BOPBlocks { GameRegistry.registerBlock(Blocks.cragRock.get(), "cragRock"); // GameRegistry.registerBlock(Blocks.quicksand.get(), "quicksand"); // GameRegistry.registerBlock(Blocks.amethyst.get(), ItemBOPAmethyst.class, "amethystOre1"); + GameRegistry.registerBlock(Blocks.cloud.get(), "cloud"); ItemBOPSlab.setSlabs(Blocks.stoneSingleSlab.get(), Blocks.stoneDoubleSlab.get()); GameRegistry.registerBlock(Blocks.stoneDoubleSlab.get(), ItemBOPSlab.class, "stoneDoubleSlab"); @@ -319,8 +322,8 @@ public class BOPBlocks { LanguageRegistry.addName(new ItemStack(Blocks.holyGrass.get(), 1, 0), "Holy Grass"); LanguageRegistry.addName(new ItemStack(Blocks.holyGrass.get(), 1, 1), "Smoldering Grass"); LanguageRegistry.addName(Blocks.holyDirt.get(), "Holy Dirt"); - LanguageRegistry.addName(Blocks.holySand.get(), "Holy Sand"); LanguageRegistry.addName(Blocks.holyStone.get(), "Holy Stone"); + LanguageRegistry.addName(Blocks.crystal.get(), "Celestial Crystal"); LanguageRegistry.addName(new ItemStack(Blocks.plants.get(),1,4), "Holy Tall Grass"); LanguageRegistry.addName(Blocks.promisedPortal.get(), "Promised Land Portal"); LanguageRegistry.addName(new ItemStack(Blocks.saplings.get(),1,7), "Holy Sapling"); @@ -334,6 +337,7 @@ public class BOPBlocks { // LanguageRegistry.addName(Blocks.smolderingGrass.get(), "Smoldering Grass"); LanguageRegistry.addName(Blocks.cragRock.get(), "Crag Rock"); // LanguageRegistry.addName(Blocks.quicksand.get(), "Quicksand"); + LanguageRegistry.addName(Blocks.cloud.get(), "Cloud Block"); LanguageRegistry.addName(new ItemStack(Blocks.mud.get(), 1, 1), "Quicksand"); LanguageRegistry.addName(new ItemStack(Blocks.saplings.get(),1,2), "Bamboo Sapling"); diff --git a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java index 41f7cd9b5..79ed7951b 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java +++ b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java @@ -116,7 +116,6 @@ public class BOPConfiguration { public static int holyGrassID; public static int holyDirtID; public static int holyStoneID; - public static int holySandID; public static int cragRockID; public static int plantsID; @@ -174,6 +173,9 @@ public class BOPConfiguration { public static int willowStairsID; public static int colourizedLeavesID; + + public static int crystalID; + public static int cloudID; //Item IDs public static int shroomPowderID; @@ -268,9 +270,7 @@ public class BOPConfiguration { public static int prairieID; public static int promisedLandForestID; public static int promisedLandPlainsID; - public static int promisedLandDesertID; public static int promisedLandSwampID; - public static int promisedLandMushroomID; public static int quagmireID; public static int rainforestID; public static int redwoodForestID; @@ -593,8 +593,7 @@ public class BOPConfiguration { holyGrassID = config.getTerrainBlock("Terrain Block IDs", "Holy Grass ID", 169, null).getInt(); holyDirtID = config.getTerrainBlock("Terrain Block IDs", "Holy Dirt ID", 170, null).getInt(); holyStoneID = config.getTerrainBlock("Terrain Block IDs", "Holy Stone ID", 171, null).getInt(); - holySandID = config.getTerrainBlock("Terrain Block IDs", "Holy Sand ID", 172, null).getInt(); - cragRockID = config.getTerrainBlock("Terrain Block IDs", "Crag Rock ID", 173, null).getInt(); + cragRockID = config.getTerrainBlock("Terrain Block IDs", "Crag Rock ID", 172, null).getInt(); // Get Crafted Block ID's plantsID = config.getBlock("Plant ID", 1920, null).getInt(); @@ -647,6 +646,9 @@ public class BOPConfiguration { willowStairsID = config.getBlock("Willow Stairs ID", 1961, null).getInt(); colourizedLeavesID = config.getBlock("Colourized Leaves ID", 1962, null).getInt(); + + crystalID = config.getBlock("Crystal ID", 1963, null).getInt(); + cloudID = config.getBlock("Cloud ID", 1964, null).getInt(); // Get Item ID's shroomPowderID = config.getItem("Shroom Powder ID", 21001, null).getInt(); @@ -692,14 +694,12 @@ public class BOPConfiguration { //23-79 ExtraBiomesXL - promisedLandForestID = config.get("Biome IDs", "Wonderous Woods (Promised Land) ID", 75).getInt(); - promisedLandPlainsID = config.get("Biome IDs", "Purified Plains (Promised Land) ID", 76).getInt(); - promisedLandDesertID = config.get("Biome IDs", "Divine Desert (Promised Land) ID", 77).getInt(); - promisedLandSwampID = config.get("Biome IDs", "Blessed Bog (Promised Land) ID", 78).getInt(); - promisedLandMushroomID = config.get("Biome IDs", "Majestic Mushrooms (Promised Land) ID", 79).getInt(); - //80-169 Better World Generation 4 + promisedLandForestID = config.get("Biome IDs", "Wonderous Woods (Promised Land) ID", 170).getInt(); + promisedLandPlainsID = config.get("Biome IDs", "Majestic Meadow (Promised Land) ID", 171).getInt(); + promisedLandSwampID = config.get("Biome IDs", "Blessed Bog (Promised Land) ID", 172).getInt(); + alpsID = config.get("Biome IDs", "Alps ID", 173).getInt(); arcticID = config.get("Biome IDs", "Arctic ID", 174).getInt(); badlandsID = config.get("Biome IDs", "Badlands ID", 175).getInt(); diff --git a/src/minecraft/biomesoplenty/configuration/BOPCrafting.java b/src/minecraft/biomesoplenty/configuration/BOPCrafting.java index 832784010..ea331cd75 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPCrafting.java +++ b/src/minecraft/biomesoplenty/configuration/BOPCrafting.java @@ -112,6 +112,7 @@ public class BOPCrafting GameRegistry.addRecipe(new ItemStack(Blocks.amethystOre.get(), 1, 1), new Object[] {"AAA", "AAA", "AAA", 'A', new ItemStack(Items.miscItems.get(), 1, 2)}); GameRegistry.addRecipe(new ItemStack(Blocks.ash.get(), 1), new Object[] {"AA", "AA", 'A', new ItemStack(Items.miscItems.get(), 1, 1)}); GameRegistry.addRecipe(new ItemStack(Blocks.mudBrick.get(), 1), new Object[] {"MM", "MM", 'M', new ItemStack(Items.miscItems.get(), 1, 0)}); + GameRegistry.addRecipe(new ItemStack(Blocks.crystal.get(), 1), new Object[] {"CC", "CC", 'C', new ItemStack(Items.miscItems.get(), 1, 4)}); // GameRegistry.addRecipe(new ItemStack(Blocks.planks.get(), 1, 10), new Object[] {"###", "###", "###", '#', Blocks.bamboo.get()}); GameRegistry.addRecipe(new ItemStack(Block.cobblestoneMossy, 1, 0), new Object[] {"MMM", "MCM", "MMM", 'M', Blocks.moss.get(), 'C', Block.cobblestone}); GameRegistry.addRecipe(new ItemStack(Block.stoneBrick, 1, 1), new Object[] {"MMM", "MSM", "MMM", 'M', Blocks.moss.get(), 'S', Block.stoneBrick}); diff --git a/src/minecraft/biomesoplenty/configuration/BOPItems.java b/src/minecraft/biomesoplenty/configuration/BOPItems.java index 00e6dc88d..92a1509ab 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPItems.java +++ b/src/minecraft/biomesoplenty/configuration/BOPItems.java @@ -151,6 +151,7 @@ public class BOPItems { LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 2), "Amethyst"); LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 1), "Pile of Ashes"); LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 3), "Poison"); + LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 4), "Celestial Crystal Shard"); LanguageRegistry.addName(Items.pickaxeMud.get(), "Muddy Pickaxe"); LanguageRegistry.addName(Items.axeMud.get(), "Muddy Axe"); diff --git a/src/minecraft/biomesoplenty/integration/ForestryIntegration.java b/src/minecraft/biomesoplenty/integration/ForestryIntegration.java index 790447a2e..1c9bcf894 100644 --- a/src/minecraft/biomesoplenty/integration/ForestryIntegration.java +++ b/src/minecraft/biomesoplenty/integration/ForestryIntegration.java @@ -56,18 +56,14 @@ public class ForestryIntegration EnumTemperature.hotBiomeIds.add(BOPConfiguration.oasisID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandForestID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandPlainsID); - EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandDesertID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandSwampID); - EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandMushroomID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.rainforestID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.tropicsID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.oasisID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandForestID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandPlainsID); - EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandDesertID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandSwampID); - EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandMushroomID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.rainforestID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.tropicsID); diff --git a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java index e30396441..fad6c4b7e 100644 --- a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java +++ b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java @@ -108,6 +108,7 @@ public class ThaumcraftIntegration { ThaumcraftApi.registerObjectTag(getBID("holyGrass"), getBMeta("holyGrass"), (new ObjectTags()).add(EnumTag.PLANT, 1).add(EnumTag.EARTH, 2).add(EnumTag.LIGHT, 1)); ThaumcraftApi.registerObjectTag(getBID("holyDirt"), getBMeta("holyDirt"), (new ObjectTags()).add(EnumTag.LIGHT, 1).add(EnumTag.EARTH, 2)); ThaumcraftApi.registerObjectTag(getBID("holyStone"), getBMeta("holyStone"), (new ObjectTags()).add(EnumTag.LIGHT, 1).add(EnumTag.ROCK, 2)); + ThaumcraftApi.registerObjectTag(getBID("crystal"), getBMeta("crystal"), (new ObjectTags()).add(EnumTag.VALUABLE, 58).add(EnumTag.LIGHT, 15).add(EnumTag.MAGIC, 20).add(EnumTag.CRYSTAL, 50)); ThaumcraftApi.registerObjectTag(getBID("cragRock"), getBMeta("cragRock"), (new ObjectTags()).add(EnumTag.ROCK, 2)); ThaumcraftApi.registerObjectTag(getBID("quicksand"), getBMeta("quicksand"), (new ObjectTags()).add(EnumTag.EARTH, 2).add(EnumTag.TRAP, 4)); ThaumcraftApi.registerObjectTag(getBID("smolderingGrass"), getBMeta("smolderingGrass"), (new ObjectTags()).add(EnumTag.EARTH, 2).add(EnumTag.FIRE, 1)); diff --git a/src/minecraft/biomesoplenty/items/ItemBOP.java b/src/minecraft/biomesoplenty/items/ItemBOP.java index bec04d202..e5e6ee847 100644 --- a/src/minecraft/biomesoplenty/items/ItemBOP.java +++ b/src/minecraft/biomesoplenty/items/ItemBOP.java @@ -13,7 +13,7 @@ import cpw.mods.fml.relauncher.SideOnly; public class ItemBOP extends Item { - private static String[] items = {"mudbrick", "ash", "amethyst", "poison"}; + private static String[] items = {"mudbrick", "ash", "amethyst", "poison", "crystalshard"}; @SideOnly(Side.CLIENT) private Icon[] textures; diff --git a/src/minecraft/biomesoplenty/world/layer/BiomeLayer.java b/src/minecraft/biomesoplenty/world/layer/BiomeLayer.java index 519f5702c..a0132852b 100644 --- a/src/minecraft/biomesoplenty/world/layer/BiomeLayer.java +++ b/src/minecraft/biomesoplenty/world/layer/BiomeLayer.java @@ -17,7 +17,7 @@ public abstract class BiomeLayer BiomeLayer obj = new BiomeLayerCreate(1L); obj = new BiomeLayerFuzzyZoom(2000L, (BiomeLayer)(obj)); - for(int i = 1; i < 1; i++) + for(int i = 1; i < 3; i++) { obj = new BiomeLayerZoom(2000L + i, (BiomeLayer)(obj)); } @@ -26,7 +26,7 @@ public abstract class BiomeLayer obj = new BiomeLayerBiomes(200L, ((BiomeLayer)(obj)), worldtype); obj = BiomeLayerZoom.func_75915_a(1000L, ((BiomeLayer)(obj)), 2); - for(int j = 0; j < 1; j++) + for(int j = 0; j < 3; j++) { obj = new BiomeLayerZoom(1000L + j, (BiomeLayer)(obj)); } diff --git a/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java b/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java index 4d8862298..425cc3fce 100644 --- a/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java +++ b/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java @@ -26,20 +26,10 @@ public class BiomeLayerBiomes extends BiomeLayer AllowedBiomes.add(Biomes.promisedLandPlains.get()); } - if (Biomes.promisedLandDesert.isPresent()) - { - AllowedBiomes.add(Biomes.promisedLandDesert.get()); - } - if (Biomes.promisedLandSwamp.isPresent()) { AllowedBiomes.add(Biomes.promisedLandSwamp.get()); } - - if (Biomes.promisedLandMushroom.isPresent()) - { - AllowedBiomes.add(Biomes.promisedLandMushroom.get()); - } } public int[] getInts(int par1, int par2, int par3, int par4) diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenCloud.java b/src/minecraft/biomesoplenty/worldgen/WorldGenCloud.java new file mode 100644 index 000000000..f1832c7d5 --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenCloud.java @@ -0,0 +1,86 @@ +package biomesoplenty.worldgen; + +import java.util.Random; + +import biomesoplenty.api.Blocks; +import biomesoplenty.configuration.BOPBlocks; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCloud extends WorldGenerator +{ + /** The block ID of the ore to be placed using this generator. */ + private int minableBlockId; + + /** The number of blocks to generate. */ + private int numberOfBlocks; + + public WorldGenCloud(int par1, int par2) + { + this.minableBlockId = par1; + this.numberOfBlocks = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + float var6 = par2Random.nextFloat() * (float)Math.PI; + double var7 = (double)((float)(par3 + 8) + MathHelper.sin(var6) * (float)this.numberOfBlocks / 8.0F); + double var9 = (double)((float)(par3 + 8) - MathHelper.sin(var6) * (float)this.numberOfBlocks / 8.0F); + double var11 = (double)((float)(par5 + 8) + MathHelper.cos(var6) * (float)this.numberOfBlocks / 8.0F); + double var13 = (double)((float)(par5 + 8) - MathHelper.cos(var6) * (float)this.numberOfBlocks / 8.0F); + double var15 = (double)(par4 + par2Random.nextInt(9) - 2); + double var17 = (double)(par4 + par2Random.nextInt(9) - 2); + + for (int var19 = 0; var19 <= this.numberOfBlocks; ++var19) + { + double var20 = var7 + (var9 - var7) * (double)var19 / (double)this.numberOfBlocks; + double var22 = var15 + (var17 - var15) * (double)var19 / (double)this.numberOfBlocks; + double var24 = var11 + (var13 - var11) * (double)var19 / (double)this.numberOfBlocks; + double var26 = par2Random.nextDouble() * (double)this.numberOfBlocks / 32.0D; + double var28 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * var26 + 1.0D; + double var30 = (double)(MathHelper.sin((float)var19 * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * var26 + 1.0D; + int var32 = MathHelper.floor_double(var20 - var28 / 1.0D); + int var33 = MathHelper.floor_double(var22 - var30 / 1.0D); + int var34 = MathHelper.floor_double(var24 - var28 / 1.0D); + int var35 = MathHelper.floor_double(var20 + var28 / 1.0D); + int var36 = MathHelper.floor_double(var22 + var30 / 1.0D); + int var37 = MathHelper.floor_double(var24 + var28 / 1.0D); + + for (int var38 = var32; var38 <= var35; ++var38) + { + double var39 = ((double)var38 + 0.5D - var20) / (var28 / 1.0D); + + if (var39 * var39 < 1.0D) + { + for (int var41 = var33; var41 <= var36; ++var41) + { + double var42 = ((double)var41 + 0.5D - var22) / (var30 / 1.0D); + + if (var39 * var39 + var42 * var42 < 1.0D) + { + for (int var44 = var34; var44 <= var37; ++var44) + { + double var45 = ((double)var44 + 0.5D - var24) / (var28 / 1.0D); + + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.isAirBlock(var38, var41, var44)) + { + int var999 = par2Random.nextInt(45); + + if (var999 == 0) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenCrystal1.java b/src/minecraft/biomesoplenty/worldgen/WorldGenCrystal1.java new file mode 100644 index 000000000..a2723ce52 --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenCrystal1.java @@ -0,0 +1,89 @@ +package biomesoplenty.worldgen; + +import java.util.Random; + +import biomesoplenty.api.Blocks; +import biomesoplenty.configuration.BOPBlocks; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCrystal1 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (!par1World.isAirBlock(par3, par4, par5)) + { + return false; + } + else if (par1World.getBlockId(par3, par4 + 1, par5) != Blocks.holyStone.get().blockID) + { + return false; + } + else + { + par1World.setBlock(par3, par4, par5, Blocks.crystal.get().blockID, 0, 2); + + for (int l = 0; l < 1500; ++l) + { + int i1 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int j1 = par4 - par2Random.nextInt(12); + int k1 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.getBlockId(i1, j1, k1) == 0) + { + int l1 = 0; + + for (int i2 = 0; i2 < 6; ++i2) + { + int j2 = 0; + + if (i2 == 0) + { + j2 = par1World.getBlockId(i1 - 1, j1, k1); + } + + if (i2 == 1) + { + j2 = par1World.getBlockId(i1 + 1, j1, k1); + } + + if (i2 == 2) + { + j2 = par1World.getBlockId(i1, j1 - 1, k1); + } + + if (i2 == 3) + { + j2 = par1World.getBlockId(i1, j1 + 1, k1); + } + + if (i2 == 4) + { + j2 = par1World.getBlockId(i1, j1, k1 - 1); + } + + if (i2 == 5) + { + j2 = par1World.getBlockId(i1, j1, k1 + 1); + } + + if (j2 == Blocks.crystal.get().blockID) + { + ++l1; + } + } + + if (l1 == 1) + { + par1World.setBlock(i1, j1, k1, Blocks.crystal.get().blockID, 0, 2); + } + } + } + + return true; + } + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenCrystal2.java b/src/minecraft/biomesoplenty/worldgen/WorldGenCrystal2.java new file mode 100644 index 000000000..76ff1cfec --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenCrystal2.java @@ -0,0 +1,89 @@ +package biomesoplenty.worldgen; + +import java.util.Random; + +import biomesoplenty.api.Blocks; +import biomesoplenty.configuration.BOPBlocks; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCrystal2 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (!par1World.isAirBlock(par3, par4, par5)) + { + return false; + } + else if (par1World.getBlockId(par3, par4 + 1, par5) != Blocks.holyStone.get().blockID) + { + return false; + } + else + { + par1World.setBlock(par3, par4, par5, Blocks.crystal.get().blockID, 0, 2); + + for (int l = 0; l < 1500; ++l) + { + int i1 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int j1 = par4 - par2Random.nextInt(12); + int k1 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.getBlockId(i1, j1, k1) == 0) + { + int l1 = 0; + + for (int i2 = 0; i2 < 6; ++i2) + { + int j2 = 0; + + if (i2 == 0) + { + j2 = par1World.getBlockId(i1 - 1, j1, k1); + } + + if (i2 == 1) + { + j2 = par1World.getBlockId(i1 + 1, j1, k1); + } + + if (i2 == 2) + { + j2 = par1World.getBlockId(i1, j1 - 1, k1); + } + + if (i2 == 3) + { + j2 = par1World.getBlockId(i1, j1 + 1, k1); + } + + if (i2 == 4) + { + j2 = par1World.getBlockId(i1, j1, k1 - 1); + } + + if (i2 == 5) + { + j2 = par1World.getBlockId(i1, j1, k1 + 1); + } + + if (j2 == Blocks.crystal.get().blockID) + { + ++l1; + } + } + + if (l1 == 1) + { + par1World.setBlock(i1, j1, k1, Blocks.crystal.get().blockID, 0, 2); + } + } + } + + return true; + } + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenGiantFlowerRed.java b/src/minecraft/biomesoplenty/worldgen/WorldGenGiantFlowerRed.java index 8269f672a..6c8505b30 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenGiantFlowerRed.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenGiantFlowerRed.java @@ -45,37 +45,37 @@ public class WorldGenGiantFlowerRed extends WorldGenerator var1.setBlock(var3, var4 + 4, var5, Blocks.logs3.get().blockID, 3, 2); var1.setBlock(var3, var4 + 5, var5, Blocks.logs3.get().blockID, 3, 2); - var1.setBlock(var3 - 1, var4 + 5, var5, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 1, var4 + 5, var5, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3, var4 + 5, var5 - 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3, var4 + 5, var5 + 1, Blocks.petals.get().blockID, 3, 2); + var1.setBlock(var3 - 1, var4 + 5, var5, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 1, var4 + 5, var5, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3, var4 + 5, var5 - 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3, var4 + 5, var5 + 1, Blocks.petals.get().blockID, 0, 2); - var1.setBlock(var3, var4 + 6, var5, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 1, var4 + 6, var5, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 1, var4 + 6, var5, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3, var4 + 6, var5 - 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3, var4 + 6, var5 + 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 2, var4 + 6, var5, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 2, var4 + 6, var5, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3, var4 + 6, var5 - 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3, var4 + 6, var5 + 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 1, var4 + 6, var5 - 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 1, var4 + 6, var5 + 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 1, var4 + 6, var5 - 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 1, var4 + 6, var5 + 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 2, var4 + 6, var5 - 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 2, var4 + 6, var5 + 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 2, var4 + 6, var5 - 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 2, var4 + 6, var5 + 2, Blocks.petals.get().blockID, 3, 2); + var1.setBlock(var3, var4 + 6, var5, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 + 6, var5, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 1, var4 + 6, var5, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3, var4 + 6, var5 - 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3, var4 + 6, var5 + 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 2, var4 + 6, var5, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 2, var4 + 6, var5, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3, var4 + 6, var5 - 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3, var4 + 6, var5 + 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 + 6, var5 - 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 + 6, var5 + 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 1, var4 + 6, var5 - 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 1, var4 + 6, var5 + 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 2, var4 + 6, var5 - 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 2, var4 + 6, var5 + 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 2, var4 + 6, var5 - 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 2, var4 + 6, var5 + 2, Blocks.petals.get().blockID, 0, 2); - var1.setBlock(var3 - 1, var4 + 7, var5 - 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 1, var4 + 7, var5 + 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 1, var4 + 7, var5 - 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 1, var4 + 7, var5 + 2, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 2, var4 + 7, var5 - 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 - 2, var4 + 7, var5 + 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 2, var4 + 7, var5 - 1, Blocks.petals.get().blockID, 3, 2); - var1.setBlock(var3 + 2, var4 + 7, var5 + 1, Blocks.petals.get().blockID, 3, 2); + var1.setBlock(var3 - 1, var4 + 7, var5 - 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 + 7, var5 + 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 1, var4 + 7, var5 - 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 1, var4 + 7, var5 + 2, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 2, var4 + 7, var5 - 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 - 2, var4 + 7, var5 + 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 2, var4 + 7, var5 - 1, Blocks.petals.get().blockID, 0, 2); + var1.setBlock(var3 + 2, var4 + 7, var5 + 1, Blocks.petals.get().blockID, 0, 2); return true; } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree1.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree1.java index a6d37e148..5139eff29 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree1.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree1.java @@ -20,7 +20,7 @@ public class WorldGenPalmTree1 extends WorldGenerator int var6 = var1.getBlockId(var3, var4, var5); - if (var6 != Block.grass.blockID && var6 != Blocks.holySand.get().blockID) + if (var6 != Block.grass.blockID) { return false; } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree3.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree3.java index 1fbb23d8d..1000cc1fe 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree3.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree3.java @@ -20,7 +20,7 @@ public class WorldGenPalmTree3 extends WorldGenerator int var6 = var1.getBlockId(var3, var4, var5); - if (var6 != Block.grass.blockID && var6 != Blocks.holySand.get().blockID) + if (var6 != Block.grass.blockID) { return false; } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java index e4c27c877..970ddd959 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java @@ -18,10 +18,10 @@ public class WorldGenPromisedTree3 extends WorldGenerator public boolean generate(World var1, Random var2, int var3, int var4, int var5) { - int var6 = var2.nextInt(15) + 20; - int var7 = var2.nextInt(5) + 5; + int var6 = var2.nextInt(20) + 30; + int var7 = var2.nextInt(5) + 10; int var8 = var6 - var7; - int var9 = 2 + var2.nextInt(2); + int var9 = 2 + var2.nextInt(3); boolean var10 = true; if (var4 >= 1 && var4 + var6 + 1 <= 256) diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedWillowTree.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedWillowTree.java index 6cdd73e30..d1981508b 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedWillowTree.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedWillowTree.java @@ -16,7 +16,7 @@ public class WorldGenPromisedWillowTree extends WorldGenerator { int var6; - for (var6 = par2Random.nextInt(12) + 4; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + for (var6 = par2Random.nextInt(4) + 5; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) { ; } @@ -172,7 +172,7 @@ public class WorldGenPromisedWillowTree extends WorldGenerator private void generateVines(World par1World, int par2, int par3, int par4, int par5) { this.setBlockAndMetadata(par1World, par2, par3, par4, Blocks.willow.get().blockID, par5); - int var6 = 7; + int var6 = 16; while (true) { diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/cloud.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/cloud.png new file mode 100644 index 000000000..991e15c6a Binary files /dev/null and b/src/minecraft/mods/BiomesOPlenty/textures/blocks/cloud.png differ diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/crystal.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/crystal.png new file mode 100644 index 000000000..b32b2cc42 Binary files /dev/null and b/src/minecraft/mods/BiomesOPlenty/textures/blocks/crystal.png differ diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/desertgrass.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/desertgrass.png index 44e0a3f11..aadf8198d 100644 Binary files a/src/minecraft/mods/BiomesOPlenty/textures/blocks/desertgrass.png and b/src/minecraft/mods/BiomesOPlenty/textures/blocks/desertgrass.png differ diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/holysand.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/holysand.png index 5070824bd..3feb5c689 100644 Binary files a/src/minecraft/mods/BiomesOPlenty/textures/blocks/holysand.png and b/src/minecraft/mods/BiomesOPlenty/textures/blocks/holysand.png differ diff --git a/src/minecraft/mods/BiomesOPlenty/textures/items/crystalshard.png b/src/minecraft/mods/BiomesOPlenty/textures/items/crystalshard.png new file mode 100644 index 000000000..2094eda72 Binary files /dev/null and b/src/minecraft/mods/BiomesOPlenty/textures/items/crystalshard.png differ