From 7823b2c727e0d32421865ba854508efee72f5b46 Mon Sep 17 00:00:00 2001 From: Matt Caughey Date: Thu, 9 May 2013 09:38:48 -0400 Subject: [PATCH] Finished up the Promised Land sub-biomes. Added item textures for the flower bands. --- src/minecraft/biomesoplenty/api/Biomes.java | 2 +- .../biomesoplenty/api/BlockReferences.java | 2 + src/minecraft/biomesoplenty/api/Blocks.java | 2 + .../biomes/BiomeGenPromisedLandDesert.java | 22 +- .../biomes/BiomeGenPromisedLandForest.java | 14 +- ...java => BiomeGenPromisedLandMushroom.java} | 36 ++- .../biomes/BiomeGenPromisedLandPlains.java | 21 +- .../biomes/BiomeGenPromisedLandSwamp.java | 13 +- .../biomesoplenty/blocks/BlockBOPFlower.java | 16 +- .../biomesoplenty/blocks/BlockBOPGeneric.java | 18 +- .../biomesoplenty/blocks/BlockBOPGrass.java | 10 +- .../configuration/BOPBiomes.java | 4 +- .../configuration/BOPBlocks.java | 8 +- .../configuration/BOPConfiguration.java | 20 +- .../integration/ForestryIntegration.java | 5 +- .../integration/ThaumcraftIntegration.java | 1 + .../biomesoplenty/world/layer/BiomeLayer.java | 4 +- .../world/layer/BiomeLayerBiomes.java | 4 +- .../worldgen/WorldGenBOPBigMushroom.java | 224 ++++++++++++++++++ .../worldgen/WorldGenMycelium.java | 5 +- .../worldgen/WorldGenPalmTree1.java | 2 +- .../worldgen/WorldGenPalmTree3.java | 2 +- .../worldgen/WorldGenPromisedBush.java | 51 ++++ .../worldgen/WorldGenPromisedTree.java | 2 +- .../worldgen/WorldGenPromisedTree2.java | 2 +- .../worldgen/WorldGenPromisedTree3.java | 8 +- .../worldgen/WorldGenPromisedWillowTree.java | 2 +- .../worldgen/WorldGenWaterSpring.java | 81 +++++++ .../textures/armor/dullflowerband.png | Bin 315 -> 324 bytes .../textures/armor/exoticflowerband.png | Bin 376 -> 354 bytes .../textures/armor/lushflowerband.png | Bin 362 -> 332 bytes .../textures/armor/plainflowerband.png | Bin 335 -> 301 bytes .../textures/blocks/amethystore.png | Bin 364 -> 366 bytes .../textures/blocks/holydirt.png | Bin 0 -> 339 bytes .../textures/blocks/holygrass_side.png | Bin 628 -> 600 bytes .../textures/blocks/holysand.png | Bin 0 -> 585 bytes .../textures/items/dullflowerband.png | Bin 0 -> 294 bytes .../textures/items/exoticflowerband.png | Bin 0 -> 294 bytes .../textures/items/lushflowerband.png | Bin 0 -> 296 bytes .../textures/items/plainflowerband.png | Bin 0 -> 291 bytes 40 files changed, 502 insertions(+), 79 deletions(-) rename src/minecraft/biomesoplenty/biomes/{BiomeGenPromisedLandCrystals.java => BiomeGenPromisedLandMushroom.java} (66%) create mode 100644 src/minecraft/biomesoplenty/worldgen/WorldGenBOPBigMushroom.java create mode 100644 src/minecraft/biomesoplenty/worldgen/WorldGenPromisedBush.java create mode 100644 src/minecraft/biomesoplenty/worldgen/WorldGenWaterSpring.java create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/holydirt.png create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/holysand.png create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/dullflowerband.png create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/exoticflowerband.png create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/lushflowerband.png create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/plainflowerband.png diff --git a/src/minecraft/biomesoplenty/api/Biomes.java b/src/minecraft/biomesoplenty/api/Biomes.java index 9a3d7d85e..5f4a866ca 100644 --- a/src/minecraft/biomesoplenty/api/Biomes.java +++ b/src/minecraft/biomesoplenty/api/Biomes.java @@ -59,7 +59,7 @@ public class Biomes public static Optional promisedLandPlains = Optional.absent(); public static Optional promisedLandDesert = Optional.absent(); public static Optional promisedLandSwamp = Optional.absent(); - public static Optional promisedLandCrystals = 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 494bda58c..d872f7409 100644 --- a/src/minecraft/biomesoplenty/api/BlockReferences.java +++ b/src/minecraft/biomesoplenty/api/BlockReferences.java @@ -100,7 +100,9 @@ public class BlockReferences { hardSand (Blocks.hardSand, 0), hardDirt (Blocks.hardDirt, 0), holyGrass (Blocks.holyGrass, 0), + holyDirt (Blocks.holyDirt, 0), holyStone (Blocks.holyStone, 0), + holySand (Blocks.holySand, 0), cragRock (Blocks.cragRock, 0), quicksand (Blocks.mud, 1), smolderingGrass (Blocks.holyGrass, 1), diff --git a/src/minecraft/biomesoplenty/api/Blocks.java b/src/minecraft/biomesoplenty/api/Blocks.java index dbb53b89e..91f21ec4f 100644 --- a/src/minecraft/biomesoplenty/api/Blocks.java +++ b/src/minecraft/biomesoplenty/api/Blocks.java @@ -19,7 +19,9 @@ public class Blocks public static Optional hardIce = Optional.absent(); public static Optional hardSand = Optional.absent(); 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(); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandDesert.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandDesert.java index 010fd0748..1b5d33a9c 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandDesert.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandDesert.java @@ -6,10 +6,13 @@ 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; @@ -27,22 +30,25 @@ public class BiomeGenPromisedLandDesert extends BiomeGenBase super(par1); this.theBiomeDecorator = new BiomeDecoratorBOP(this); this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; - this.topBlock = (byte)Block.sand.blockID; - this.fillerBlock = (byte)Block.sand.blockID; - this.customBiomeDecorator.treesPerChunk = -999; + 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.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 = false; + this.customBiomeDecorator.generatePumpkins = true; + this.customBiomeDecorator.generateMelons = true; this.customBiomeDecorator.generateLakes = false; - this.theWorldGenerator = new WorldGenMinable(Block.waterMoving.blockID, 8); + this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); } /** @@ -50,7 +56,7 @@ public class BiomeGenPromisedLandDesert extends BiomeGenBase */ public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { - return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenPromisedShrub(0, 0) : (par1Random.nextInt(4) == 0 ? new WorldGenPromisedTree3(false) : (par1Random.nextInt(8) == 0 ? new WorldGenPromisedTree2(false) : new WorldGenPromisedTree(false)))); + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenPalmTree3() : new WorldGenPalmTree1()); } /** @@ -69,7 +75,7 @@ public class BiomeGenPromisedLandDesert extends BiomeGenBase int var7; int var8; - for (var5 = 0; var5 < 5; ++var5) + for (var5 = 0; var5 < 10; ++var5) { var6 = par3 + par2Random.nextInt(16); var7 = par2Random.nextInt(60); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandForest.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandForest.java index eb7b621c9..a40468763 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandForest.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandForest.java @@ -10,6 +10,7 @@ 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; @@ -28,24 +29,23 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase this.theBiomeDecorator = new BiomeDecoratorBOP(this); this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; this.topBlock = (byte)Blocks.holyGrass.get().blockID; - this.fillerBlock = (byte)Blocks.holyStone.get().blockID; - this.customBiomeDecorator.treesPerChunk = 8; + this.fillerBlock = (byte)Blocks.holyDirt.get().blockID; + this.customBiomeDecorator.treesPerChunk = 12; this.customBiomeDecorator.grassPerChunk = -999; this.customBiomeDecorator.holyTallGrassPerChunk = 50; - this.customBiomeDecorator.promisedWillowPerChunk = 40; + this.customBiomeDecorator.promisedWillowPerChunk = 80; this.customBiomeDecorator.pinkFlowersPerChunk = 6; - this.customBiomeDecorator.glowFlowersPerChunk = 3; this.customBiomeDecorator.blueMilksPerChunk = 5; this.customBiomeDecorator.generateLakes = false; this.customBiomeDecorator.pondsPerChunk = -100; - this.customBiomeDecorator.waterLakesPerChunk = 5; + this.customBiomeDecorator.waterLakesPerChunk = 8; this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.spawnableCaveCreatureList.clear(); this.customBiomeDecorator.generatePumpkins = false; //this.customBiomeDecorator.generateLakes = false; - this.theWorldGenerator = new WorldGenMinable(Block.waterMoving.blockID, 8); + this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); } /** @@ -72,7 +72,7 @@ public class BiomeGenPromisedLandForest extends BiomeGenBase int var7; int var8; - for (var5 = 0; var5 < 5; ++var5) + for (var5 = 0; var5 < 10; ++var5) { var6 = par3 + par2Random.nextInt(16); var7 = par2Random.nextInt(60); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandCrystals.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandMushroom.java similarity index 66% rename from src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandCrystals.java rename to src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandMushroom.java index 3068b1447..ac42446d7 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandCrystals.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandMushroom.java @@ -6,37 +6,45 @@ 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 BiomeGenPromisedLandCrystals extends BiomeGenBase +public class BiomeGenPromisedLandMushroom extends BiomeGenBase { private WorldGenerator theWorldGenerator; private BiomeDecoratorBOP customBiomeDecorator; - public BiomeGenPromisedLandCrystals(int par1) + 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.holyStone.get().blockID; - this.customBiomeDecorator.treesPerChunk = -999; + this.fillerBlock = (byte)Blocks.holyDirt.get().blockID; + this.customBiomeDecorator.treesPerChunk = 15; this.customBiomeDecorator.grassPerChunk = -999; - this.customBiomeDecorator.holyTallGrassPerChunk = 2; - this.customBiomeDecorator.promisedWillowPerChunk = -999; + this.customBiomeDecorator.holyTallGrassPerChunk = 50; + this.customBiomeDecorator.promisedWillowPerChunk = 80; this.customBiomeDecorator.pinkFlowersPerChunk = 6; - this.customBiomeDecorator.glowFlowersPerChunk = 10; - this.customBiomeDecorator.blueMilksPerChunk = 5; + 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(); @@ -45,7 +53,15 @@ public class BiomeGenPromisedLandCrystals extends BiomeGenBase this.spawnableCaveCreatureList.clear(); this.customBiomeDecorator.generatePumpkins = false; //this.customBiomeDecorator.generateLakes = false; - this.theWorldGenerator = new WorldGenMinable(Block.waterMoving.blockID, 8); + 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)); } /** @@ -64,7 +80,7 @@ public class BiomeGenPromisedLandCrystals extends BiomeGenBase int var7; int var8; - for (var5 = 0; var5 < 5; ++var5) + for (var5 = 0; var5 < 10; ++var5) { var6 = par3 + par2Random.nextInt(16); var7 = par2Random.nextInt(60); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandPlains.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandPlains.java index a347a069c..8b467b827 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandPlains.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandPlains.java @@ -6,10 +6,12 @@ import java.util.Random; import biomesoplenty.api.Blocks; import biomesoplenty.configuration.BOPBlocks; import biomesoplenty.configuration.BOPConfiguration; +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; @@ -28,21 +30,30 @@ public class BiomeGenPromisedLandPlains extends BiomeGenBase this.theBiomeDecorator = new BiomeDecoratorBOP(this); this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; this.topBlock = (byte)Blocks.holyGrass.get().blockID; - this.fillerBlock = (byte)Blocks.holyStone.get().blockID; - this.customBiomeDecorator.treesPerChunk = -999; + this.fillerBlock = (byte)Blocks.holyDirt.get().blockID; + this.customBiomeDecorator.treesPerChunk = 4; this.customBiomeDecorator.grassPerChunk = -999; this.customBiomeDecorator.holyTallGrassPerChunk = 999; - this.customBiomeDecorator.promisedWillowPerChunk = 20; + this.customBiomeDecorator.promisedWillowPerChunk = 80; this.customBiomeDecorator.blueMilksPerChunk = 1; this.customBiomeDecorator.generateLakes = false; this.customBiomeDecorator.pondsPerChunk = -100; + this.customBiomeDecorator.waterLakesPerChunk = 4; this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.spawnableCaveCreatureList.clear(); this.customBiomeDecorator.generatePumpkins = false; //this.customBiomeDecorator.generateLakes = false; - this.theWorldGenerator = new WorldGenMinable(Block.waterMoving.blockID, 8); + this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenPromisedBush(); } /** @@ -61,7 +72,7 @@ public class BiomeGenPromisedLandPlains extends BiomeGenBase int var7; int var8; - for (var5 = 0; var5 < 5; ++var5) + for (var5 = 0; var5 < 10; ++var5) { var6 = par3 + par2Random.nextInt(16); var7 = par2Random.nextInt(60); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java index cad670484..abda158a0 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenPromisedLandSwamp.java @@ -8,11 +8,11 @@ import biomesoplenty.configuration.BOPBlocks; import biomesoplenty.configuration.BOPConfiguration; import biomesoplenty.worldgen.WorldGenPromisedShrub; import biomesoplenty.worldgen.WorldGenPromisedWillowTree; +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 BiomeGenPromisedLandSwamp extends BiomeGenBase @@ -26,24 +26,23 @@ public class BiomeGenPromisedLandSwamp extends BiomeGenBase this.theBiomeDecorator = new BiomeDecoratorBOP(this); this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; this.topBlock = (byte)Blocks.holyGrass.get().blockID; - this.fillerBlock = (byte)Blocks.holyStone.get().blockID; - this.customBiomeDecorator.treesPerChunk = 4; + this.fillerBlock = (byte)Blocks.holyDirt.get().blockID; + this.customBiomeDecorator.treesPerChunk = 24; this.customBiomeDecorator.grassPerChunk = -999; - this.customBiomeDecorator.holyTallGrassPerChunk = 25; + this.customBiomeDecorator.holyTallGrassPerChunk = 50; this.customBiomeDecorator.promisedWillowPerChunk = 80; this.customBiomeDecorator.pinkFlowersPerChunk = 6; - this.customBiomeDecorator.glowFlowersPerChunk = 3; this.customBiomeDecorator.blueMilksPerChunk = 15; this.customBiomeDecorator.generateLakes = false; this.customBiomeDecorator.pondsPerChunk = -100; - this.customBiomeDecorator.waterLakesPerChunk = 10; + this.customBiomeDecorator.waterLakesPerChunk = 17; this.spawnableCreatureList.clear(); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.spawnableCaveCreatureList.clear(); this.customBiomeDecorator.generatePumpkins = false; //this.customBiomeDecorator.generateLakes = false; - this.theWorldGenerator = new WorldGenMinable(Block.waterMoving.blockID, 8); + this.theWorldGenerator = new WorldGenWaterSpring(Block.waterMoving.blockID, 8); } /** diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java b/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java index 8da085b10..12ab38ce6 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java @@ -132,13 +132,13 @@ public class BlockBOPFlower extends BlockFlower protected boolean canThisPlantGrowOnThisBlockID(int id, int metadata) { if (metadata == 10) //Toadstool - return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID; + 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; + return id == Block.sand.blockID || id == Blocks.redRock.get().blockID || id == Blocks.holySand.get().blockID; if (metadata == 12) //Yucca - return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID; + return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID || id == Blocks.holySand.get().blockID; if (metadata == 13) //Portobello - return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID; + return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID | id == Blocks.holyGrass.get().blockID; if (metadata == 14) //Blue Milk Cap return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID; else @@ -156,16 +156,16 @@ public class BlockBOPFlower extends BlockFlower switch (meta) { case 10: // Toadstool - return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID; + 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; + return id == Blocks.redRock.get().blockID || id == Block.sand.blockID || id == Blocks.holySand.get().blockID; case 12: // Yucca - return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID; + return id == Blocks.hardDirt.get().blockID || id == Blocks.redRock.get().blockID || id == Block.sand.blockID || id == Blocks.holySand.get().blockID; case 13: // Portobello - return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID; + return id == Block.grass.blockID || id == Block.dirt.blockID || id == Block.mycelium.blockID || id == Blocks.holyGrass.get().blockID; case 14: // Blue Milk Cap 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 ce531521d..2690f8639 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java @@ -10,7 +10,7 @@ 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; + ASH_STONE, HARD_SAND, HARD_DIRT, HARD_ICE, HOLY_STONE, BAMBOO_THATCHING, DRIED_DIRT, CRAG_ROCK, MUD_BRICK, HOLY_DIRT, HOLY_SAND; } private Icon texture; @@ -58,6 +58,14 @@ public class BlockBOPGeneric extends Block case MUD_BRICK: setHardness(1.0F).setResistance(2.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("mudBrick"); + break; + + case HOLY_DIRT: + setHardness(0.6F).setStepSound(Block.soundGravelFootstep).setUnlocalizedName("holyDirt"); + break; + + case HOLY_SAND: + setHardness(0.3F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("holySand"); break; default: @@ -104,6 +112,14 @@ public class BlockBOPGeneric extends Block case MUD_BRICK: texture = iconRegister.registerIcon("BiomesOPlenty:mudbrick"); + break; + + case HOLY_DIRT: + texture = iconRegister.registerIcon("BiomesOPlenty:holydirt"); + break; + + case HOLY_SAND: + texture = iconRegister.registerIcon("BiomesOPlenty:holysand"); break; default: diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java b/src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java index 91e5ed5e3..957d91685 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java @@ -30,13 +30,13 @@ public class BlockBOPGrass extends Block this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); setStepSound(Block.soundGrassFootstep); setHardness(0.6F); - setLightValue(0.25F); + //setLightValue(0.25F); } @Override public void registerIcons(IconRegister iconRegister) { - this.blockIcon[0][0] = iconRegister.registerIcon("BiomesOPlenty:holystone"); + this.blockIcon[0][0] = iconRegister.registerIcon("BiomesOPlenty:holydirt"); this.blockIcon[0][1] = iconRegister.registerIcon("BiomesOPlenty:holygrass_top"); this.blockIcon[0][2] = iconRegister.registerIcon("BiomesOPlenty:holygrass_side"); this.blockIcon[0][3] = iconRegister.registerIcon("BiomesOPlenty:holygrass_side"); @@ -136,7 +136,7 @@ public class BlockBOPGrass extends Block { if (world.getBlockLightValue(x, y + 1, z) < 4 && Block.lightOpacity[world.getBlockId(x, y + 1, z)] > 2) { - world.setBlock(x, y, z, Blocks.holyStone.get().blockID); + world.setBlock(x, y, z, Blocks.holyDirt.get().blockID); } else if (world.getBlockLightValue(x, y + 1, z) >= 9) { @@ -147,7 +147,7 @@ public class BlockBOPGrass extends Block int var9 = z + random.nextInt(3) - 1; int var10 = world.getBlockId(var7, var8 + 1, var9); - if (world.getBlockId(var7, var8, var9) == Blocks.holyStone.get().blockID && world.getBlockLightValue(var7, var8 + 1, var9) >= 4 && Block.lightOpacity[var10] <= 2) + if (world.getBlockId(var7, var8, var9) == Blocks.holyDirt.get().blockID && world.getBlockLightValue(var7, var8 + 1, var9) >= 4 && Block.lightOpacity[var10] <= 2) { world.setBlock(var7, var8, var9, Blocks.holyGrass.get().blockID, 0, 2); } @@ -179,7 +179,7 @@ public class BlockBOPGrass extends Block @Override public int idDropped(int meta, Random par2Random, int par3) { - return meta == 0 ? Blocks.holyStone.get().blockID : Block.dirt.blockID; + return meta == 0 ? Blocks.holyDirt.get().blockID : Block.dirt.blockID; } } diff --git a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java index 2cec710fb..27252c32f 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java @@ -116,7 +116,7 @@ public class BOPBiomes { 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.promisedLandSwamp = Optional.of((new BiomeGenPromisedLandSwamp(BOPConfiguration.promisedLandSwampID)).setColor(112).setBiomeName("Blessed Bog").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F)); - Biomes.promisedLandCrystals = Optional.of((new BiomeGenPromisedLandCrystals(BOPConfiguration.promisedLandCrystalsID)).setColor(112).setBiomeName("Celestial Crystals").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)); @@ -203,7 +203,7 @@ public class BOPBiomes { 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.promisedLandCrystals.get(), 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 ed6a66a65..f991d4dab 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBlocks.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBlocks.java @@ -123,7 +123,9 @@ public class BOPBlocks { Blocks.hardSand = Optional.of(new BlockBOPGeneric(BOPConfiguration.hardSandID, Material.sand, BlockType.HARD_SAND)); Blocks.hardDirt = Optional.of(new BlockBOPGeneric(BOPConfiguration.hardDirtID, Material.rock, BlockType.HARD_DIRT)); Blocks.holyGrass = Optional.of(new BlockBOPGrass(BOPConfiguration.holyGrassID).setUnlocalizedName("holyGrass")); - Blocks.holyStone = Optional.of(new BlockBOPGeneric(BOPConfiguration.holyStoneID, Material.rock, BlockType.HOLY_STONE).setLightValue(0.25F)); + 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.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)); @@ -188,6 +190,8 @@ public class BOPBlocks { GameRegistry.registerBlock(Blocks.hardDirt.get(), "hardDirt"); // 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"); @@ -314,6 +318,8 @@ public class BOPBlocks { // LanguageRegistry.addName(Blocks.holyGrass.get(), "Holy Grass"); 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(new ItemStack(Blocks.plants.get(),1,4), "Holy Tall Grass"); LanguageRegistry.addName(Blocks.promisedPortal.get(), "Promised Land Portal"); diff --git a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java index 65e1eda61..41f7cd9b5 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java +++ b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java @@ -114,7 +114,9 @@ public class BOPConfiguration { public static int hardSandID; public static int hardDirtID; public static int holyGrassID; + public static int holyDirtID; public static int holyStoneID; + public static int holySandID; public static int cragRockID; public static int plantsID; @@ -268,7 +270,7 @@ public class BOPConfiguration { public static int promisedLandPlainsID; public static int promisedLandDesertID; public static int promisedLandSwampID; - public static int promisedLandCrystalsID; + public static int promisedLandMushroomID; public static int quagmireID; public static int rainforestID; public static int redwoodForestID; @@ -589,8 +591,10 @@ public class BOPConfiguration { hardSandID = config.getTerrainBlock("Terrain Block IDs", "Hard Sand ID", 167, null).getInt(); hardDirtID = config.getTerrainBlock("Terrain Block IDs", "Hard Dirt ID", 168, null).getInt(); holyGrassID = config.getTerrainBlock("Terrain Block IDs", "Holy Grass ID", 169, null).getInt(); - holyStoneID = config.getTerrainBlock("Terrain Block IDs", "Holy Stone ID", 170, null).getInt(); - cragRockID = config.getTerrainBlock("Terrain Block IDs", "Crag Rock ID", 171, 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(); // Get Crafted Block ID's plantsID = config.getBlock("Plant ID", 1920, null).getInt(); @@ -688,11 +692,11 @@ public class BOPConfiguration { //23-79 ExtraBiomesXL - promisedLandForestID = config.get("Biome IDs", "Promised Land Forest ID", 75).getInt(); - promisedLandPlainsID = config.get("Biome IDs", "Promised Land Plains ID", 76).getInt(); - promisedLandDesertID = config.get("Biome IDs", "Promised Land Desert ID", 77).getInt(); - promisedLandSwampID = config.get("Biome IDs", "Promised Land Swamp ID", 78).getInt(); - promisedLandCrystalsID = config.get("Biome IDs", "Promised Land Crystals ID", 79).getInt(); + 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 diff --git a/src/minecraft/biomesoplenty/integration/ForestryIntegration.java b/src/minecraft/biomesoplenty/integration/ForestryIntegration.java index e76a263a2..790447a2e 100644 --- a/src/minecraft/biomesoplenty/integration/ForestryIntegration.java +++ b/src/minecraft/biomesoplenty/integration/ForestryIntegration.java @@ -58,7 +58,7 @@ public class ForestryIntegration EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandPlainsID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandDesertID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandSwampID); - EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandCrystalsID); + EnumTemperature.hotBiomeIds.add(BOPConfiguration.promisedLandMushroomID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.rainforestID); EnumTemperature.hotBiomeIds.add(BOPConfiguration.tropicsID); @@ -67,7 +67,7 @@ public class ForestryIntegration EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandPlainsID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandDesertID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandSwampID); - EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandCrystalsID); + EnumHumidity.dampBiomeIds.add(BOPConfiguration.promisedLandMushroomID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.rainforestID); EnumHumidity.dampBiomeIds.add(BOPConfiguration.tropicsID); @@ -279,6 +279,7 @@ public class ForestryIntegration { // Miner's Backpack BackpackManager.backpackItems[MINER].add(new ItemStack(Blocks.amethystOre.get(), 1, 0)); + BackpackManager.backpackItems[MINER].add(new ItemStack(Blocks.holyDirt.get(), 1, 0)); BackpackManager.backpackItems[MINER].add(new ItemStack(Blocks.holyStone.get(), 1, 0)); BackpackManager.backpackItems[MINER].add(new ItemStack(Blocks.redRock.get(), 1, OreDictionary.WILDCARD_VALUE)); BackpackManager.backpackItems[MINER].add(new ItemStack(Blocks.driedDirt.get(), 1, 0)); diff --git a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java index e786342f8..e30396441 100644 --- a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java +++ b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java @@ -106,6 +106,7 @@ public class ThaumcraftIntegration { ThaumcraftApi.registerObjectTag(getBID("hardSand"), getBMeta("hardSand"), (new ObjectTags()).add(EnumTag.ROCK, 1).add(EnumTag.EARTH, 2)); ThaumcraftApi.registerObjectTag(getBID("hardDirt"), getBMeta("hardDirt"), (new ObjectTags()).add(EnumTag.ROCK, 1).add(EnumTag.EARTH, 2)); 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("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)); diff --git a/src/minecraft/biomesoplenty/world/layer/BiomeLayer.java b/src/minecraft/biomesoplenty/world/layer/BiomeLayer.java index ee53ef20d..519f5702c 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 < 4; i++) + for(int i = 1; i < 1; 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 < 4; j++) + for(int j = 0; j < 1; 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 6112adb21..4d8862298 100644 --- a/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java +++ b/src/minecraft/biomesoplenty/world/layer/BiomeLayerBiomes.java @@ -36,9 +36,9 @@ public class BiomeLayerBiomes extends BiomeLayer AllowedBiomes.add(Biomes.promisedLandSwamp.get()); } - if (Biomes.promisedLandCrystals.isPresent()) + if (Biomes.promisedLandMushroom.isPresent()) { - AllowedBiomes.add(Biomes.promisedLandCrystals.get()); + AllowedBiomes.add(Biomes.promisedLandMushroom.get()); } } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenBOPBigMushroom.java b/src/minecraft/biomesoplenty/worldgen/WorldGenBOPBigMushroom.java new file mode 100644 index 000000000..fcae040ff --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenBOPBigMushroom.java @@ -0,0 +1,224 @@ +package biomesoplenty.worldgen; + +import biomesoplenty.api.Blocks; +import biomesoplenty.configuration.BOPBlocks; +import biomesoplenty.configuration.BOPConfiguration; + +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBOPBigMushroom extends WorldGenerator +{ + /** The mushroom type. 0 for brown, 1 for red. */ + private int mushroomType = 1; + + public WorldGenBOPBigMushroom(int par1) + { + super(true); + this.mushroomType = par1; + } + + public WorldGenBOPBigMushroom() + { + super(false); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int l = 1; + + if (this.mushroomType >= 0) + { + l = this.mushroomType; + } + + int i1 = par2Random.nextInt(3) + 4; + boolean flag = true; + + if (par4 >= 1 && par4 + i1 + 1 < 256) + { + int j1; + int k1; + int l1; + int i2; + + for (j1 = par4; j1 <= par4 + 1 + i1; ++j1) + { + byte b0 = 3; + + if (j1 <= par4 + 3) + { + b0 = 0; + } + + for (k1 = par3 - b0; k1 <= par3 + b0 && flag; ++k1) + { + for (l1 = par5 - b0; l1 <= par5 + b0 && flag; ++l1) + { + if (j1 >= 0 && j1 < 256) + { + i2 = par1World.getBlockId(k1, j1, l1); + + Block block = Block.blocksList[i2]; + + if (i2 != 0 && block != null && !block.isLeaves(par1World, k1, j1, l1)) + { + flag = false; + } + } + else + { + flag = false; + } + } + } + } + + if (!flag) + { + return false; + } + else + { + j1 = par1World.getBlockId(par3, par4 - 1, par5); + + if (j1 != Block.dirt.blockID && j1 != Block.grass.blockID && j1 != Block.mycelium.blockID && j1 != Blocks.holyGrass.get().blockID) + { + return false; + } + else + { + int j2 = par4 + i1; + + if (l == 1) + { + j2 = par4 + i1 - 3; + } + + for (k1 = j2; k1 <= par4 + i1; ++k1) + { + l1 = 1; + + if (k1 < par4 + i1) + { + ++l1; + } + + if (l == 0) + { + l1 = 3; + } + + for (i2 = par3 - l1; i2 <= par3 + l1; ++i2) + { + for (int k2 = par5 - l1; k2 <= par5 + l1; ++k2) + { + int l2 = 5; + + if (i2 == par3 - l1) + { + --l2; + } + + if (i2 == par3 + l1) + { + ++l2; + } + + if (k2 == par5 - l1) + { + l2 -= 3; + } + + if (k2 == par5 + l1) + { + l2 += 3; + } + + if (l == 0 || k1 < par4 + i1) + { + if ((i2 == par3 - l1 || i2 == par3 + l1) && (k2 == par5 - l1 || k2 == par5 + l1)) + { + continue; + } + + if (i2 == par3 - (l1 - 1) && k2 == par5 - l1) + { + l2 = 1; + } + + if (i2 == par3 - l1 && k2 == par5 - (l1 - 1)) + { + l2 = 1; + } + + if (i2 == par3 + (l1 - 1) && k2 == par5 - l1) + { + l2 = 3; + } + + if (i2 == par3 + l1 && k2 == par5 - (l1 - 1)) + { + l2 = 3; + } + + if (i2 == par3 - (l1 - 1) && k2 == par5 + l1) + { + l2 = 7; + } + + if (i2 == par3 - l1 && k2 == par5 + (l1 - 1)) + { + l2 = 7; + } + + if (i2 == par3 + (l1 - 1) && k2 == par5 + l1) + { + l2 = 9; + } + + if (i2 == par3 + l1 && k2 == par5 + (l1 - 1)) + { + l2 = 9; + } + } + + if (l2 == 5 && k1 < par4 + i1) + { + l2 = 0; + } + + Block block = Block.blocksList[par1World.getBlockId(i2, k1, k2)]; + + if ((l2 != 0 || par4 >= par4 + i1 - 1) && (block == null || block.canBeReplacedByLeaves(par1World, i2, k1, k2))) + { + this.setBlockAndMetadata(par1World, i2, k1, k2, Block.mushroomCapBrown.blockID + l, l2); + } + } + } + } + + for (k1 = 0; k1 < i1; ++k1) + { + l1 = par1World.getBlockId(par3, par4 + k1, par5); + + Block block = Block.blocksList[l1]; + + if (block == null || block.canBeReplacedByLeaves(par1World, par3, par4 + k1, par5)) + { + this.setBlockAndMetadata(par1World, par3, par4 + k1, par5, Block.mushroomCapBrown.blockID + l, 10); + } + } + + return true; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenMycelium.java b/src/minecraft/biomesoplenty/worldgen/WorldGenMycelium.java index 8546de285..122819c7c 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenMycelium.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenMycelium.java @@ -2,6 +2,9 @@ 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; @@ -62,7 +65,7 @@ public class WorldGenMycelium extends WorldGenerator { double var45 = ((double)var44 + 0.5D - var24) / (var28 / 2.0D); - if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Block.grass.blockID) + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Block.grass.blockID || par1World.getBlockId(var38, var41, var44) == Blocks.holyGrass.get().blockID) { par1World.setBlock(var38, var41, var44, this.minableBlockId); } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree1.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree1.java index 5139eff29..a6d37e148 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) + if (var6 != Block.grass.blockID && var6 != Blocks.holySand.get().blockID) { return false; } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree3.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPalmTree3.java index 1000cc1fe..1fbb23d8d 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) + if (var6 != Block.grass.blockID && var6 != Blocks.holySand.get().blockID) { return false; } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedBush.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedBush.java new file mode 100644 index 000000000..6b368f885 --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedBush.java @@ -0,0 +1,51 @@ +package biomesoplenty.worldgen; + +import java.util.Random; + +import biomesoplenty.api.Blocks; +import biomesoplenty.configuration.BOPBlocks; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPromisedBush extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3, var4, var5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3, var4, var5); + + if (var6 != Blocks.holyGrass.get().blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7, var4 - 1, var5 + var8) && var1.isAirBlock(var3 + var7, var4 - 2, var5 + var8)) + { + return false; + } + } + } + + var1.setBlock(var3, var4, var5, Blocks.holyDirt.get().blockID); + this.setBlockAndMetadata(var1, var3, var4 + 1, var5, Blocks.logs2.get().blockID,0); + this.setBlockAndMetadata(var1, var3, var4 + 2, var5, Blocks.logs2.get().blockID,0); + this.setBlockAndMetadata(var1, var3 + 1, var4 + 2, var5, Blocks.leaves1.get().blockID, 6); + this.setBlockAndMetadata(var1, var3 - 1, var4 + 2, var5, Blocks.leaves1.get().blockID, 6); + this.setBlockAndMetadata(var1, var3, var4 + 2, var5 + 1, Blocks.leaves1.get().blockID, 6); + this.setBlockAndMetadata(var1, var3, var4 + 2, var5 - 1, Blocks.leaves1.get().blockID, 6); + this.setBlockAndMetadata(var1, var3, var4 + 3, var5, Blocks.leaves1.get().blockID, 6); + return true; + } + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java index f698c19a8..aec1d633f 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java @@ -76,7 +76,7 @@ public class WorldGenPromisedTree extends WorldGenerator if ((var11 == Blocks.holyGrass.get().blockID) && par4 < 256 - var6 - 1) { - this.setBlockAndMetadata(par1World, par3, par4 - 1, par5, Blocks.holyGrass.get().blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 - 1, par5, Blocks.holyDirt.get().blockID, 0); var21 = par2Random.nextInt(2); var13 = 1; byte var22 = 0; diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java index f5f296443..b876dc27d 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java @@ -74,7 +74,7 @@ public class WorldGenPromisedTree2 extends WorldGenerator if ((var8 == Blocks.holyGrass.get().blockID) && par4 < 256 - var6 - 1) { - this.setBlockAndMetadata(par1World, par3, par4 - 1, par5, Blocks.holyGrass.get().blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 - 1, par5, Blocks.holyDirt.get().blockID, 0); int var16; for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java index ddb411e43..e4c27c877 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java @@ -85,10 +85,10 @@ public class WorldGenPromisedTree3 extends WorldGenerator { if ((var14 == Blocks.holyGrass.get().blockID) && var4 < 256 - var6 - 1) { - var1.setBlock(var3, var4 - 1, var5, Blocks.holyGrass.get().blockID, 0, 2); - var1.setBlock(var3 - 1, var4 - 1, var5, Blocks.holyGrass.get().blockID, 0, 2); - var1.setBlock(var3, var4 - 1, var5 - 1, Blocks.holyGrass.get().blockID, 0, 2); - var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Blocks.holyGrass.get().blockID, 0, 2); + var1.setBlock(var3, var4 - 1, var5, Blocks.holyDirt.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 - 1, var5, Blocks.holyDirt.get().blockID, 0, 2); + var1.setBlock(var3, var4 - 1, var5 - 1, Blocks.holyDirt.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Blocks.holyDirt.get().blockID, 0, 2); var15 = var2.nextInt(2); int var16 = 1; boolean var17 = false; diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedWillowTree.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedWillowTree.java index 99cbe3ef4..6cdd73e30 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(5) + 8; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + for (var6 = par2Random.nextInt(12) + 4; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) { ; } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenWaterSpring.java b/src/minecraft/biomesoplenty/worldgen/WorldGenWaterSpring.java new file mode 100644 index 000000000..68363bcea --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenWaterSpring.java @@ -0,0 +1,81 @@ +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 WorldGenWaterSpring 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 WorldGenWaterSpring(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(3) - 2); + double var17 = (double)(par4 + par2Random.nextInt(3) - 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 / 16.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 / 2.0D); + int var33 = MathHelper.floor_double(var22 - var30 / 2.0D); + int var34 = MathHelper.floor_double(var24 - var28 / 2.0D); + int var35 = MathHelper.floor_double(var20 + var28 / 2.0D); + int var36 = MathHelper.floor_double(var22 + var30 / 2.0D); + int var37 = MathHelper.floor_double(var24 + var28 / 2.0D); + + for (int var38 = var32; var38 <= var35; ++var38) + { + double var39 = ((double)var38 + 0.5D - var20) / (var28 / 2.0D); + + if (var39 * var39 < 1.0D) + { + for (int var41 = var33; var41 <= var36; ++var41) + { + double var42 = ((double)var41 + 0.5D - var22) / (var30 / 2.0D); + + if (var39 * var39 + var42 * var42 < 1.0D) + { + for (int var44 = var34; var44 <= var37; ++var44) + { + double var45 = ((double)var44 + 0.5D - var24) / (var28 / 2.0D); + + if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Blocks.holyStone.get().blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/mods/BiomesOPlenty/textures/armor/dullflowerband.png b/src/minecraft/mods/BiomesOPlenty/textures/armor/dullflowerband.png index 94a9c81ce6cc11a874cba3bb1fcdeadc644df3c5..43c91767aab90347c1b0b70918c41f57e2165258 100644 GIT binary patch delta 235 zcmdnZbcAVw4cA@<2EM(F?!PCjo#>`nf56klF(kwJ>BX~xO$HKd52rjh$+q`ayXyrx z9`&prDhVRSulc7J+&Ikq`5nXJ$s&ST621nr5=;(eG+ks_%;`4ysZrnKn(Cw1etTrj zTJ~aBHqT*!=h0o)cK>r+t2=$)`{%c-jFx+^DxVVjWNx+P$>VkN-hBI8|7~KBUFVg|4X z`55C0A*6#~a@veWo!n&mJhbMZ_2v7rUL*FwI`+p+!FzjCMxlpD&GZqI)4ZHqF0E)2 zn53=8&nef-n^Jx+Z}%JQL@>E`FiEiWb{#hb?DvR>h=_=Yh=_>j%ba@vVz~7oK*_No P00000NkvXXu0mjfVC;i# delta 288 zcmV+*0pI@O0{8-uJPN)501mzZ>O!%=kwz(h^hrcPRA@u()3FhPKoAAcE5XPR8!#}m z01MGEH88XT#u~5y1MS2zxFMp3mA}I}%Sng>GXEt93%BmxN+2R4BJ$+1k@j*BL+AUM zWgY~@W?7~yVpUajiofokU(Lwv)rt8%X+B7EjtWhqpv5tCiblMyYblD8#2ED+&97H~ zTRH45pZC#xJl_Rtx(Dyrp<=~-np1ypOliS>!YHsTOO4x<(Y!uv*uh!zZ8+E-p9}X` zEvE*j!V2n}F!(7WjwaHB)AyQ5+jF1G4#)Q6db0e4J^KfEev*CPy3gegu?@|SZ@$m0 mn`n0O=000000Kk`p@Bkq??pxA<0XF~u002ovPDHLkV1gn6c+CI+ delta 273 zcmV+s0q*|H0_p;gJPN)501mzZ>O!%=kwz(h=1D|BRA@u((y3Jf9CxSSvwt%EPJangJjcCtq2!Z)6hvj*ov3K}|L z(AOAoG+{SR=E=Cd8G0P=v!zd1lN+Gvlhm8kg?hP$#uw*XbBk`Ch=_=Yh=_>jKREXU XtDEg!upG~Z00000NkvXXu0mjf#BqXY diff --git a/src/minecraft/mods/BiomesOPlenty/textures/armor/plainflowerband.png b/src/minecraft/mods/BiomesOPlenty/textures/armor/plainflowerband.png index b6e10f057476c5a1a2f92053a49536c61fa492d1..9d055b5647b7fb874a82e9ef3be757d8732b5527 100644 GIT binary patch delta 212 zcmV;_04x8`0<8j&JPN)501mzZ>O!%=kwz(hsYygZRA@u((!mMCFbqIZkI++(o}oMS z+C4f%R>)X3K6wTOxi&bajR+K6=zkYmmJkYx0{{U3Eu|#&T8y!*x5NC|`Y}IM&RLe_ zAu&d|KAnuQ4(q)y=ezvb`Y~U}m@9-(2GODVST}dMzlPSh(R}~j*X!Bdt^D|BOre`U zX&=)zqjA5vTDo&oZ}scr+U_^#u=QHB&3$6kTY0NL00000004k5b8Z75{sI~Yftt(! O0000mH z|2itLZQD9;FKDCK#VN-(V|)BriZ$Aqb@D8%pm-T|@hiT(npnzRTer)xb$y@K+Uxk2 wH$K;2(loWXemPssUAlPy00000fd7!v2#|aN`fRCa6951J07*qoM6N<$f*7`P5dZ)H diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/amethystore.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/amethystore.png index 0d3f82db4dda1cfeb91e8266715d11e2107e90e8..a4e424e7d9c2bea6f8fa853efd3ecab9c6802f1e 100644 GIT binary patch delta 278 zcmV+x0qOqi0`3BkJPN=701m(bYSxJfkwz(h>PbXFR5(v%k--hZKnw)0A4;KEUR)1X z!=(mZJa{05@r`jJSXq|6UT>VF%{j*jw9kd!JNbVa3qX;`;TYMkWo3}DKu@)U`@WO` zbYw|_)}2_OfqGou#O?BuA(tAS%>J7yM!MpB00000NkvXXu0mh|f_c7sp#T5? delta 275 zcmV+u0qp+n0_*~iJPN@801m+cxRGn^kwz(h=t)FDR5(v%kwFf^Fbo9qAD+TvIgvl) z4e1*=ao~Vd#u?*Qu(Be1z1})$n{$p6D4z?xch3KA3;;zUn`30XhLu6a05#bT?)y>( z&~Zuw-d*QKOgOp);g%>*n_7C=T)P2K^dO*1r>aUYjpz@M8&Y4#EKyC`y2lQz?JcNklnp=y6n_5=Y*=nd z&E~orTif*8W)m9=8RnAPLhcGl?zdrD8!!HG3RCyQL8v7=;uOHp|xv)R3wJ1KQJJ z{na=&NM@X}^;V|b?@nK75|5V2x7smJdp0bctCqT}B(qK^;K7tsZyhv>?anlR0}~X; zlzZKoYt163E_t#7OVN{WwjrV|v@4+&Rce1#2fZ1quDB*6i*uQx%GAOlg?QWnLz=HX zzBw0CY!A1jC$!~Zgm}ymQ_m&#+G6TBh8dzN9Yn%Hg=D%i#ZwENz$(MSq<*`=CXa0} zV3u^g21QN2mEnaMq-cO3!XMjc#OlbBEL?(Ov_lhFtcu9X0PmSuWO!hd5P>JEH2Z8% zkzjA>V0cso0YZB`Hg*C4NN@vvp;bg0K@||B1ayNZ;UgPB9^wR~Jol9uH{|ul20000EV zOOsI;#?RNNHf^Yd1amXBy{MB-dA7L;t2TiUFRaD@ZKVm z=t1@ucy%NAZp!$a!hc}wrlMb0l<~=o{aA-Jd|aq|JyG-gTIl@@T4aBTvtehR7XRa` zk}tp0qsr#a!>A8!O=IOG7XP(@8*AX@c<{|+{q`&yT(^>*`1gG~pmVyz`|vV- z!MBs{+uiO|m&;7zAVbT^l|DSaM^`G=29)iz$NyyX)aI}w8GkC9zra#7?}HIeWP6(* zx1%#y{cNo2-cZS4M3oFh3p)b#R-bb=L7-x_|JZONR<<9GR~{c}qQW_oDC###$C``! z3`K{dD}>43;&a{XEMMxyXFKCz;fd>Qwq|efK$tG~Vh=;pG!@^Wup0rwNxt}Egw+LS zYj_F6qlvnL_Iv6hO;vEqvJ@W-q|<33WD3vK3eRLRLI50O13UjhWb#P)DsHaX0N|ph z!U^ar5F1ds3E;@FKNa~txnlm$lLX?(UH$@dHXxcteuX@YiMHkb0}zLX48^2Xh!Q5C gPdhYnnp9ZUZ=WsKnW2vQ9{>OV07*qoM6N<$g7N2bPDNB8 zb~7$DE-^4L^m3s900G5GL_t(IPc4$oZxT@y#ozzGbMMBDu{Ci~(O9EZOlScCt)xvg zjZs@+Y7HY3W~POK?hS9D^|L#2!Fk@Z^De@>W2h;aHm=(r@Xj#n7PpHS`GVl6^cEZv@`GBz{vvv;Y|m)h2I}C$P}YhVQ$j8{lSj@m$<4pQmTRXd*s$Di za@LNwgu5_dfEB;gTe~DWM4faaeF$ literal 0 HcmV?d00001 diff --git a/src/minecraft/mods/BiomesOPlenty/textures/items/plainflowerband.png b/src/minecraft/mods/BiomesOPlenty/textures/items/plainflowerband.png new file mode 100644 index 0000000000000000000000000000000000000000..f84deecd4dd9f270f595ece3089f70ab91317fbe GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3 zQ$0figD*u3fvP5Xx;Tbd_$N!Sny?)2m;cY7+H~-*9HWR`-h^`>{=d1o`Ty$Gwg2R8 ztG?KG@L%Ow*jUryWb&b|kE!d)L}mAa-3%+<{rdWP1zRJp0%L+{!`e9y|9^gdK2YV~ zdP9eY%}*R(t&7>&l=<-X_Wb|n=gs~6|K;W7|Bv31{MT%9`sB&ROab{wxmB#fHkF@P i)^lHY>dwf_%n%xvdF9a4qDY|Y7(8A5T-G@yGywn{-f>X? literal 0 HcmV?d00001