diff --git a/src/main/java/biomesoplenty/api/content/BOPCBiomes.java b/src/main/java/biomesoplenty/api/content/BOPCBiomes.java index b80c8cdcc..42bc6793e 100644 --- a/src/main/java/biomesoplenty/api/content/BOPCBiomes.java +++ b/src/main/java/biomesoplenty/api/content/BOPCBiomes.java @@ -25,6 +25,7 @@ public class BOPCBiomes public static BiomeGenBase flowerField; public static BiomeGenBase frostForest; public static BiomeGenBase fungiForest; + public static BiomeGenBase garden; public static BiomeGenBase grassland; public static BiomeGenBase grove; public static BiomeGenBase heathland; diff --git a/src/main/java/biomesoplenty/common/biomes/overworld/BiomeGenGarden.java b/src/main/java/biomesoplenty/common/biomes/overworld/BiomeGenGarden.java new file mode 100644 index 000000000..49d458b09 --- /dev/null +++ b/src/main/java/biomesoplenty/common/biomes/overworld/BiomeGenGarden.java @@ -0,0 +1,97 @@ +package biomesoplenty.common.biomes.overworld; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import biomesoplenty.api.BOPBlockHelper; +import biomesoplenty.common.biomes.BOPBiome; +import biomesoplenty.common.entities.EntityRosester; +import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; +import biomesoplenty.common.world.features.WorldGenBOPFlora; +import biomesoplenty.common.world.features.trees.WorldGenGiantFlower; + +public class BiomeGenGarden extends BOPBiome +{ + private static final Height biomeHeight = new Height(0.3F, 0.4F); + + public BiomeGenGarden(int biomeID) + { + super(biomeID); + + this.setHeight(biomeHeight); + this.setColor(7656308); + this.setTemperatureRainfall(0.7F, 0.8F); + + this.spawnableCreatureList.clear(); + this.spawnableCreatureList.add(new SpawnListEntry(EntityRosester.class, 10, 4, 4)); + + this.topBlock = BOPBlockHelper.get("longGrass"); + this.theBiomeDecorator.treesPerChunk = 2; + this.theBiomeDecorator.sandPerChunk = -999; + this.theBiomeDecorator.sandPerChunk2 = -999; + + this.bopWorldFeatures.setFeature("sproutsPerChunk", 2); + this.bopWorldFeatures.setFeature("shrubsPerChunk", 10); + this.bopWorldFeatures.setFeature("waterReedsPerChunk", 4); + this.bopWorldFeatures.setFeature("generateMelons", true); + + this.bopWorldFeatures.setFeature("bopFlowersPerChunk", 20); + this.bopWorldFeatures.setFeature("bopGrassPerChunk", 25); + + this.bopWorldFeatures.weightedFlowerGen.put(new WorldGenBOPFlora(Blocks.red_flower, 0), 15); + this.bopWorldFeatures.weightedFlowerGen.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 20); + this.bopWorldFeatures.weightedFlowerGen.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 4), 8); + this.bopWorldFeatures.weightedFlowerGen.put(new WorldGenBOPDoubleFlora(0, 3), 2); + + this.bopWorldFeatures.weightedGrassGen.put(new WorldGenTallGrass(Blocks.tallgrass, 1), 1D); + this.bopWorldFeatures.weightedGrassGen.put(new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 1), 0.25D); + this.bopWorldFeatures.weightedGrassGen.put(new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 2), 0.25D); + this.bopWorldFeatures.weightedGrassGen.put(new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D); + this.bopWorldFeatures.weightedGrassGen.put(new WorldGenBOPDoubleFlora(2), 0.75D); + } + + @Override + //TODO: getRandomWorldGenForTrees() + public WorldGenAbstractTree func_150567_a(Random random) + { + return random.nextInt(6) == 0 ? new WorldGenGiantFlower(0) : (random.nextInt(6) == 0 ? new WorldGenGiantFlower(1) : new WorldGenShrub(0, 0)); + } + + @Override + public void decorate(World world, Random random, int chunkX, int chunkZ) + { + super.decorate(world, random, chunkX, chunkZ); + int var5 = 12 + random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int x = chunkX + random.nextInt(16); + int y = random.nextInt(28) + 4; + int z = chunkZ + random.nextInt(16); + + Block block = world.getBlock(x, y, z); + + if (block != null && block.isReplaceableOreGen(world, x, y, z, Blocks.stone)) + { + world.setBlock(x, y, z, BOPBlockHelper.get("gemOre"), 4, 2); + } + } + } + + @Override + public int getBiomeGrassColor(int x, int y, int z) + { + return 7656308; + } + + @Override + public int getBiomeFoliageColor(int x, int y, int z) + { + return 6742630; + } +} diff --git a/src/main/java/biomesoplenty/common/blocks/BlockMoss.java b/src/main/java/biomesoplenty/common/blocks/BlockMoss.java index 4bc6db9db..810327d96 100644 --- a/src/main/java/biomesoplenty/common/blocks/BlockMoss.java +++ b/src/main/java/biomesoplenty/common/blocks/BlockMoss.java @@ -13,16 +13,12 @@ public class BlockMoss extends BlockVine { public BlockMoss() { - //TODO: this.setHardness this.setHardness(0.2F); - //TODO setStepSound(Block.soundGrassFootstep) this.setStepSound(Block.soundTypeGrass); - //TODO: setTickRandomly() this.setTickRandomly(true); - //TODO: this.setCreativeTab() this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); } @@ -41,15 +37,15 @@ public class BlockMoss extends BlockVine switch (side) { case 1: - return ((OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x, y + 1, z)))) || (world.getBlock(x, y + 1, z) == Blocks.stone)); + return world.getBlock(x, y + 1, z) != Blocks.air && (OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x, y + 1, z))) || world.getBlock(x, y + 1, z) == Blocks.stone); case 2: - return ((OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x, y, z + 1)))) || (world.getBlock(x, y, z + 1) == Blocks.stone)); + return world.getBlock(x, y, z + 1) != Blocks.air && (OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x, y, z + 1))) || world.getBlock(x, y, z + 1) == Blocks.stone); case 3: - return ((OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x, y, z - 1)))) || (world.getBlock(x, y, z - 1) == Blocks.stone)); + return world.getBlock(x, y, z - 1) != Blocks.air && (OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x, y, z - 1))) || world.getBlock(x, y, z - 1) == Blocks.stone); case 4: - return ((OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x + 1, y, z)))) || (world.getBlock(x + 1, y, z) == Blocks.stone)); + return world.getBlock(x + 1, y, z) != Blocks.air && (OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x + 1, y, z))) || world.getBlock(x + 1, y, z) == Blocks.stone); case 5: - return ((OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x - 1, y, z)))) || (world.getBlock(x - 1, y, z) == Blocks.stone)); + return world.getBlock(x - 1, y, z) != Blocks.air && (OreDictionary.getOreID("logWood") == OreDictionary.getOreID(new ItemStack(world.getBlock(x - 1, y, z))) || world.getBlock(x - 1, y, z) == Blocks.stone); default: return false; } diff --git a/src/main/java/biomesoplenty/common/core/BOPBiomes.java b/src/main/java/biomesoplenty/common/core/BOPBiomes.java index c5b959788..e5bddb0b8 100644 --- a/src/main/java/biomesoplenty/common/core/BOPBiomes.java +++ b/src/main/java/biomesoplenty/common/core/BOPBiomes.java @@ -1,78 +1,6 @@ package biomesoplenty.common.core; -import static biomesoplenty.api.content.BOPCBiomes.alps; -import static biomesoplenty.api.content.BOPCBiomes.alpsForest; -import static biomesoplenty.api.content.BOPCBiomes.arctic; -import static biomesoplenty.api.content.BOPCBiomes.bambooForest; -import static biomesoplenty.api.content.BOPCBiomes.bayou; -import static biomesoplenty.api.content.BOPCBiomes.bog; -import static biomesoplenty.api.content.BOPCBiomes.boneyard; -import static biomesoplenty.api.content.BOPCBiomes.borealForest; -import static biomesoplenty.api.content.BOPCBiomes.brushland; -import static biomesoplenty.api.content.BOPCBiomes.canyon; -import static biomesoplenty.api.content.BOPCBiomes.canyonRavine; -import static biomesoplenty.api.content.BOPCBiomes.chaparral; -import static biomesoplenty.api.content.BOPCBiomes.cherryBlossomGrove; -import static biomesoplenty.api.content.BOPCBiomes.coniferousForest; -import static biomesoplenty.api.content.BOPCBiomes.coralReef; -import static biomesoplenty.api.content.BOPCBiomes.corruptedSands; -import static biomesoplenty.api.content.BOPCBiomes.crag; -import static biomesoplenty.api.content.BOPCBiomes.deadForest; -import static biomesoplenty.api.content.BOPCBiomes.deadSwamp; -import static biomesoplenty.api.content.BOPCBiomes.deciduousForest; -import static biomesoplenty.api.content.BOPCBiomes.dryRiver; -import static biomesoplenty.api.content.BOPCBiomes.fen; -import static biomesoplenty.api.content.BOPCBiomes.flowerField; -import static biomesoplenty.api.content.BOPCBiomes.frostForest; -import static biomesoplenty.api.content.BOPCBiomes.fungiForest; -import static biomesoplenty.api.content.BOPCBiomes.glacier; -import static biomesoplenty.api.content.BOPCBiomes.grassland; -import static biomesoplenty.api.content.BOPCBiomes.grove; -import static biomesoplenty.api.content.BOPCBiomes.heathland; -import static biomesoplenty.api.content.BOPCBiomes.highland; -import static biomesoplenty.api.content.BOPCBiomes.jadeCliffs; -import static biomesoplenty.api.content.BOPCBiomes.kelpForest; -import static biomesoplenty.api.content.BOPCBiomes.lavenderFields; -import static biomesoplenty.api.content.BOPCBiomes.lushDesert; -import static biomesoplenty.api.content.BOPCBiomes.lushRiver; -import static biomesoplenty.api.content.BOPCBiomes.lushSwamp; -import static biomesoplenty.api.content.BOPCBiomes.mapleWoods; -import static biomesoplenty.api.content.BOPCBiomes.marsh; -import static biomesoplenty.api.content.BOPCBiomes.meadow; -import static biomesoplenty.api.content.BOPCBiomes.meadowForest; -import static biomesoplenty.api.content.BOPCBiomes.moor; -import static biomesoplenty.api.content.BOPCBiomes.mountain; -import static biomesoplenty.api.content.BOPCBiomes.mysticGrove; -import static biomesoplenty.api.content.BOPCBiomes.oasis; -import static biomesoplenty.api.content.BOPCBiomes.ominousWoods; -import static biomesoplenty.api.content.BOPCBiomes.originValley; -import static biomesoplenty.api.content.BOPCBiomes.outback; -import static biomesoplenty.api.content.BOPCBiomes.phantasmagoricInferno; -import static biomesoplenty.api.content.BOPCBiomes.prairie; -import static biomesoplenty.api.content.BOPCBiomes.quagmire; -import static biomesoplenty.api.content.BOPCBiomes.rainforest; -import static biomesoplenty.api.content.BOPCBiomes.redwoodForest; -import static biomesoplenty.api.content.BOPCBiomes.sacredSprings; -import static biomesoplenty.api.content.BOPCBiomes.scrubland; -import static biomesoplenty.api.content.BOPCBiomes.seasonalForest; -import static biomesoplenty.api.content.BOPCBiomes.shield; -import static biomesoplenty.api.content.BOPCBiomes.shrubland; -import static biomesoplenty.api.content.BOPCBiomes.silkglades; -import static biomesoplenty.api.content.BOPCBiomes.sludgepit; -import static biomesoplenty.api.content.BOPCBiomes.snowyConiferousForest; -import static biomesoplenty.api.content.BOPCBiomes.spruceWoods; -import static biomesoplenty.api.content.BOPCBiomes.steppe; -import static biomesoplenty.api.content.BOPCBiomes.temperateRainforest; -import static biomesoplenty.api.content.BOPCBiomes.thicket; -import static biomesoplenty.api.content.BOPCBiomes.tropicalRainforest; -import static biomesoplenty.api.content.BOPCBiomes.tropics; -import static biomesoplenty.api.content.BOPCBiomes.tundra; -import static biomesoplenty.api.content.BOPCBiomes.undergarden; -import static biomesoplenty.api.content.BOPCBiomes.visceralHeap; -import static biomesoplenty.api.content.BOPCBiomes.volcano; -import static biomesoplenty.api.content.BOPCBiomes.wasteland; -import static biomesoplenty.api.content.BOPCBiomes.wetland; -import static biomesoplenty.api.content.BOPCBiomes.woodland; +import static biomesoplenty.api.content.BOPCBiomes.*; import java.util.ArrayList; import java.util.List; @@ -114,6 +42,7 @@ import biomesoplenty.common.biomes.overworld.BiomeGenFen; import biomesoplenty.common.biomes.overworld.BiomeGenFlowerField; import biomesoplenty.common.biomes.overworld.BiomeGenFrostForest; import biomesoplenty.common.biomes.overworld.BiomeGenFungiForest; +import biomesoplenty.common.biomes.overworld.BiomeGenGarden; import biomesoplenty.common.biomes.overworld.BiomeGenGrassland; import biomesoplenty.common.biomes.overworld.BiomeGenGrove; import biomesoplenty.common.biomes.overworld.BiomeGenHeathland; @@ -226,6 +155,7 @@ public class BOPBiomes flowerField = registerOverworldBiome(BiomeGenFlowerField.class, "Flower Field", TemperatureType.WARM, 3); frostForest = registerOverworldBiome(BiomeGenFrostForest.class, "Frost Forest", TemperatureType.ICY, 7); fungiForest = registerOverworldBiome(BiomeGenFungiForest.class, "Fungi Forest", TemperatureType.COOL, 3); + garden = registerOverworldBiome(BiomeGenGarden.class, "Garden", TemperatureType.COOL, 3); grassland = registerOverworldBiome(BiomeGenGrassland.class, "Grassland", TemperatureType.COOL, 10); grove = registerOverworldBiome(BiomeGenGrove.class, "Grove", TemperatureType.COOL, 5); heathland = registerOverworldBiome(BiomeGenHeathland.class, "Heathland", TemperatureType.WARM, 10); diff --git a/src/main/java/biomesoplenty/common/eventhandler/misc/BonemealEventHandler.java b/src/main/java/biomesoplenty/common/eventhandler/misc/BonemealEventHandler.java index 6f43fe5b6..08996b4b2 100644 --- a/src/main/java/biomesoplenty/common/eventhandler/misc/BonemealEventHandler.java +++ b/src/main/java/biomesoplenty/common/eventhandler/misc/BonemealEventHandler.java @@ -10,6 +10,7 @@ import net.minecraftforge.event.entity.player.BonemealEvent; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.blocks.BlockBOPColorizedSapling; import biomesoplenty.common.blocks.BlockBOPSapling; +import biomesoplenty.common.world.features.trees.WorldGenGiantFlower; import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -99,7 +100,7 @@ public class BonemealEventHandler } } } - /*TODO: FEATURE else if (event.ID == Block.plantRed.blockID) + else if (block == Blocks.red_flower) { event.setResult(Result.ALLOW); @@ -107,12 +108,12 @@ public class BonemealEventHandler { if (event.world.rand.nextFloat() < 0.45D) { - WorldGenGiantFlowerRed worldgengiantflowerred = new WorldGenGiantFlowerRed(); - worldgengiantflowerred.generate(event.world, event.world.rand, event.X, event.Y - 1, event.Z); + WorldGenGiantFlower worldgengiantflower = new WorldGenGiantFlower(0); + worldgengiantflower.generate(event.world, event.world.rand, event.x, event.y - 1, event.z); } } } - else if (event.ID == Block.plantYellow.blockID) + else if (block == Blocks.yellow_flower) { event.setResult(Result.ALLOW); @@ -120,11 +121,11 @@ public class BonemealEventHandler { if (event.world.rand.nextFloat() < 0.45D) { - WorldGenGiantFlowerYellow worldgengiantfloweryellow = new WorldGenGiantFlowerYellow(); - worldgengiantfloweryellow.generate(event.world, event.world.rand, event.X, event.Y - 1, event.Z); + WorldGenGiantFlower worldgengiantflower = new WorldGenGiantFlower(1); + worldgengiantflower.generate(event.world, event.world.rand, event.x, event.y - 1, event.z); } } - }*/ + } else if (block == BOPBlockHelper.get("turnip")) { if (event.world.getBlockMetadata(x, y, z) != 7) diff --git a/src/main/java/biomesoplenty/common/world/features/trees/WorldGenGiantFlower.java b/src/main/java/biomesoplenty/common/world/features/trees/WorldGenGiantFlower.java new file mode 100644 index 000000000..0348eb12a --- /dev/null +++ b/src/main/java/biomesoplenty/common/world/features/trees/WorldGenGiantFlower.java @@ -0,0 +1,133 @@ +package biomesoplenty.common.world.features.trees; + +import java.util.Random; + +import biomesoplenty.api.BOPBlockHelper; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; + +public class WorldGenGiantFlower extends WorldGenAbstractTree +{ + private int metadata; + + public WorldGenGiantFlower(int metadata) + { + super(false); + + this.metadata = metadata; + } + + @Override + public boolean generate(World world, Random random, int x, int y, int z) + { + while (world.isAirBlock(x, y, z) && y > 2) + { + --y; + } + + Block block = world.getBlock(x, y, z); + + if (block != BOPBlockHelper.get("longGrass")) return false; + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (world.isAirBlock(x + var7, y - 1, z + var8) && world.isAirBlock(x + var7, y - 2, z + var8)) + return false; + } + } + + world.setBlock(x, y, z, Blocks.dirt); + world.setBlock(x, y + 1, z, BOPBlockHelper.get("logs3"), 3, 2); + world.setBlock(x, y + 2, z, BOPBlockHelper.get("logs3"), 3, 2); + world.setBlock(x, y + 3, z, BOPBlockHelper.get("logs3"), 3, 2); + world.setBlock(x, y + 4, z, BOPBlockHelper.get("logs3"), 3, 2); + world.setBlock(x, y + 5, z, BOPBlockHelper.get("logs3"), 3, 2); + + //Red + if (metadata == 0) + { + world.setBlock(x - 1, y + 5, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 1, y + 5, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 5, z - 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 5, z + 1, BOPBlockHelper.get("petals"), 0, 2); + + world.setBlock(x, y + 6, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 1, y + 6, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 1, y + 6, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 6, z - 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 6, z + 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 1, y + 6, z + 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 1, y + 6, z - 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 1, y + 6, z + 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 1, y + 6, z - 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 2, y + 6, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 2, y + 6, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 6, z + 2, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 6, z - 2, BOPBlockHelper.get("petals"), 0, 2); + + world.setBlock(x + 1, y + 7, z + 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 1, y + 7, z - 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 1, y + 7, z + 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 1, y + 7, z - 1, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 2, y + 7, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 2, y + 7, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 7, z + 2, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 7, z - 2, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 2, y + 7, z + 2, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x + 2, y + 7, z - 2, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 2, y + 7, z + 2, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 2, y + 7, z - 2, BOPBlockHelper.get("petals"), 0, 2); + + world.setBlock(x + 2, y + 8, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 2, y + 8, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 8, z + 2, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 8, z - 2, BOPBlockHelper.get("petals"), 0, 2); + + world.setBlock(x + 3, y + 9, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x - 3, y + 9, z, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 9, z + 3, BOPBlockHelper.get("petals"), 0, 2); + world.setBlock(x, y + 9, z - 3, BOPBlockHelper.get("petals"), 0, 2); + } + else + { + //Yellow + world.setBlock(x - 1, y + 5, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 1, y + 5, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 5, z - 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 5, z + 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 2, y + 5, z + 2, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 2, y + 5, z - 2, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x - 2, y + 5, z + 2, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x - 2, y + 5, z - 2, BOPBlockHelper.get("petals"), 1, 2); + + world.setBlock(x, y + 6, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x - 1, y + 6, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 1, y + 6, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 6, z - 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 6, z + 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 1, y + 6, z + 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 1, y + 6, z - 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x - 1, y + 6, z + 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x - 1, y + 6, z - 1, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 2, y + 6, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x - 2, y + 6, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 6, z + 2, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 6, z - 2, BOPBlockHelper.get("petals"), 1, 2); + + world.setBlock(x, y + 7, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x + 3, y + 7, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x - 3, y + 7, z, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 7, z + 3, BOPBlockHelper.get("petals"), 1, 2); + world.setBlock(x, y + 7, z - 3, BOPBlockHelper.get("petals"), 1, 2); + } + + return true; + } + } +}