diff --git a/jars/resources/mod/streaming/bopdisc.ogg b/jars/resources/mod/streaming/bopdisc.ogg new file mode 100644 index 000000000..2e81890c4 Binary files /dev/null and b/jars/resources/mod/streaming/bopdisc.ogg differ diff --git a/jars/resources/mod/streaming/bopdiscmud.ogg b/jars/resources/mod/streaming/bopdiscmud.ogg new file mode 100644 index 000000000..d7c3f0bc6 Binary files /dev/null and b/jars/resources/mod/streaming/bopdiscmud.ogg differ diff --git a/src/minecraft/tdwp_ftw/biomesop/ClientProxy.java b/src/minecraft/tdwp_ftw/biomesop/ClientProxy.java new file mode 100644 index 000000000..e4f3b5b6a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/ClientProxy.java @@ -0,0 +1,26 @@ +package tdwp_ftw.biomesop; + +import net.minecraftforge.client.MinecraftForgeClient; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ClientProxy extends CommonProxy { + + @Override + public void registerRenderers() { + MinecraftForgeClient.preloadTexture(BLOCK_PNG); + MinecraftForgeClient.preloadTexture(ITEMS_PNG); + MinecraftForgeClient.preloadTexture(ARMOR_MUD1_PNG); + MinecraftForgeClient.preloadTexture(ARMOR_MUD2_PNG); + MinecraftForgeClient.preloadTexture(ARMOR_AMETHYST1_PNG); + MinecraftForgeClient.preloadTexture(ARMOR_AMETHYST2_PNG); + + } + + @Override + public int addArmor(String armor) + { + return RenderingRegistry.addNewArmourRendererPrefix(armor); + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/CommonProxy.java b/src/minecraft/tdwp_ftw/biomesop/CommonProxy.java new file mode 100644 index 000000000..b77f970de --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/CommonProxy.java @@ -0,0 +1,20 @@ +package tdwp_ftw.biomesop; + +public class CommonProxy { + public static String BLOCK_PNG = "/tdwp_ftw/biomesop/res/block.png"; + public static String ITEMS_PNG = "/tdwp_ftw/biomesop/res/items.png"; + public static String ARMOR_MUD1_PNG = "/tdwp_ftw/biomesop/res/armor/mud_1.png"; + public static String ARMOR_MUD2_PNG = "/tdwp_ftw/biomesop/res/armor/mud_2.png"; + public static String ARMOR_AMETHYST1_PNG = "/tdwp_ftw/biomesop/res/armor/amethyst_1.png"; + public static String ARMOR_AMETHYST2_PNG = "/tdwp_ftw/biomesop/res/armor/amethyst_2.png"; + + // Client stuff + public void registerRenderers() { + // Nothing here as the server doesn't render graphics! + } + + public int addArmor(String armor) + { + return 0; + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/armor/ArmorAmethyst.java b/src/minecraft/tdwp_ftw/biomesop/armor/ArmorAmethyst.java new file mode 100644 index 000000000..1d576e2fe --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/armor/ArmorAmethyst.java @@ -0,0 +1,25 @@ +package tdwp_ftw.biomesop.armor; + +import net.minecraft.item.EnumArmorMaterial; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.IArmorTextureProvider; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.CommonProxy; + +public class ArmorAmethyst extends ItemArmor implements IArmorTextureProvider +{ + public ArmorAmethyst(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4) { + super(par1, par2EnumArmorMaterial, par3, par4); + } + + public String getArmorTextureFile(ItemStack par1) { + if(par1.itemID == mod_BiomesOPlenty.helmetAmethyst.itemID||par1.itemID == mod_BiomesOPlenty.chestplateAmethyst.itemID||par1.itemID == mod_BiomesOPlenty.bootsAmethyst.itemID){ + return CommonProxy.ARMOR_AMETHYST1_PNG; + } + if(par1.itemID == mod_BiomesOPlenty.leggingsAmethyst.itemID){ + return CommonProxy.ARMOR_AMETHYST2_PNG; + } + return null; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/armor/ArmorMuddy.java b/src/minecraft/tdwp_ftw/biomesop/armor/ArmorMuddy.java new file mode 100644 index 000000000..e5fe532cd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/armor/ArmorMuddy.java @@ -0,0 +1,25 @@ +package tdwp_ftw.biomesop.armor; + +import net.minecraft.item.EnumArmorMaterial; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.IArmorTextureProvider; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.CommonProxy; + +public class ArmorMuddy extends ItemArmor implements IArmorTextureProvider +{ + public ArmorMuddy(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4) { + super(par1, par2EnumArmorMaterial, par3, par4); + } + + public String getArmorTextureFile(ItemStack par1) { + if(par1.itemID == mod_BiomesOPlenty.helmetMud.itemID||par1.itemID == mod_BiomesOPlenty.chestplateMud.itemID||par1.itemID == mod_BiomesOPlenty.bootsMud.itemID){ + return CommonProxy.ARMOR_MUD1_PNG; + } + if(par1.itemID == mod_BiomesOPlenty.leggingsMud.itemID){ + return CommonProxy.ARMOR_MUD2_PNG; + } + return null; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeDecoratorBOP.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeDecoratorBOP.java new file mode 100644 index 000000000..bd8451ba5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeDecoratorBOP.java @@ -0,0 +1,1175 @@ +package tdwp_ftw.biomesop.biomes; + +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.BIG_SHROOM; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.CLAY; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.DEAD_BUSH; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.FLOWERS; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.GRASS; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.LILYPAD; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.REED; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SAND; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SAND_PASS2; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.SHROOM; +import static net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType.TREE; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.COAL; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.DIAMOND; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.DIRT; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.GOLD; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.GRAVEL; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.IRON; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.LAPIS; +import static net.minecraftforge.event.terraingen.OreGenEvent.GenerateMinable.EventType.REDSTONE; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeDecorator; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenBigMushroom; +import net.minecraft.world.gen.feature.WorldGenCactus; +import net.minecraft.world.gen.feature.WorldGenClay; +import net.minecraft.world.gen.feature.WorldGenDeadBush; +import net.minecraft.world.gen.feature.WorldGenFlowers; +import net.minecraft.world.gen.feature.WorldGenLakes; +import net.minecraft.world.gen.feature.WorldGenLiquids; +import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraft.world.gen.feature.WorldGenPumpkin; +import net.minecraft.world.gen.feature.WorldGenReed; +import net.minecraft.world.gen.feature.WorldGenSand; +import net.minecraft.world.gen.feature.WorldGenWaterlily; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.OreGenEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; +import net.minecraftforge.event.terraingen.TerrainGen; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenAlgae; +import tdwp_ftw.biomesop.worldgen.WorldGenAsh; +import tdwp_ftw.biomesop.worldgen.WorldGenBoulder; +import tdwp_ftw.biomesop.worldgen.WorldGenBush; +import tdwp_ftw.biomesop.worldgen.WorldGenCanyon; +import tdwp_ftw.biomesop.worldgen.WorldGenCarrots; +import tdwp_ftw.biomesop.worldgen.WorldGenCattail; +import tdwp_ftw.biomesop.worldgen.WorldGenDesertCactus; +import tdwp_ftw.biomesop.worldgen.WorldGenDriedDirt; +import tdwp_ftw.biomesop.worldgen.WorldGenGravel; +import tdwp_ftw.biomesop.worldgen.WorldGenHighGrass; +import tdwp_ftw.biomesop.worldgen.WorldGenMelon; +import tdwp_ftw.biomesop.worldgen.WorldGenMesa; +import tdwp_ftw.biomesop.worldgen.WorldGenMud; +import tdwp_ftw.biomesop.worldgen.WorldGenMycelium; +import tdwp_ftw.biomesop.worldgen.WorldGenOasis; +import tdwp_ftw.biomesop.worldgen.WorldGenOutback; +import tdwp_ftw.biomesop.worldgen.WorldGenPit; +import tdwp_ftw.biomesop.worldgen.WorldGenPotatoes; +import tdwp_ftw.biomesop.worldgen.WorldGenPromisedWillow; +import tdwp_ftw.biomesop.worldgen.WorldGenQuagmire; +import tdwp_ftw.biomesop.worldgen.WorldGenQuicksand; +import tdwp_ftw.biomesop.worldgen.WorldGenQuicksand2; +import tdwp_ftw.biomesop.worldgen.WorldGenShield; +import tdwp_ftw.biomesop.worldgen.WorldGenSmolderingGrass; +import tdwp_ftw.biomesop.worldgen.WorldGenSprout; +import tdwp_ftw.biomesop.worldgen.WorldGenSteppe; + +public class BiomeDecoratorBOP extends BiomeDecorator +{ + + /** The world the BiomeDecorator is currently decorating */ + protected World currentWorld; + + /** The Biome Decorator's random number generator. */ + protected Random randomGenerator; + + /** The X-coordinate of the chunk currently being decorated */ + protected int chunk_X; + + /** The Z-coordinate of the chunk currently being decorated */ + protected int chunk_Z; + + /** The biome generator object. */ + protected BiomeGenBase biome; + + /** The clay generator. */ + protected WorldGenerator clayGen = new WorldGenClay(4); + + /** The sand generator. */ + protected WorldGenerator sandGen; + protected WorldGenerator mudGen; + protected WorldGenerator oasesGen; + + /** The gravel generator. */ + protected WorldGenerator gravelAsSandGen; + + /** The dirt generator. */ + protected WorldGenerator dirtGen; + protected WorldGenerator gravelGen; + protected WorldGenerator gravelShoreGen; + protected WorldGenerator ashGen; + protected WorldGenerator grassMesaGen; + protected WorldGenerator sandMesaGen; + protected WorldGenerator myceliumGen; + protected WorldGenerator sandInGrassGen; + protected WorldGenerator stoneInGrassGen; + protected WorldGenerator stoneInGrassGen2; + protected WorldGenerator sandInStoneGen; + protected WorldGenerator driedDirtInSandGen; + protected WorldGenerator clayInStoneGen; + protected WorldGenerator quagmireGen; + protected WorldGenerator canyonGen; + protected WorldGenerator smolderingGrassGen; + protected WorldGenerator coalGen; + protected WorldGenerator ironGen; + + /** Field that holds gold WorldGenMinable */ + protected WorldGenerator goldGen; + + /** Field that holds redstone WorldGenMinable */ + protected WorldGenerator redstoneGen; + + /** Field that holds diamond WorldGenMinable */ + protected WorldGenerator diamondGen; + + /** Field that holds Lapis WorldGenMinable */ + protected WorldGenerator lapisGen; + + /** Field that holds one of the plantYellow WorldGenFlowers */ + protected WorldGenerator plantYellowGen; + + /** Field that holds one of the plantRed WorldGenFlowers */ + protected WorldGenerator plantRedGen; + protected WorldGenerator plantWhiteGen; + protected WorldGenerator plantBlueGen; + protected WorldGenerator plantPurpleGen; + protected WorldGenerator plantPinkGen; + protected WorldGenerator plantOrangeGen; + protected WorldGenerator plantTinyGen; + protected WorldGenerator plantGlowGen; + protected WorldGenerator plantDeadGen; + protected WorldGenerator plantDesertGen; + protected WorldGenerator cattailGen; + protected WorldGenerator outbackGen; + protected WorldGenerator steppeGen; + protected WorldGenerator thornGen; + protected WorldGenerator toadstoolGen; + protected WorldGenerator highGrassGen; + protected WorldGenerator carrotGen; + protected WorldGenerator potatoGen; + protected WorldGenerator sproutGen; + protected WorldGenerator bushGen; + protected WorldGenerator tinyCactusGen; + protected WorldGenerator deathbloomGen; + protected WorldGenerator hydrangeaGen; + protected WorldGenerator violetGen; + protected WorldGenerator duneGrassGen; + protected WorldGenerator holyTallGrassGen; + protected WorldGenerator desertSproutsGen; + protected WorldGenerator promisedWillowGen; + protected WorldGenerator quicksandGen; + protected WorldGenerator quicksand2Gen; + + /** Field that holds mushroomBrown WorldGenFlowers */ + protected WorldGenerator mushroomBrownGen; + + /** Field that holds mushroomRed WorldGenFlowers */ + protected WorldGenerator mushroomRedGen; + + /** Field that holds big mushroom generator */ + protected WorldGenerator bigMushroomGen; + + /** Field that holds WorldGenReed */ + protected WorldGenerator reedGen; + + /** Field that holds WorldGenCactus */ + protected WorldGenerator cactusGen; + protected WorldGenerator desertCactusGen; + + /** The water lily generation! */ + protected WorldGenerator waterlilyGen; + protected WorldGenerator algaeGen; + protected WorldGenerator pitGen; + + /** Amount of waterlilys per chunk. */ + protected int waterlilyPerChunk; + protected int algaePerChunk; + + /** + * The number of trees to attempt to generate per chunk. Up to 10 in forests, none in deserts. + */ + protected int treesPerChunk; + + /** + * The number of yellow flower patches to generate per chunk. The game generates much less than this number, since + * it attempts to generate them at a random altitude. + */ + protected int flowersPerChunk; + protected int whiteFlowersPerChunk; + protected int blueFlowersPerChunk; + protected int purpleFlowersPerChunk; + protected int pinkFlowersPerChunk; + protected int orangeFlowersPerChunk; + protected int tinyFlowersPerChunk; + protected int glowFlowersPerChunk; + protected int deadGrassPerChunk; + protected int desertGrassPerChunk; + protected int cattailsPerChunk; + protected int carrotsPerChunk; + protected int potatoesPerChunk; + protected int thornsPerChunk; + protected int toadstoolsPerChunk; + protected int sproutsPerChunk; + protected int bushesPerChunk; + protected int tinyCactiPerChunk; + protected int deathbloomsPerChunk; + protected int hydrangeasPerChunk; + protected int violetsPerChunk; + protected int duneGrassPerChunk; + protected int holyTallGrassPerChunk; + protected int desertSproutsPerChunk; + protected int promisedWillowPerChunk; + protected int quicksandPerChunk; + protected int quicksand2PerChunk; + + /** The amount of tall grass to generate per chunk. */ + protected int grassPerChunk; + protected int outbackPerChunk; + protected int steppePerChunk; + protected int highGrassPerChunk; + + /** + * The number of dead bushes to generate per chunk. Used in deserts and swamps. + */ + protected int deadBushPerChunk; + + /** + * The number of extra mushroom patches per chunk. It generates 1/4 this number in brown mushroom patches, and 1/8 + * this number in red mushroom patches. These mushrooms go beyond the default base number of mushrooms. + */ + protected int mushroomsPerChunk; + + /** + * The number of reeds to generate per chunk. Reeds won't generate if the randomly selected placement is unsuitable. + */ + protected int reedsPerChunk; + + /** + * The number of cactus plants to generate per chunk. Cacti only work on sand. + */ + protected int cactiPerChunk; + protected int desertCactiPerChunk; + + /** + * The number of sand patches to generate per chunk. Sand patches only generate when part of it is underwater. + */ + protected int sandPerChunk; + protected int oasesPerChunk; + protected int mudPerChunk; + protected int gravelPerChunk; + + /** + * The number of sand patches to generate per chunk. Sand patches only generate when part of it is underwater. There + * appear to be two separate fields for this. + */ + protected int sandPerChunk2; + protected int oasesPerChunk2; + protected int mudPerChunk2; + protected int gravelPerChunk2; + + /** + * The number of clay patches to generate per chunk. Only generates when part of it is underwater. + */ + protected int clayPerChunk; + + /** Amount of big mushrooms per chunk */ + protected int bigMushroomsPerChunk; + protected int rosesPerChunk; + protected int pondsPerChunk; + protected int waterLakesPerChunk; + protected int lavaLakesPerChunk; + + /** True if decorator should generate surface lava & water */ + public boolean generateLakes; + public boolean generateAsh; + public boolean generateGrass; + public boolean generateSand; + public boolean generateMycelium; + public boolean generateSandInGrass; + public boolean generateStoneInGrass; + public boolean generateStoneInGrass2; + public boolean generateSandInStone; + public boolean generateDriedDirtInSand; + public boolean generateClayInStone; + public boolean generatePits; + public boolean generateQuagmire; + public boolean generateCanyon; + public boolean generatePumpkins; + public boolean generateMelons; + public boolean generateBoulders; + public boolean generateSmolderingGrass; + + public BiomeDecoratorBOP(BiomeGenBase par1BiomeGenBase) + { + super(par1BiomeGenBase); + this.sandGen = new WorldGenSand(7, Block.sand.blockID); + this.oasesGen = new WorldGenOasis(7, Block.grass.blockID); + this.mudGen = new WorldGenMud(7, mod_BiomesOPlenty.mud.blockID); + this.gravelShoreGen = new WorldGenGravel(7, Block.gravel.blockID); + this.gravelAsSandGen = new WorldGenSand(6, Block.gravel.blockID); + this.dirtGen = new WorldGenMinable(Block.dirt.blockID, 32); + this.gravelGen = new WorldGenMinable(Block.gravel.blockID, 32); + this.ashGen = new WorldGenAsh(mod_BiomesOPlenty.ash.blockID, 32); + this.grassMesaGen = new WorldGenMesa(Block.grass.blockID, 48); + this.sandMesaGen = new WorldGenMesa(Block.sand.blockID, 32); + this.myceliumGen = new WorldGenMycelium(Block.mycelium.blockID, 32); + this.sandInGrassGen = new WorldGenMycelium(Block.sand.blockID, 32); + this.stoneInGrassGen = new WorldGenMycelium(Block.stone.blockID, 32); + this.stoneInGrassGen2 = new WorldGenShield(Block.stone.blockID, 48); + this.sandInStoneGen = new WorldGenMinable(Block.sand.blockID, 32); + this.clayInStoneGen = new WorldGenMinable(Block.blockClay.blockID, 32); + this.quagmireGen = new WorldGenQuagmire(Block.grass.blockID, 48); + this.canyonGen = new WorldGenCanyon(mod_BiomesOPlenty.redRock.blockID, 48); + this.smolderingGrassGen = new WorldGenSmolderingGrass(mod_BiomesOPlenty.smolderingGrass.blockID, 32); + this.driedDirtInSandGen = new WorldGenDriedDirt(mod_BiomesOPlenty.driedDirt.blockID, 32); + this.coalGen = new WorldGenMinable(Block.oreCoal.blockID, 16); + this.ironGen = new WorldGenMinable(Block.oreIron.blockID, 8); + this.goldGen = new WorldGenMinable(Block.oreGold.blockID, 8); + this.redstoneGen = new WorldGenMinable(Block.oreRedstone.blockID, 7); + this.diamondGen = new WorldGenMinable(Block.oreDiamond.blockID, 7); + this.lapisGen = new WorldGenMinable(Block.oreLapis.blockID, 6); + this.plantYellowGen = new WorldGenFlowers(Block.plantYellow.blockID); + this.plantRedGen = new WorldGenFlowers(Block.plantRed.blockID); + this.plantWhiteGen = new WorldGenFlowers(mod_BiomesOPlenty.whiteFlower.blockID); + this.plantBlueGen = new WorldGenFlowers(mod_BiomesOPlenty.blueFlower.blockID); + this.plantPurpleGen = new WorldGenFlowers(mod_BiomesOPlenty.purpleFlower.blockID); + this.plantPinkGen = new WorldGenFlowers(mod_BiomesOPlenty.pinkFlower.blockID); + this.plantOrangeGen = new WorldGenFlowers(mod_BiomesOPlenty.orangeFlower.blockID); + this.plantTinyGen = new WorldGenFlowers(mod_BiomesOPlenty.tinyFlower.blockID); + this.plantGlowGen = new WorldGenFlowers(mod_BiomesOPlenty.glowFlower.blockID); + this.plantDeadGen = new WorldGenFlowers(mod_BiomesOPlenty.deadGrass.blockID); + this.plantDesertGen = new WorldGenFlowers(mod_BiomesOPlenty.desertGrass.blockID); + this.thornGen = new WorldGenFlowers(mod_BiomesOPlenty.thorn.blockID); + this.bushGen = new WorldGenBush(mod_BiomesOPlenty.bush.blockID); + this.tinyCactusGen = new WorldGenFlowers(mod_BiomesOPlenty.tinyCactus.blockID); + this.deathbloomGen = new WorldGenFlowers(mod_BiomesOPlenty.deathbloom.blockID); + this.hydrangeaGen = new WorldGenFlowers(mod_BiomesOPlenty.hydrangea.blockID); + this.violetGen = new WorldGenFlowers(mod_BiomesOPlenty.violet.blockID); + this.duneGrassGen = new WorldGenFlowers(mod_BiomesOPlenty.duneGrass.blockID); + this.holyTallGrassGen = new WorldGenFlowers(mod_BiomesOPlenty.holyTallGrass.blockID); + this.desertSproutsGen = new WorldGenFlowers(mod_BiomesOPlenty.desertSprouts.blockID); + this.promisedWillowGen = new WorldGenPromisedWillow(); + this.quicksandGen = new WorldGenQuicksand(); + this.quicksand2Gen = new WorldGenQuicksand2(); + this.cattailGen = new WorldGenCattail(); + this.mushroomBrownGen = new WorldGenFlowers(Block.mushroomBrown.blockID); + this.mushroomRedGen = new WorldGenFlowers(Block.mushroomRed.blockID); + this.toadstoolGen = new WorldGenFlowers(mod_BiomesOPlenty.toadstool.blockID); + this.sproutGen = new WorldGenSprout(mod_BiomesOPlenty.sprout.blockID, 1); + this.highGrassGen = new WorldGenHighGrass(mod_BiomesOPlenty.highGrassBottom.blockID, 0); + this.outbackGen = new WorldGenOutback(mod_BiomesOPlenty.mediumGrass.blockID, 1); + this.steppeGen = new WorldGenSteppe(Block.sand.blockID, 0); + this.carrotGen = new WorldGenCarrots(Block.tallGrass.blockID, 0); + this.potatoGen = new WorldGenPotatoes(Block.tallGrass.blockID, 0); + this.bigMushroomGen = new WorldGenBigMushroom(); + this.reedGen = new WorldGenReed(); + this.cactusGen = new WorldGenCactus(); + this.desertCactusGen = new WorldGenDesertCactus(); + this.waterlilyGen = new WorldGenWaterlily(); + this.algaeGen = new WorldGenAlgae(); + this.pitGen = new WorldGenPit(mod_BiomesOPlenty.ash.blockID); + this.waterlilyPerChunk = 0; + this.treesPerChunk = 0; + this.flowersPerChunk = 2; + this.grassPerChunk = 1; + this.deadBushPerChunk = 0; + this.mushroomsPerChunk = 0; + this.reedsPerChunk = 0; + this.cactiPerChunk = 0; + this.sandPerChunk = 1; + this.sandPerChunk2 = 3; + this.oasesPerChunk = 0; + this.oasesPerChunk2 = 0; + this.mudPerChunk = 0; + this.mudPerChunk2 = 0; + this.gravelPerChunk = 0; + this.gravelPerChunk2 = 0; + this.clayPerChunk = 1; + this.bigMushroomsPerChunk = 0; + this.rosesPerChunk = 0; + this.whiteFlowersPerChunk = 0; + this.blueFlowersPerChunk = 0; + this.purpleFlowersPerChunk = 0; + this.pinkFlowersPerChunk = 0; + this.orangeFlowersPerChunk = 0; + this.tinyFlowersPerChunk = 0; + this.glowFlowersPerChunk = 0; + this.deadGrassPerChunk = 0; + this.desertGrassPerChunk = 0; + this.cattailsPerChunk = 0; + this.carrotsPerChunk = 0; + this.potatoesPerChunk = 0; + this.thornsPerChunk = 0; + this.toadstoolsPerChunk = 0; + this.sproutsPerChunk = 0; + this.bushesPerChunk = 0; + this.tinyCactiPerChunk = 0; + this.deathbloomsPerChunk = 0; + this.hydrangeasPerChunk = 0; + this.violetsPerChunk = 0; + this.duneGrassPerChunk = 0; + this.holyTallGrassPerChunk = 0; + this.desertSproutsPerChunk = 0; + this.desertCactiPerChunk = 0; + this.highGrassPerChunk = 0; + this.outbackPerChunk = 0; + this.steppePerChunk = 0; + this.promisedWillowPerChunk = 0; + this.algaePerChunk = 0; + this.pondsPerChunk = 0; + this.waterLakesPerChunk = 0; + this.lavaLakesPerChunk = 0; + this.quicksandPerChunk = 0; + this.quicksand2PerChunk = 0; + this.generateLakes = true; + this.generateAsh = false; + this.generateMycelium = false; + this.generateSandInGrass = false; + this.generateStoneInGrass = false; + this.generateStoneInGrass2 = false; + this.generateSandInStone = false; + this.generateDriedDirtInSand = false; + this.generateClayInStone = false; + this.generateQuagmire = false; + this.generateCanyon = false; + this.generatePumpkins = true; + this.generateMelons = false; + this.generateBoulders = false; + this.generateSmolderingGrass = false; + this.biome = par1BiomeGenBase; + } + + /** + * Decorates the world. Calls code that was formerly (pre-1.8) in ChunkProviderGenerate.populate + */ + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + if (this.currentWorld != null) + { + return ; + } + else + { + this.currentWorld = par1World; + this.randomGenerator = par2Random; + this.chunk_X = par3; + this.chunk_Z = par4; + this.decorate(); + this.currentWorld = null; + this.randomGenerator = null; + } + } + + + + + /** + * The method that does the work of actually decorating chunks + */ + protected void decorate() + { + MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Pre(currentWorld, randomGenerator, chunk_X, chunk_Z)); + //Added + boolean doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, SAND); + + this.generateOres(); + + int var1; + int var2; + int var3; + int var4; + int var5; + + for (var2 = 0; var2 < waterLakesPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(this.randomGenerator.nextInt(120) + 8); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenLakes(Block.waterMoving.blockID)).generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < lavaLakesPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(this.randomGenerator.nextInt(this.randomGenerator.nextInt(112) + 8) + 8); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenLakes(Block.lavaMoving.blockID)).generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + if (this.generateAsh) + { + this.genStandardOre1(10, this.ashGen, 0, 128); + } + + if (this.generateGrass) + { + this.genStandardOre1(20, this.grassMesaGen, 0, 128); + } + + if (this.generateSand) + { + this.genStandardOre1(15, this.sandMesaGen, 0, 128); + } + + if (this.generateMycelium) + { + this.genStandardOre1(10, this.myceliumGen, 0, 128); + } + + if (this.generateSandInGrass) + { + this.genStandardOre1(8, this.sandInGrassGen, 64, 128); + } + + if (this.generateStoneInGrass) + { + this.genStandardOre1(15, this.stoneInGrassGen, 64, 128); + } + + if (this.generateStoneInGrass2) + { + this.genStandardOre1(20, this.stoneInGrassGen2, 64, 128); + } + + if (this.generateSandInStone) + { + this.genStandardOre1(10, this.sandInStoneGen, 64, 128); + } + + if (this.generateDriedDirtInSand) + { + this.genStandardOre1(8, this.driedDirtInSandGen, 64, 128); + } + + if (this.generateClayInStone) + { + this.genStandardOre1(15, this.clayInStoneGen, 64, 128); + } + + if (this.generateQuagmire) + { + this.genStandardOre1(15, this.quagmireGen, 64, 128); + } + + if (this.generateCanyon) + { + this.genStandardOre1(15, this.canyonGen, 64, 128); + } + + if (this.generateSmolderingGrass) + { + this.genStandardOre1(15, this.smolderingGrassGen, 64, 128); + } + + if (this.generatePits) + { + var4 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + int var6 = this.currentWorld.getTopSolidOrLiquidBlock(var4, var5); + + if (var6 > 0) + { + ; + } + + this.pitGen.generate(this.currentWorld, this.randomGenerator, var4, var6, var5); + } + + for (var1 = 0; var1 < this.sandPerChunk2; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.sandGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + //Added + for (var1 = 0; doGen && var1 < this.sandPerChunk2; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.sandGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + for (var1 = 0; var1 < this.mudPerChunk2; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.mudGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + for (var1 = 0; var1 < this.gravelPerChunk2; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.gravelShoreGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, CLAY); + for (var1 = 0; doGen && var1 < this.clayPerChunk; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.clayGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, SAND_PASS2); + for (var1 = 0; doGen && var1 < this.sandPerChunk; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.sandGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + for (var1 = 0; var1 < this.oasesPerChunk; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.oasesGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + for (var1 = 0; var1 < this.mudPerChunk; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.mudGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + for (var1 = 0; var1 < this.gravelPerChunk; ++var1) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.gravelShoreGen.generate(this.currentWorld, this.randomGenerator, var2, this.currentWorld.getTopSolidOrLiquidBlock(var2, var3), var3); + } + + var1 = this.treesPerChunk; + + if (this.randomGenerator.nextInt(10) == 0) + { + ++var1; + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, TREE); + for (var2 = 0; doGen && var2 < var1; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + WorldGenerator var7 = this.biome.getRandomWorldGenForTrees(this.randomGenerator); + var7.setScale(1.0D, 1.0D, 1.0D); + var7.generate(this.currentWorld, this.randomGenerator, var3, this.currentWorld.getHeightValue(var3, var4), var4); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, BIG_SHROOM); + for (var2 = 0; doGen && var2 < this.bigMushroomsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.bigMushroomGen.generate(this.currentWorld, this.randomGenerator, var3, this.currentWorld.getHeightValue(var3, var4), var4); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, FLOWERS); + for (var2 = 0; doGen && var2 < this.flowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantYellowGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + + if (this.randomGenerator.nextInt(4) == 0) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantRedGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + } + + for (var2 = 0; var2 < this.rosesPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantRedGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.promisedWillowPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(70); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.promisedWillowGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.whiteFlowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantWhiteGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.blueFlowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantBlueGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.hydrangeasPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.hydrangeaGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.violetsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.violetGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.duneGrassPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.duneGrassGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.holyTallGrassPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.holyTallGrassGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.desertSproutsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.desertSproutsGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.purpleFlowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantPurpleGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.pinkFlowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantPinkGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.bushesPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.bushGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.orangeFlowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantOrangeGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.tinyCactiPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.tinyCactusGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.deathbloomsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.deathbloomGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.toadstoolsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.toadstoolGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.sproutsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.sproutGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.tinyFlowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantTinyGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.glowFlowersPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantGlowGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.deadGrassPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantDeadGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.desertGrassPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.plantDesertGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.quicksandPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.quicksandGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.quicksand2PerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.quicksand2Gen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, GRASS); + for (var2 = 0; doGen && var2 < this.grassPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + WorldGenerator var6 = this.biome.getRandomWorldGenForGrass(this.randomGenerator); + var6.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.outbackPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.outbackGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.steppePerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.steppeGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.highGrassPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.highGrassGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.carrotsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.carrotGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.potatoesPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.potatoGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.thornsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.thornGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.cattailsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.cattailGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; doGen && var2 < this.algaePerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + + for (var5 = this.randomGenerator.nextInt(128); var5 > 0 && this.currentWorld.getBlockId(var3, var5 - 1, var4) == 0; --var5) + { + ; + } + + this.algaeGen.generate(this.currentWorld, this.randomGenerator, var3, var5, var4); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, DEAD_BUSH); + for (var2 = 0; doGen && var2 < this.deadBushPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenDeadBush(Block.deadBush.blockID)).generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, LILYPAD); + for (var2 = 0; doGen && var2 < this.waterlilyPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + + for (var5 = this.randomGenerator.nextInt(128); var5 > 0 && this.currentWorld.getBlockId(var3, var5 - 1, var4) == 0; --var5) + { + ; + } + + this.waterlilyGen.generate(this.currentWorld, this.randomGenerator, var3, var5, var4); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, SHROOM); + for (var2 = 0; doGen && var2 < this.mushroomsPerChunk; ++var2) + { + if (this.randomGenerator.nextInt(4) == 0) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + var5 = this.currentWorld.getHeightValue(var3, var4); + this.mushroomBrownGen.generate(this.currentWorld, this.randomGenerator, var3, var5, var4); + } + + if (this.randomGenerator.nextInt(8) == 0) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + var5 = this.randomGenerator.nextInt(128); + this.mushroomRedGen.generate(this.currentWorld, this.randomGenerator, var3, var5, var4); + } + } + + if (this.randomGenerator.nextInt(4) == 0) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.randomGenerator.nextInt(128); + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.mushroomBrownGen.generate(this.currentWorld, this.randomGenerator, var2, var3, var4); + } + + if (this.randomGenerator.nextInt(8) == 0) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.randomGenerator.nextInt(128); + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.mushroomRedGen.generate(this.currentWorld, this.randomGenerator, var2, var3, var4); + } + + //Added + doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, REED); + for (var2 = 0; doGen && var2 < this.reedsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + var5 = this.randomGenerator.nextInt(128); + this.reedGen.generate(this.currentWorld, this.randomGenerator, var3, var5, var4); + } + + for (var2 = 0; doGen && var2 < 10; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.reedGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + if (this.generatePumpkins && this.randomGenerator.nextInt(32) == 0) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.randomGenerator.nextInt(128); + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenPumpkin()).generate(this.currentWorld, this.randomGenerator, var2, var3, var4); + } + + if (this.generateMelons && this.randomGenerator.nextInt(32) == 0) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.randomGenerator.nextInt(128); + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenMelon()).generate(this.currentWorld, this.randomGenerator, var2, var3, var4); + } + + if (this.generateBoulders && this.randomGenerator.nextInt(32) == 0) + { + var2 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var3 = this.randomGenerator.nextInt(128); + var4 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenBoulder()).generate(this.currentWorld, this.randomGenerator, var2, var3, var4); + } + + for (var2 = 0; var2 < this.cactiPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.cactusGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.desertCactiPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(128); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + this.desertCactusGen.generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < this.pondsPerChunk; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(this.randomGenerator.nextInt(120) + 8); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenLiquids(Block.waterMoving.blockID)).generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + if (this.generateLakes) + { + for (var2 = 0; var2 < 50; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(this.randomGenerator.nextInt(120) + 8); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenLiquids(Block.waterMoving.blockID)).generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + + for (var2 = 0; var2 < 20; ++var2) + { + var3 = this.chunk_X + this.randomGenerator.nextInt(16) + 8; + var4 = this.randomGenerator.nextInt(this.randomGenerator.nextInt(this.randomGenerator.nextInt(112) + 8) + 8); + var5 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8; + (new WorldGenLiquids(Block.lavaMoving.blockID)).generate(this.currentWorld, this.randomGenerator, var3, var4, var5); + } + } + + MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Post(currentWorld, randomGenerator, chunk_X, chunk_Z)); + } + + /** + * Standard ore generation helper. Generates most ores. + */ + protected void genStandardOre1(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); + par2WorldGenerator.generate(this.currentWorld, this.randomGenerator, var6, var7, var8); + } + } + + /** + * Standard ore generation helper. Generates Lapis Lazuli. + */ + protected void genStandardOre2(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) + this.randomGenerator.nextInt(par4) + (par3 - par4); + int var8 = this.chunk_Z + this.randomGenerator.nextInt(16); + par2WorldGenerator.generate(this.currentWorld, this.randomGenerator, var6, var7, var8); + } + } + + /** + * Generates ores in the current chunk + */ + protected void generateOres() + { + MinecraftForge.ORE_GEN_BUS.post(new OreGenEvent.Pre(currentWorld, randomGenerator, chunk_X, chunk_Z)); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, dirtGen, chunk_X, chunk_Z, DIRT)) + this.genStandardOre1(20, this.dirtGen, 0, 128); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, gravelGen, chunk_X, chunk_Z, GRAVEL)) + this.genStandardOre1(10, this.gravelGen, 0, 128); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, coalGen, chunk_X, chunk_Z, COAL)) + this.genStandardOre1(20, this.coalGen, 0, 128); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, ironGen, chunk_X, chunk_Z, IRON)) + this.genStandardOre1(20, this.ironGen, 0, 64); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, goldGen, chunk_X, chunk_Z, GOLD)) + this.genStandardOre1(2, this.goldGen, 0, 32); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, redstoneGen, chunk_X, chunk_Z, REDSTONE)) + this.genStandardOre1(8, this.redstoneGen, 0, 16); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, diamondGen, chunk_X, chunk_Z, DIAMOND)) + this.genStandardOre1(1, this.diamondGen, 0, 16); + + if (TerrainGen.generateOre(currentWorld, randomGenerator, lapisGen, chunk_X, chunk_Z, LAPIS)) + this.genStandardOre2(1, this.lapisGen, 16, 16); + + MinecraftForge.ORE_GEN_BUS.post(new OreGenEvent.Post(currentWorld, randomGenerator, chunk_X, chunk_Z)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenAlps.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenAlps.java new file mode 100644 index 000000000..a984207a8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenAlps.java @@ -0,0 +1,36 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga6; +import tdwp_ftw.biomesop.worldgen.WorldGenAlpsSpruce; +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenAlps extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenAlps(int par1) + { + super(par1); + this.topBlock = (byte)Block.stone.blockID; + this.fillerBlock = (byte)Block.stone.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenTaiga6(false); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenArctic.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenArctic.java new file mode 100644 index 000000000..6cdf632bb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenArctic.java @@ -0,0 +1,48 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga3; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga4; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga9; +import tdwp_ftw.biomesop.worldgen.WorldGenFir1; +import tdwp_ftw.biomesop.worldgen.WorldGenFir2; +import tdwp_ftw.biomesop.worldgen.WorldGenFir3; + +public class BiomeGenArctic extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenArctic(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 3; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenTaiga3(false) : (par1Random.nextInt(3) == 0 ? new WorldGenTaiga4(false) : new WorldGenTaiga9(false))); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBadlands.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBadlands.java new file mode 100644 index 000000000..14f464fa2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBadlands.java @@ -0,0 +1,57 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenBadlands extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenBadlands(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)Block.sandStone.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.hardSand.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.deadBushPerChunk = 4; + this.customBiomeDecorator.reedsPerChunk = -999; + this.customBiomeDecorator.cactiPerChunk = 2; + this.customBiomeDecorator.clayPerChunk = 3; + this.customBiomeDecorator.generateClayInStone = true; + this.customBiomeDecorator.generateSandInStone = true; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 13421723; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenBambooForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBambooForest.java new file mode 100644 index 000000000..1c235c510 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBambooForest.java @@ -0,0 +1,81 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenBambooTree; + +public class BiomeGenBambooForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenBambooForest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 30; + this.customBiomeDecorator.grassPerChunk = 5; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.bushesPerChunk = 5; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenShrub(0, 0) : new WorldGenBambooTree(false)); + } + + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 9430372; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 9430372; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBayou.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBayou.java new file mode 100644 index 000000000..0c4ca048a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBayou.java @@ -0,0 +1,107 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenBayou1; +import tdwp_ftw.biomesop.worldgen.WorldGenBayou2; +import tdwp_ftw.biomesop.worldgen.WorldGenBayou3; +import tdwp_ftw.biomesop.worldgen.WorldGenCypress1; +import tdwp_ftw.biomesop.worldgen.WorldGenCypress2; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; + +public class BiomeGenBayou extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenBayou(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 15; + this.customBiomeDecorator.grassPerChunk = 15; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.reedsPerChunk = 25; + this.customBiomeDecorator.mudPerChunk = 1; + this.customBiomeDecorator.mudPerChunk2 = 1; + this.customBiomeDecorator.toadstoolsPerChunk = 2; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.waterlilyPerChunk = 2; + this.customBiomeDecorator.cattailsPerChunk = 1; + this.customBiomeDecorator.algaePerChunk = 1; + this.customBiomeDecorator.generatePumpkins = false; + this.waterColorMultiplier = 16767282; + this.spawnableWaterCreatureList.clear(); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(8) == 0 ? new WorldGenBayou3() : (par1Random.nextInt(2) == 0 ? new WorldGenBayou1() : new WorldGenBayou2())); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 9154411; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 11591816; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 11322556; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenBirchForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBirchForest.java new file mode 100644 index 000000000..91c695d90 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBirchForest.java @@ -0,0 +1,64 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenSilverBirch1; +import tdwp_ftw.biomesop.worldgen.WorldGenSilverBirch2; + +public class BiomeGenBirchForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenBirchForest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 5; + this.customBiomeDecorator.grassPerChunk = 3; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.tinyFlowersPerChunk = 6; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return this.worldGeneratorForest; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBog.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBog.java new file mode 100644 index 000000000..623b06cce --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBog.java @@ -0,0 +1,99 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenBog1; +import tdwp_ftw.biomesop.worldgen.WorldGenBog2; + +public class BiomeGenBog extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenBog(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 30; + this.customBiomeDecorator.grassPerChunk = 30; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.mudPerChunk = 5; + this.customBiomeDecorator.mudPerChunk2 = 5; + this.customBiomeDecorator.deadBushPerChunk = 5; + this.customBiomeDecorator.algaePerChunk = 2; + this.spawnableCreatureList.add(new SpawnListEntry(EntitySlime.class, 10, 1, 3)); + this.waterColorMultiplier = 11506176; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenBog2() : new WorldGenBog1()); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(9) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 0) : new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 7627817; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 9539892; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 7039816; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenBorealForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBorealForest.java new file mode 100644 index 000000000..21013b804 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenBorealForest.java @@ -0,0 +1,61 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; +import tdwp_ftw.biomesop.worldgen.WorldGenAutumn; +import net.minecraft.world.gen.feature.WorldGenShrub; + +public class BiomeGenBorealForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenBorealForest(int par1) + { + super(par1); + this.spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 5, 4, 4)); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 25; + this.customBiomeDecorator.grassPerChunk = 50; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? this.worldGeneratorTrees : (par1Random.nextInt(5) == 0 ? new WorldGenShrub(0,0) : (par1Random.nextInt(3) == 0 ? new WorldGenAutumn(false) : (par1Random.nextInt(3) == 0 ? this.worldGeneratorForest : new WorldGenTaiga5(false))))); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 10467185; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 13225573; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCanyon.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCanyon.java new file mode 100644 index 000000000..39eb8a458 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCanyon.java @@ -0,0 +1,46 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import tdwp_ftw.biomesop.worldgen.WorldGenCanyonShrub; +import tdwp_ftw.biomesop.worldgen.WorldGenCanyonTree; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenCanyon extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenCanyon(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.topBlock = (byte)mod_BiomesOPlenty.hardDirt.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.hardDirt.blockID; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.tinyCactiPerChunk = 2; + this.customBiomeDecorator.generatePumpkins = false; + //this.customBiomeDecorator.generateCanyon = true; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenCanyonTree() : new WorldGenCanyonShrub(0,0)); + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 11123300; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenChaparral.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenChaparral.java new file mode 100644 index 000000000..d83a6aaae --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenChaparral.java @@ -0,0 +1,75 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import tdwp_ftw.biomesop.worldgen.WorldGenChaparral1; +import tdwp_ftw.biomesop.worldgen.WorldGenChaparral2; +import tdwp_ftw.biomesop.worldgen.WorldGenChaparral3; + +public class BiomeGenChaparral extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenChaparral(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 8; + this.customBiomeDecorator.grassPerChunk = 20; + this.customBiomeDecorator.bushesPerChunk = 10; + this.customBiomeDecorator.generateStoneInGrass = true; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenChaparral2() : (par1Random.nextInt(5) == 0 ? new WorldGenChaparral1(0, 0) : new WorldGenChaparral3())); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 12638301; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCherryBlossomGrove.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCherryBlossomGrove.java new file mode 100644 index 000000000..558e0ad23 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCherryBlossomGrove.java @@ -0,0 +1,43 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenCherry1; +import tdwp_ftw.biomesop.worldgen.WorldGenCherry2; + +public class BiomeGenCherryBlossomGrove extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenCherryBlossomGrove(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 5; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.pinkFlowersPerChunk = 15; + this.customBiomeDecorator.whiteFlowersPerChunk = 30; + this.customBiomeDecorator.tinyFlowersPerChunk = 25; + this.customBiomeDecorator.grassPerChunk = 15; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenCherry2(false) : new WorldGenCherry1(false)); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 10747818; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenConiferousForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenConiferousForest.java new file mode 100644 index 000000000..dd7f2f64e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenConiferousForest.java @@ -0,0 +1,70 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenFir1; +import tdwp_ftw.biomesop.worldgen.WorldGenFir2; +import tdwp_ftw.biomesop.worldgen.WorldGenFir3; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga3; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga4; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga9; + +public class BiomeGenConiferousForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenConiferousForest(int par1) + { + super(par1); + this.spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 8, 4, 4)); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 6; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.toadstoolsPerChunk = 3; + this.customBiomeDecorator.violetsPerChunk = 2; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenTaiga3(false) : (par1Random.nextInt(3) == 0 ? new WorldGenTaiga4(false) : new WorldGenTaiga9(false))); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCrag.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCrag.java new file mode 100644 index 000000000..277a2d68f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenCrag.java @@ -0,0 +1,56 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenCrag; + +public class BiomeGenCrag extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenCrag(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.topBlock = (byte)mod_BiomesOPlenty.cragRock.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.cragRock.blockID; + this.waterColorMultiplier = 944693; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 4944498; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenDeadForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeadForest.java new file mode 100644 index 000000000..7f3959768 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeadForest.java @@ -0,0 +1,81 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree2; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; + +public class BiomeGenDeadForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenDeadForest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 3; + this.customBiomeDecorator.grassPerChunk = 1; + this.customBiomeDecorator.thornsPerChunk = 2; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.reedsPerChunk = -999; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(9) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 0) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenDeadTree(false) : (par1Random.nextInt(4) == 0 ? new WorldGenTaiga5(false): new WorldGenDeadTree2(false))); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 12362085; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 9873591; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenDeadSwamp.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeadSwamp.java new file mode 100644 index 000000000..f100d77ba --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeadSwamp.java @@ -0,0 +1,86 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree; + +public class BiomeGenDeadSwamp extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenDeadSwamp(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 2; + this.customBiomeDecorator.grassPerChunk = 25; + this.customBiomeDecorator.highGrassPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.reedsPerChunk = -999; + this.customBiomeDecorator.mudPerChunk = 3; + this.customBiomeDecorator.mudPerChunk2 = 3; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.waterColorMultiplier = 10661201; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(9) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenDeadTree(false); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 6713420; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 6451816; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenDeadlands.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeadlands.java new file mode 100644 index 000000000..e399a7331 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeadlands.java @@ -0,0 +1,106 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.entity.passive.EntityBat; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree3; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadlands; + +public class BiomeGenDeadlands extends BiomeGenBase +{ + private WorldGenerator theWorldGenerator; + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenDeadlands(int par1) + { + super(par1); + this.topBlock = (byte)mod_BiomesOPlenty.ash.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.ash.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 1; + this.customBiomeDecorator.grassPerChunk = 15; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.mushroomsPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.lavaLakesPerChunk = 25; + this.customBiomeDecorator.generatePits = true; + this.customBiomeDecorator.generateSmolderingGrass = true; + this.waterColorMultiplier = 16711680; + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableCreatureList.add(new SpawnListEntry(EntityCreeper.class, 30, 1, 7)); + this.spawnableCaveCreatureList.add(new SpawnListEntry(EntityBat.class, 10, 8, 8)); + this.theWorldGenerator = new WorldGenMinable(Block.silverfish.blockID, 8); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenDeadTree3(false); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return new WorldGenDeadlands(); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + int var6; + int var7; + int var8; + + for (var5 = 0; var5 < 7; ++var5) + { + var6 = par3 + par2Random.nextInt(16); + var7 = par2Random.nextInt(64); + var8 = par4 + par2Random.nextInt(16); + this.theWorldGenerator.generate(par1World, par2Random, var6, var7, var8); + } + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 4464929; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenDeciduousForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeciduousForest.java new file mode 100644 index 000000000..27ed0e964 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDeciduousForest.java @@ -0,0 +1,60 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraft.world.gen.feature.WorldGenShrub; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenDeciduous; + +public class BiomeGenDeciduousForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenDeciduousForest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 15; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.toadstoolsPerChunk = 1; + this.customBiomeDecorator.bushesPerChunk = 8; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenShrub(2,2) : new WorldGenDeciduous(false)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(5) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 12695369; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 12896570; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDesertNew.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDesertNew.java new file mode 100644 index 000000000..5a5fcb5c2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDesertNew.java @@ -0,0 +1,43 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenDesertWells; + +public class BiomeGenDesertNew extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenDesertNew(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)Block.sand.blockID; + this.fillerBlock = (byte)Block.sand.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.deadBushPerChunk = 2; + this.customBiomeDecorator.reedsPerChunk = 50; + this.customBiomeDecorator.cactiPerChunk = 10; + this.customBiomeDecorator.desertSproutsPerChunk = 1; + this.customBiomeDecorator.tinyCactiPerChunk = 5; + this.customBiomeDecorator.quicksand2PerChunk = 6; + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + + if (par2Random.nextInt(1000) == 0) + { + int var5 = par3 + par2Random.nextInt(16) + 8; + int var6 = par4 + par2Random.nextInt(16) + 8; + WorldGenDesertWells var7 = new WorldGenDesertWells(); + var7.generate(par1World, par2Random, var5, par1World.getHeightValue(var5, var6) + 1, var6); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDrylands.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDrylands.java new file mode 100644 index 000000000..b0aa50b52 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDrylands.java @@ -0,0 +1,47 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenDrylands extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenDrylands(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 4; + this.customBiomeDecorator.thornsPerChunk = 4; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.quicksandPerChunk = 4; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenShrub(0, 0) : this.worldGeneratorTrees); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 13404780; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 13407596; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDunes.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDunes.java new file mode 100644 index 000000000..11eea97ed --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenDunes.java @@ -0,0 +1,56 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenDunes extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenDunes(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)Block.sand.blockID; + this.fillerBlock = (byte)Block.sand.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.deadBushPerChunk = -999; + this.customBiomeDecorator.duneGrassPerChunk = 10; + this.customBiomeDecorator.desertSproutsPerChunk = 5; + this.customBiomeDecorator.reedsPerChunk = -999; + this.customBiomeDecorator.generateLakes = false; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 14203007; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenFen.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenFen.java new file mode 100644 index 000000000..b3ac0294d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenFen.java @@ -0,0 +1,86 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.World; +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenFen1; +import tdwp_ftw.biomesop.worldgen.WorldGenFen2; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; + +public class BiomeGenFen extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenFen(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 15; + this.customBiomeDecorator.highGrassPerChunk = 1; + this.customBiomeDecorator.waterlilyPerChunk = 1; + this.customBiomeDecorator.cattailsPerChunk = 1; + this.customBiomeDecorator.pondsPerChunk = 99; + this.customBiomeDecorator.toadstoolsPerChunk = 2; + this.customBiomeDecorator.mushroomsPerChunk = 8; + this.customBiomeDecorator.mudPerChunk = 1; + this.customBiomeDecorator.mudPerChunk2 = 1; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.algaePerChunk = 1; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenFen2(false) : (par1Random.nextInt(20) == 0 ? new WorldGenDeadTree(false) : new WorldGenFen1())); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return (par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : (par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1))); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 12240001; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 13547897; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenField.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenField.java new file mode 100644 index 000000000..571ce3f4c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenField.java @@ -0,0 +1,49 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga8; + +public class BiomeGenField extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenField(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = 1; + this.customBiomeDecorator.grassPerChunk = 25; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenTaiga5(false) : (par1Random.nextInt(8) == 0 ? new WorldGenTaiga8(false) : (par1Random.nextInt(2) == 0 ? this.worldGeneratorTrees : new WorldGenShrub(0,0)))); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 11186770; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 10467150; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenForestNew.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenForestNew.java new file mode 100644 index 000000000..df0960004 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenForestNew.java @@ -0,0 +1,56 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.World; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenWhiteOak1; +import tdwp_ftw.biomesop.worldgen.WorldGenWhiteOak2; +import tdwp_ftw.biomesop.worldgen.WorldGenAlder1; +import tdwp_ftw.biomesop.worldgen.WorldGenAlder2; +import tdwp_ftw.biomesop.worldgen.WorldGenPaperBirch1; +import tdwp_ftw.biomesop.worldgen.WorldGenPaperBirch2; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; + +public class BiomeGenForestNew extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenForestNew(int par1) + { + super(par1); + this.spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 5, 4, 4)); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 2; + this.customBiomeDecorator.hydrangeasPerChunk = 2; + this.customBiomeDecorator.whiteFlowersPerChunk = 1; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + //return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenWhiteOak1() : (par1Random.nextInt(5) == 0 ? new WorldGenAlder2() : (par1Random.nextInt(8) == 0 ? new WorldGenAlder1() : (par1Random.nextInt(4) == 0 ? new WorldGenPaperBirch2() : (par1Random.nextInt(7) == 0 ? new WorldGenPaperBirch1() : new WorldGenWhiteOak2()))))); + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? this.worldGeneratorForest : (par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : this.worldGeneratorTrees)); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenFrostForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenFrostForest.java new file mode 100644 index 000000000..ebab949ae --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenFrostForest.java @@ -0,0 +1,77 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenFrostForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenFrostForest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 3; + this.customBiomeDecorator.grassPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.mushroomsPerChunk = -999; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return this.worldGeneratorTrees; + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 11261628; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 11261628; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 13557994; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenFungiForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenFungiForest.java new file mode 100644 index 000000000..71180e7e6 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenFungiForest.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.entity.passive.EntityMooshroom; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenSwampTall; +import tdwp_ftw.biomesop.worldgen.WorldGenThickTree; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; + +public class BiomeGenFungiForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenFungiForest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 4; + this.customBiomeDecorator.grassPerChunk = 5; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.mushroomsPerChunk = 8; + this.customBiomeDecorator.bigMushroomsPerChunk = 4; + this.customBiomeDecorator.toadstoolsPerChunk = 5; + this.customBiomeDecorator.blueFlowersPerChunk = 3; + this.customBiomeDecorator.generateMycelium = true; + this.customBiomeDecorator.generatePumpkins = false; + this.waterColorMultiplier = 65326; + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableCreatureList.add(new SpawnListEntry(EntityMooshroom.class, 3, 4, 8)); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenThickTree(false) : new WorldGenSwampTall()); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 5359235; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 5359235; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 5888980; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenGarden.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGarden.java new file mode 100644 index 000000000..4e9cbaf8f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGarden.java @@ -0,0 +1,90 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenGiantFlowerRed; +import tdwp_ftw.biomesop.worldgen.WorldGenGiantFlowerYellow; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.mobs.EntityRosester; + +public class BiomeGenGarden extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenGarden(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = 20; + this.customBiomeDecorator.whiteFlowersPerChunk = 25; + this.customBiomeDecorator.tinyFlowersPerChunk = 15; + this.customBiomeDecorator.sproutsPerChunk = 1; + 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.spawnableCreatureList.clear(); + this.spawnableCreatureList.add(new SpawnListEntry(EntityRosester.class, 10, 4, 4)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenGiantFlowerRed() : new WorldGenGiantFlowerYellow()); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 3785757; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 5364530; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGlacier.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGlacier.java new file mode 100644 index 000000000..058faef72 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGlacier.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.biomes; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenGlacier extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenGlacier(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)mod_BiomesOPlenty.hardIce.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.hardIce.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGrassland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGrassland.java new file mode 100644 index 000000000..6e599b5d0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGrassland.java @@ -0,0 +1,76 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityCow; +import net.minecraft.entity.passive.EntityPig; +import net.minecraft.entity.passive.EntitySheep; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenGrassland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenGrassland(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = 2; + this.customBiomeDecorator.reedsPerChunk = 25; + this.customBiomeDecorator.mushroomsPerChunk = 20; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.waterLakesPerChunk = 15; + this.customBiomeDecorator.generatePumpkins = false; + this.spawnableCreatureList.add(new SpawnListEntry(EntitySheep.class, 14, 4, 4)); + this.spawnableCreatureList.add(new SpawnListEntry(EntityPig.class, 12, 4, 4)); + this.spawnableCreatureList.add(new SpawnListEntry(EntityChicken.class, 12, 4, 4)); + this.spawnableCreatureList.add(new SpawnListEntry(EntityCow.class, 10, 4, 4)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 8379261; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGrove.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGrove.java new file mode 100644 index 000000000..0a3cb1e70 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenGrove.java @@ -0,0 +1,49 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenGrove extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenGrove(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 6; + this.customBiomeDecorator.flowersPerChunk = 5; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.sproutsPerChunk = 2; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenShrub(2,2) : this.worldGeneratorBigTree); + //return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenNorwaySpruce1() : new WorldGenNorwaySpruce2()); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 8298592; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 7445333; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHeathland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHeathland.java new file mode 100644 index 000000000..141b39c2c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHeathland.java @@ -0,0 +1,50 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenHeath; + +public class BiomeGenHeathland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenHeathland(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 2; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.purpleFlowersPerChunk = 30; + this.customBiomeDecorator.deadBushPerChunk = 2; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenShrub(0, 0) : new WorldGenHeath(false)); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 13550967; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 11454081; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHighland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHighland.java new file mode 100644 index 000000000..a75e3bdd7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHighland.java @@ -0,0 +1,20 @@ +package tdwp_ftw.biomesop.biomes; + +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenHighland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenHighland(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.highGrassPerChunk = 25; + this.customBiomeDecorator.grassPerChunk = 25; + this.customBiomeDecorator.potatoesPerChunk = -999; + this.customBiomeDecorator.generateBoulders = true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHillsNew.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHillsNew.java new file mode 100644 index 000000000..64cf422fa --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenHillsNew.java @@ -0,0 +1,54 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenHillsNew extends BiomeGenBase +{ + private WorldGenerator theWorldGenerator; + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenHillsNew(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.violetsPerChunk = 5; + this.theWorldGenerator = new WorldGenMinable(Block.silverfish.blockID, 8); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + int var6; + int var7; + int var8; + + for (var6 = 0; var6 < var5; ++var6) + { + var7 = par3 + par2Random.nextInt(16); + var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + + for (var5 = 0; var5 < 7; ++var5) + { + var6 = par3 + par2Random.nextInt(16); + var7 = par2Random.nextInt(64); + var8 = par4 + par2Random.nextInt(16); + this.theWorldGenerator.generate(par1World, par2Random, var6, var7, var8); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenIceSheet.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenIceSheet.java new file mode 100644 index 000000000..e95381f74 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenIceSheet.java @@ -0,0 +1,25 @@ +package tdwp_ftw.biomesop.biomes; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.block.Block; + +public class BiomeGenIceSheet extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenIceSheet(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)Block.ice.blockID; + this.fillerBlock = (byte)Block.ice.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenIcyHills.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenIcyHills.java new file mode 100644 index 000000000..0594e5d24 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenIcyHills.java @@ -0,0 +1,67 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenIceTree; +import net.minecraft.entity.monster.EntitySnowman; +import net.minecraft.world.biome.SpawnListEntry; + +public class BiomeGenIcyHills extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenIcyHills(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)Block.blockSnow.blockID; + this.fillerBlock = (byte)Block.blockSnow.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 2; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = -999; + this.spawnableCreatureList.add(new SpawnListEntry(EntitySnowman.class, 30, 2, 4)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenIceTree(false); + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 16777215; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenJadeCliffs.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenJadeCliffs.java new file mode 100644 index 000000000..daed66511 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenJadeCliffs.java @@ -0,0 +1,98 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.world.biome.BiomeGenBase; +import tdwp_ftw.biomesop.worldgen.WorldGenJadeTree; +import net.minecraft.world.gen.feature.WorldGenTaiga2; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; + +public class BiomeGenJadeCliffs extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenJadeCliffs(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 12; + this.customBiomeDecorator.grassPerChunk = 3; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(4) == 0 ? new WorldGenShrub(0, 1) : new WorldGenJadeTree(false)); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 12045485; + } + 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(); + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 8168808; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 9096298; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenJungleNew.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenJungleNew.java new file mode 100644 index 000000000..4355659de --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenJungleNew.java @@ -0,0 +1,120 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityOcelot; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenHugeTrees; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenTrees; +import net.minecraft.world.gen.feature.WorldGenVines; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenBrazilNut1; +import tdwp_ftw.biomesop.worldgen.WorldGenBrazilNut2; +import tdwp_ftw.biomesop.worldgen.WorldGenSandboxTree1; +import tdwp_ftw.biomesop.worldgen.WorldGenSandboxTree2; +import tdwp_ftw.biomesop.mobs.EntityJungleSpider; + +public class BiomeGenJungleNew extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenJungleNew(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 45; + this.customBiomeDecorator.grassPerChunk = 25; + this.customBiomeDecorator.flowersPerChunk = 4; + this.customBiomeDecorator.orangeFlowersPerChunk = 5; + this.customBiomeDecorator.quicksandPerChunk = 1; + this.customBiomeDecorator.generateMelons = true; + this.waterColorMultiplier = 10745289; + this.spawnableMonsterList.add(new SpawnListEntry(EntityOcelot.class, 2, 1, 1)); + this.spawnableMonsterList.add(new SpawnListEntry(EntityJungleSpider.class, 12, 6, 6)); + this.spawnableCreatureList.add(new SpawnListEntry(EntityChicken.class, 10, 4, 4)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + //return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenBrazilNut1() : (par1Random.nextInt(10) == 0 ? new WorldGenSandboxTree1() : (par1Random.nextInt(2) == 0 ? new WorldGenBrazilNut2() : (par1Random.nextInt(3) == 0 ? new WorldGenSandboxTree2() : new WorldGenShrub(3, 0))))); + return (WorldGenerator)(par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : (par1Random.nextInt(2) == 0 ? new WorldGenShrub(3, 0) : (par1Random.nextInt(3) == 0 ? new WorldGenHugeTrees(false, 10 + par1Random.nextInt(20), 3, 3) : new WorldGenTrees(false, 4 + par1Random.nextInt(7), 3, 3, true)))); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenVines var5 = new WorldGenVines(); + + for (int var6 = 0; var6 < 50; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 32; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 5232218; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 3266623; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 16751442; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenLushDesert.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenLushDesert.java new file mode 100644 index 000000000..937195791 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenLushDesert.java @@ -0,0 +1,45 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import tdwp_ftw.biomesop.worldgen.WorldGenAcacia; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenLushDesert extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenLushDesert(int par1) + { + super(par1); + this.topBlock = (byte)mod_BiomesOPlenty.redRock.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.redRock.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 8; + this.customBiomeDecorator.grassPerChunk = 8; + this.customBiomeDecorator.oasesPerChunk = 999; + this.customBiomeDecorator.oasesPerChunk2 = 999; + this.customBiomeDecorator.deadBushPerChunk = 2; + this.customBiomeDecorator.purpleFlowersPerChunk = 5; + this.customBiomeDecorator.desertGrassPerChunk = 10; + this.customBiomeDecorator.desertCactiPerChunk = 10; + this.customBiomeDecorator.cactiPerChunk = 20; + this.customBiomeDecorator.tinyCactiPerChunk = 5; + this.customBiomeDecorator.generateGrass = true; + this.customBiomeDecorator.generateSand = true; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenAcacia(false) : new WorldGenShrub(0, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenLushSwamp.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenLushSwamp.java new file mode 100644 index 000000000..aaf13e3f8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenLushSwamp.java @@ -0,0 +1,58 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenSwampTall; + +public class BiomeGenLushSwamp extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenLushSwamp(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 4; + this.customBiomeDecorator.mushroomsPerChunk = 8; + this.customBiomeDecorator.reedsPerChunk = 16; + this.customBiomeDecorator.cattailsPerChunk = 10; + this.customBiomeDecorator.waterlilyPerChunk = 3; + this.customBiomeDecorator.hydrangeasPerChunk = 1; + this.spawnableMonsterList.add(new SpawnListEntry(EntitySlime.class, 1, 1, 1)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenSwampTall() : this.worldGeneratorSwamp); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMangrove.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMangrove.java new file mode 100644 index 000000000..cd6e24a1f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMangrove.java @@ -0,0 +1,37 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenMangrove; + +public class BiomeGenMangrove extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMangrove(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)Block.sand.blockID; + this.fillerBlock = (byte)Block.sand.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 6; + this.customBiomeDecorator.deadBushPerChunk = 1; + this.customBiomeDecorator.deadGrassPerChunk = 9; + this.customBiomeDecorator.reedsPerChunk = -999; + this.customBiomeDecorator.cactiPerChunk = -999; + this.customBiomeDecorator.desertSproutsPerChunk = 1; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenMangrove(false); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMapleWoods.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMapleWoods.java new file mode 100644 index 000000000..62c0f4343 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMapleWoods.java @@ -0,0 +1,31 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenMaple; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; + +public class BiomeGenMapleWoods extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMapleWoods(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 9; + this.customBiomeDecorator.grassPerChunk = 1; + this.customBiomeDecorator.violetsPerChunk = 1; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(6) == 0 ? new WorldGenTaiga5(false) : new WorldGenMaple(false)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMarsh.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMarsh.java new file mode 100644 index 000000000..a62ee6529 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMarsh.java @@ -0,0 +1,52 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenMarsh; + +public class BiomeGenMarsh extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMarsh(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = 65; + this.customBiomeDecorator.highGrassPerChunk = 25; + this.customBiomeDecorator.generatePumpkins = false; + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMarsh var5 = new WorldGenMarsh(); + + for (int var6 = 0; var6 < 25; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 62; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMeadow.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMeadow.java new file mode 100644 index 000000000..d88125bc7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMeadow.java @@ -0,0 +1,66 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenTaiga2; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenMeadow extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMeadow(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 2; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.tinyFlowersPerChunk = 14; + this.customBiomeDecorator.flowersPerChunk = 10; + this.customBiomeDecorator.carrotsPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.hydrangeasPerChunk = 3; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenTaiga2(false) : new WorldGenShrub(0, 1)); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 6533741; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMesa.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMesa.java new file mode 100644 index 000000000..fe49303b4 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMesa.java @@ -0,0 +1,55 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.entity.monster.EntitySpider; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; + +public class BiomeGenMesa extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMesa(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)mod_BiomesOPlenty.redRock.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.redRock.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.deadBushPerChunk = 2; + this.customBiomeDecorator.desertGrassPerChunk = 10; + this.customBiomeDecorator.tinyCactiPerChunk = 2; + this.spawnableMonsterList.add(new SpawnListEntry(EntitySpider.class, 15, 2, 6)); + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 15898486; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenMoor.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMoor.java new file mode 100644 index 000000000..51d70de8c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMoor.java @@ -0,0 +1,92 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenMoor; + +public class BiomeGenMoor extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMoor(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = 15; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.mudPerChunk = 1; + this.customBiomeDecorator.mudPerChunk2 = 1; + this.waterColorMultiplier = 5800566; + this.customBiomeDecorator.generatePumpkins = false; + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoor var5 = new WorldGenMoor(); + + for (int var6 = 0; var6 < 16; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 64; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return (par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : (par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1))); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 6394725; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 10536403; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenMountain.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMountain.java new file mode 100644 index 000000000..fe4cc8669 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMountain.java @@ -0,0 +1,32 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTaiga2; +import tdwp_ftw.biomesop.worldgen.WorldGenScotsPine1; +import tdwp_ftw.biomesop.worldgen.WorldGenScotsPine2; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga7; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenMountain extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMountain(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 2; + this.customBiomeDecorator.grassPerChunk = 3; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(8) == 0 ? new WorldGenTaiga2(false) : (par1Random.nextInt(4) == 0 ? new WorldGenTaiga7(false) : this.worldGeneratorTrees)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMysticGrove.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMysticGrove.java new file mode 100644 index 000000000..ad7231e80 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenMysticGrove.java @@ -0,0 +1,101 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntityWitch; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenMystic1; +import tdwp_ftw.biomesop.worldgen.WorldGenMystic2; + +public class BiomeGenMysticGrove extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenMysticGrove(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 8; + this.customBiomeDecorator.grassPerChunk = 7; + this.customBiomeDecorator.flowersPerChunk = 8; + this.customBiomeDecorator.pinkFlowersPerChunk = 6; + this.customBiomeDecorator.glowFlowersPerChunk = 15; + this.customBiomeDecorator.rosesPerChunk = 8; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.sproutsPerChunk = 3; + this.customBiomeDecorator.hydrangeasPerChunk = 3; + this.waterColorMultiplier = 15349914; + this.spawnableMonsterList.clear(); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableMonsterList.add(new SpawnListEntry(EntityWitch.class, 10, 4, 4)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenMystic2(false) : new WorldGenMystic1(false)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 7004860; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 3530896; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 16751558; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenOasis.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOasis.java new file mode 100644 index 000000000..465108188 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOasis.java @@ -0,0 +1,43 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenPalmTree3; + +public class BiomeGenOasis extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenOasis(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)Block.sand.blockID; + this.fillerBlock = (byte)Block.sand.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 3; + this.customBiomeDecorator.grassPerChunk = 15; + this.customBiomeDecorator.reedsPerChunk = 100; + this.customBiomeDecorator.oasesPerChunk = 999; + this.customBiomeDecorator.oasesPerChunk2 = 999; + this.customBiomeDecorator.cactiPerChunk = 7; + this.customBiomeDecorator.desertSproutsPerChunk = 3; + this.customBiomeDecorator.tinyCactiPerChunk = 2; + this.customBiomeDecorator.generatePumpkins = false; + this.customBiomeDecorator.generateMelons = true; + this.customBiomeDecorator.waterLakesPerChunk = 10; + this.customBiomeDecorator.quicksand2PerChunk = 2; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenPalmTree3(); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOminousWoods.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOminousWoods.java new file mode 100644 index 000000000..db4fd76d6 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOminousWoods.java @@ -0,0 +1,109 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntityCaveSpider; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.passive.EntityBat; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenDarkTree1; +import tdwp_ftw.biomesop.worldgen.WorldGenDarkTree2; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow1; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow2; +import tdwp_ftw.biomesop.worldgen.WorldGenOminous1; +import tdwp_ftw.biomesop.worldgen.WorldGenOminous2; + +public class BiomeGenOminousWoods extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenOminousWoods(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.deathbloomsPerChunk = 1; + this.customBiomeDecorator.mushroomsPerChunk = 8; + this.customBiomeDecorator.reedsPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.thornsPerChunk = 9; + this.waterColorMultiplier = 1973030; + this.spawnableMonsterList.clear(); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableMonsterList.add(new SpawnListEntry(EntityCaveSpider.class, 15, 1, 2)); + this.spawnableMonsterList.add(new SpawnListEntry(EntityEnderman.class, 10, 1, 4)); + this.spawnableCaveCreatureList.add(new SpawnListEntry(EntityBat.class, 10, 8, 8)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + //return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenWillow2() : (par1Random.nextInt(7) == 0 ? new WorldGenDarkTree1() : (par1Random.nextInt(5) == 0 ? new WorldGenWillow1() : new WorldGenDarkTree2()))); + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenOminous1(false) : new WorldGenOminous2()); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(6) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 0) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 4145489; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 4145489; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 5069168; + } + else + { + par1 /= 3.0F; + + if (par1 < -1.0F) + { + par1 = -1.0F; + } + + if (par1 > 1.0F) + { + par1 = 1.0F; + } + + return Color.getHSBColor(0.62222224F - par1 * 0.05F, 0.5F + par1 * 0.1F, 1.0F).getRGB(); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOrchard.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOrchard.java new file mode 100644 index 000000000..4a97ec701 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOrchard.java @@ -0,0 +1,43 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenApple; +import tdwp_ftw.biomesop.worldgen.WorldGenAppleTree1; +import tdwp_ftw.biomesop.worldgen.WorldGenAppleTree2; + +public class BiomeGenOrchard extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenOrchard(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 2; + this.customBiomeDecorator.flowersPerChunk = 20; + this.customBiomeDecorator.whiteFlowersPerChunk = 20; + this.customBiomeDecorator.tinyFlowersPerChunk = 20; + this.customBiomeDecorator.grassPerChunk = 15; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + //return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenAppleTree1() : new WorldGenAppleTree2()); + return new WorldGenApple(false); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 14024557; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOriginValley.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOriginValley.java new file mode 100644 index 000000000..d05060eec --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOriginValley.java @@ -0,0 +1,76 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenOriginTree; + +public class BiomeGenOriginValley extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenOriginValley(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.topBlock = (byte)mod_BiomesOPlenty.originGrass.blockID; + this.customBiomeDecorator.treesPerChunk = 4; + this.customBiomeDecorator.grassPerChunk = -999; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenOriginTree(false); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 10682207; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 3866368; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 8703228; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenOutback.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOutback.java new file mode 100644 index 000000000..7b14cf4c3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenOutback.java @@ -0,0 +1,42 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import tdwp_ftw.biomesop.worldgen.WorldGenOutback; +import tdwp_ftw.biomesop.worldgen.WorldGenOutbackTree; +import tdwp_ftw.biomesop.worldgen.WorldGenOutbackShrub; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenOutback extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenOutback(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.topBlock = (byte)mod_BiomesOPlenty.hardSand.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.hardSand.blockID; + this.customBiomeDecorator.treesPerChunk = 3; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.outbackPerChunk = 10; + this.customBiomeDecorator.deadBushPerChunk = 7; + this.customBiomeDecorator.tinyCactiPerChunk = 2; + this.customBiomeDecorator.bushesPerChunk = 5; + this.customBiomeDecorator.quicksandPerChunk = 1; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenOutbackShrub(0,0) : new WorldGenOutbackTree()); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPasture.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPasture.java new file mode 100644 index 000000000..2c8e4ec0b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPasture.java @@ -0,0 +1,55 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenPasture extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenPasture(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 0; + this.customBiomeDecorator.grassPerChunk = 999; + this.customBiomeDecorator.flowersPerChunk = -999; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return new WorldGenTallGrass(mod_BiomesOPlenty.barley.blockID, 0); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return this.worldGeneratorBigTree; + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 15259456; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 13166666; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPlainsNew.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPlainsNew.java new file mode 100644 index 000000000..c02a8fd97 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPlainsNew.java @@ -0,0 +1,34 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenPlainsNew extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenPlainsNew(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = 4; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.tinyFlowersPerChunk = 1; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPrairie.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPrairie.java new file mode 100644 index 000000000..adb13fbdf --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPrairie.java @@ -0,0 +1,41 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenPrairie; + +public class BiomeGenPrairie extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenPrairie(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 1; + this.customBiomeDecorator.grassPerChunk = 999; + this.customBiomeDecorator.whiteFlowersPerChunk = 45; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenPrairie(false); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return (par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : (par1Random.nextInt(3) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1))); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPromisedLand.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPromisedLand.java new file mode 100644 index 000000000..6b52d4a72 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenPromisedLand.java @@ -0,0 +1,115 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenPromisedTree; +import tdwp_ftw.biomesop.worldgen.WorldGenPromisedTree2; +import tdwp_ftw.biomesop.worldgen.WorldGenPromisedTree3; +import tdwp_ftw.biomesop.worldgen.WorldGenPromisedShrub; +import net.minecraft.world.gen.feature.WorldGenMinable; + +public class BiomeGenPromisedLand extends BiomeGenBase +{ + private WorldGenerator theWorldGenerator; + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenPromisedLand(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.topBlock = (byte)mod_BiomesOPlenty.holyGrass.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.holyStone.blockID; + this.customBiomeDecorator.treesPerChunk = 8; + this.customBiomeDecorator.grassPerChunk = -999; + this.customBiomeDecorator.holyTallGrassPerChunk = 50; + this.customBiomeDecorator.promisedWillowPerChunk = 80; + this.customBiomeDecorator.pinkFlowersPerChunk = 6; + this.customBiomeDecorator.glowFlowersPerChunk = 3; + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.spawnableMonsterList.clear(); + this.spawnableCaveCreatureList.clear(); + this.customBiomeDecorator.generatePumpkins = false; + this.theWorldGenerator = new WorldGenMinable(Block.waterMoving.blockID, 8); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + 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)))); + } + + /** + * 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 (var6 = 0; var6 < var5; ++var6) + { + var7 = par3 + par2Random.nextInt(16); + var8 = par2Random.nextInt(30) + 30; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, mod_BiomesOPlenty.amethystOre.blockID, 0, 2); + } + } + + for (var5 = 0; var5 < 12; ++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 (mod_BiomesOPlenty.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/tdwp_ftw/biomesop/biomes/BiomeGenQuagmire.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenQuagmire.java new file mode 100644 index 000000000..04025d573 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenQuagmire.java @@ -0,0 +1,83 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree; + +public class BiomeGenQuagmire extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenQuagmire(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.topBlock = (byte)mod_BiomesOPlenty.mud.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.mud.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 0; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.waterColorMultiplier = 13390080; + this.customBiomeDecorator.generateQuagmire = true; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenDeadTree(false); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 10390377; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 10390377; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 12436670; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenRainforest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenRainforest.java new file mode 100644 index 000000000..2e2e80e1a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenRainforest.java @@ -0,0 +1,66 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityOcelot; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mobs.EntityJungleSpider; +import tdwp_ftw.biomesop.worldgen.WorldGenRainforestTree1; + +public class BiomeGenRainforest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenRainforest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 14; + this.customBiomeDecorator.grassPerChunk = 25; + this.customBiomeDecorator.pinkFlowersPerChunk = 2; + this.customBiomeDecorator.flowersPerChunk = 25; + this.customBiomeDecorator.rosesPerChunk = 10; + this.customBiomeDecorator.mushroomsPerChunk = 25; + this.customBiomeDecorator.orangeFlowersPerChunk = 6; + this.customBiomeDecorator.generatePumpkins = false; + this.spawnableMonsterList.add(new SpawnListEntry(EntityOcelot.class, 2, 1, 1)); + this.spawnableMonsterList.add(new SpawnListEntry(EntityJungleSpider.class, 12, 6, 6)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(15) == 0 ? this.worldGeneratorForest : (par1Random.nextInt(5) == 0 ? this.worldGeneratorBigTree : new WorldGenRainforestTree1(false))); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 1759340; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 1368687; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenRedwoodForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenRedwoodForest.java new file mode 100644 index 000000000..37cd02c97 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenRedwoodForest.java @@ -0,0 +1,45 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenRedwoodTree; +import tdwp_ftw.biomesop.worldgen.WorldGenRedwoodTree2; +import tdwp_ftw.biomesop.worldgen.WorldGenRedwood1; +import tdwp_ftw.biomesop.worldgen.WorldGenRedwood2; + +public class BiomeGenRedwoodForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenRedwoodForest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 16; + this.customBiomeDecorator.bushesPerChunk = 4; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + //return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenRedwood2() : new WorldGenRedwood1()); + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenRedwoodTree(false) : new WorldGenRedwoodTree2(false)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSacredSprings.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSacredSprings.java new file mode 100644 index 000000000..948071118 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSacredSprings.java @@ -0,0 +1,102 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mobs.EntityJungleSpider; + +public class BiomeGenSacredSprings extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSacredSprings(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 30; + this.customBiomeDecorator.grassPerChunk = 4; + this.customBiomeDecorator.waterlilyPerChunk = 5; + this.customBiomeDecorator.violetsPerChunk = 1; + this.customBiomeDecorator.generatePumpkins = false; + this.spawnableMonsterList.add(new SpawnListEntry(EntityJungleSpider.class, 12, 6, 6)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return 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(75); + + 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 == Block.dirt.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.waterMoving.blockID, 0, 2); + } + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 39259; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 39259; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 1995007; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenSavanna.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSavanna.java new file mode 100644 index 000000000..35395070b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSavanna.java @@ -0,0 +1,45 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenAcacia; + +public class BiomeGenSavanna extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSavanna(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.purpleFlowersPerChunk = 10; + this.customBiomeDecorator.tinyFlowersPerChunk = 2; + this.customBiomeDecorator.grassPerChunk = 25; + this.customBiomeDecorator.generatePumpkins = false; + } + +/** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenShrub(0, 0) : new WorldGenAcacia(false)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenScrubland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenScrubland.java new file mode 100644 index 000000000..8f1389859 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenScrubland.java @@ -0,0 +1,43 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenScrubland; + +public class BiomeGenScrubland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenScrubland(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 7; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.highGrassPerChunk = 2; + this.customBiomeDecorator.grassPerChunk = 30; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenShrub(0, 0) : new WorldGenScrubland(false)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(5) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 0) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSeasonalForest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSeasonalForest.java new file mode 100644 index 000000000..fc94d32a3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSeasonalForest.java @@ -0,0 +1,66 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenAutumn; +import tdwp_ftw.biomesop.worldgen.WorldGenAutumn2; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree2; +import tdwp_ftw.biomesop.worldgen.WorldGenMaple; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; + +public class BiomeGenSeasonalForest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSeasonalForest(int par1) + { + super(par1); + this.spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 5, 4, 4)); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 20; + this.customBiomeDecorator.grassPerChunk = 8; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.toadstoolsPerChunk = 4; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenAutumn2(false) : (par1Random.nextInt(3) == 0 ? new WorldGenAutumn(false) : (par1Random.nextInt(3) == 0 ? new WorldGenMaple(false) : (par1Random.nextInt(5) == 0 ? new WorldGenDeadTree2(false) : this.worldGeneratorTrees)))); + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 11781186; + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 12502092; + //return 12502595; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShield.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShield.java new file mode 100644 index 000000000..0a67e6acd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShield.java @@ -0,0 +1,69 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.World; +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; + +public class BiomeGenShield extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenShield(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 7; + this.customBiomeDecorator.grassPerChunk = 12; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.gravelPerChunk = 4; + this.customBiomeDecorator.gravelPerChunk2 = 4; + this.customBiomeDecorator.generateStoneInGrass2 = true; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenShrub(0,0) : new WorldGenTaiga5(false)); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 6586168; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 7902787; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShore.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShore.java new file mode 100644 index 000000000..0c8bd9d75 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShore.java @@ -0,0 +1,12 @@ +package tdwp_ftw.biomesop.biomes; + +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenShore extends BiomeGenBase +{ + public BiomeGenShore(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShrubland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShrubland.java new file mode 100644 index 000000000..e29ce944e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenShrubland.java @@ -0,0 +1,43 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenShrubland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenShrubland(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 0; + this.customBiomeDecorator.flowersPerChunk = 0; + this.customBiomeDecorator.grassPerChunk = 5; + this.customBiomeDecorator.bushesPerChunk = 7; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenShrub(0, 0); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSnowyWoods.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSnowyWoods.java new file mode 100644 index 000000000..016ad40d3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSnowyWoods.java @@ -0,0 +1,87 @@ +package tdwp_ftw.biomesop.biomes; + +import java.awt.Color; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree2; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; + +public class BiomeGenSnowyWoods extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSnowyWoods(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 2; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.reedsPerChunk = -999; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(6) == 0 ? new WorldGenDeadTree2(false) : (par1Random.nextInt(3) == 0 ? new WorldGenTaiga5(false): new WorldGenDeadTree(false))); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 11176526; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 11903827; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 9873591; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenSpruceWoods.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSpruceWoods.java new file mode 100644 index 000000000..081c9c2a5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSpruceWoods.java @@ -0,0 +1,36 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTaiga2; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; +import tdwp_ftw.biomesop.worldgen.WorldGenLarch1; +import tdwp_ftw.biomesop.worldgen.WorldGenLarch2; + +public class BiomeGenSpruceWoods extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSpruceWoods(int par1) + { + super(par1); + this.spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 8, 4, 4)); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 6; + this.customBiomeDecorator.sproutsPerChunk = 3; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenTaiga5(false) : new WorldGenTaiga2(false)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSteppe.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSteppe.java new file mode 100644 index 000000000..f0b6ab6cd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSteppe.java @@ -0,0 +1,46 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenSteppe extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSteppe(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = 15; + this.customBiomeDecorator.deadBushPerChunk = 7; + this.customBiomeDecorator.tinyCactiPerChunk = 1; + this.customBiomeDecorator.quicksandPerChunk = 1; + this.customBiomeDecorator.steppePerChunk = 6; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return (par1Random.nextInt(8) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : (par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1))); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 13413215; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSwampNew.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSwampNew.java new file mode 100644 index 000000000..6670bf9d8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSwampNew.java @@ -0,0 +1,79 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.World; +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; +import tdwp_ftw.biomesop.worldgen.WorldGenLog; + +public class BiomeGenSwampNew extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSwampNew(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 4; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.deadBushPerChunk = 1; + this.customBiomeDecorator.mushroomsPerChunk = 8; + this.customBiomeDecorator.reedsPerChunk = 10; + this.customBiomeDecorator.clayPerChunk = 1; + this.customBiomeDecorator.waterlilyPerChunk = 4; + this.customBiomeDecorator.mudPerChunk = 9; + this.customBiomeDecorator.mudPerChunk2 = 9; + this.waterColorMultiplier = 14745456; + this.spawnableMonsterList.add(new SpawnListEntry(EntitySlime.class, 1, 1, 1)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenLog() : new WorldGenWillow()); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + double var1 = (double)this.getFloatTemperature(); + double var3 = (double)this.getFloatRainfall(); + return ((ColorizerGrass.getGrassColor(var1, var3) & 16711422) + 5115470) / 2; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + double var1 = (double)this.getFloatTemperature(); + double var3 = (double)this.getFloatRainfall(); + return ((ColorizerFoliage.getFoliageColor(var1, var3) & 16711422) + 5115470) / 2; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSwampwoods.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSwampwoods.java new file mode 100644 index 000000000..2d9dcf689 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenSwampwoods.java @@ -0,0 +1,84 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenMarsh; +import tdwp_ftw.biomesop.worldgen.WorldGenCypress; +import net.minecraft.world.gen.feature.WorldGenShrub; + +public class BiomeGenSwampwoods extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenSwampwoods(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 12; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.highGrassPerChunk = 10; + this.customBiomeDecorator.mudPerChunk = 2; + this.customBiomeDecorator.mudPerChunk2 = 2; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.algaePerChunk = 2; + this.customBiomeDecorator.waterlilyPerChunk = 4; + this.customBiomeDecorator.generatePumpkins = false; + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMarsh var5 = new WorldGenMarsh(); + + for (int var6 = 0; var6 < 5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 62; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenShrub(0,0) : new WorldGenCypress(false)); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 1660473; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 2324303; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTaigaNew.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTaigaNew.java new file mode 100644 index 000000000..a3612f1ff --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTaigaNew.java @@ -0,0 +1,48 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenTaiga1; +import net.minecraft.world.gen.feature.WorldGenTaiga2; +import tdwp_ftw.biomesop.worldgen.WorldGenNorwaySpruce1; +import tdwp_ftw.biomesop.worldgen.WorldGenNorwaySpruce2; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenTaigaNew extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenTaigaNew(int par1) + { + super(par1); + this.spawnableCreatureList.add(new SpawnListEntry(EntityWolf.class, 8, 4, 4)); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 1; + this.customBiomeDecorator.violetsPerChunk = 1; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenTaiga1() : new WorldGenTaiga2(false)); + //return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenNorwaySpruce1() : new WorldGenNorwaySpruce2()); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTemperateRainforest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTemperateRainforest.java new file mode 100644 index 000000000..7a76f56ac --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTemperateRainforest.java @@ -0,0 +1,81 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraft.world.gen.feature.WorldGenShrub; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; +import tdwp_ftw.biomesop.worldgen.WorldGenTemperate; +import tdwp_ftw.biomesop.worldgen.WorldGenThickTree; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow; +import tdwp_ftw.biomesop.worldgen.WorldGenGrandFir1; +import tdwp_ftw.biomesop.worldgen.WorldGenGrandFir2; +import tdwp_ftw.biomesop.worldgen.WorldGenAlaskanCedar1; +import tdwp_ftw.biomesop.worldgen.WorldGenAlaskanCedar2; + +public class BiomeGenTemperateRainforest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenTemperateRainforest(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 22; + this.customBiomeDecorator.grassPerChunk = 25; + this.customBiomeDecorator.generatePumpkins = false; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + //return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenGrandFir1() : (par1Random.nextInt(4) == 0 ? new WorldGenAlaskanCedar2() : (par1Random.nextInt(8) == 0 ? new WorldGenAlaskanCedar1() : (par1Random.nextInt(2) == 0 ? new WorldGenShrub(0,0) : new WorldGenGrandFir2())))); + return (WorldGenerator)(par1Random.nextInt(10) == 0 ? new WorldGenWillow() : (par1Random.nextInt(6) == 0 ? new WorldGenThickTree(false) : (par1Random.nextInt(2) == 0 ? new WorldGenTemperate(false) : new WorldGenShrub(0, 0)))); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return (par1Random.nextInt(6) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 1) : (par1Random.nextInt(2) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : (par1Random.nextInt(4) == 0 ? new WorldGenTallGrass(mod_BiomesOPlenty.mediumGrass.blockID, 1) : new WorldGenTallGrass(mod_BiomesOPlenty.shortGrass.blockID, 1)))); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 11981671; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 12311907; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenThicket.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenThicket.java new file mode 100644 index 000000000..b87303bb9 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenThicket.java @@ -0,0 +1,51 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class BiomeGenThicket extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenThicket(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 17; + this.customBiomeDecorator.grassPerChunk = 1; + this.customBiomeDecorator.thornsPerChunk = 25; + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? this.worldGeneratorTrees : new WorldGenShrub(0, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTropicalRainforest.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTropicalRainforest.java new file mode 100644 index 000000000..c9bf53356 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTropicalRainforest.java @@ -0,0 +1,111 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityOcelot; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mobs.EntityJungleSpider; +import tdwp_ftw.biomesop.worldgen.WorldGenRainforest1; +import tdwp_ftw.biomesop.worldgen.WorldGenRainforest2; + +public class BiomeGenTropicalRainforest extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenTropicalRainforest(int par1) + { + super(par1); + this.spawnableMonsterList.add(new SpawnListEntry(EntityOcelot.class, 2, 1, 1)); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 12; + this.customBiomeDecorator.grassPerChunk = 7; + this.customBiomeDecorator.highGrassPerChunk = 4; + this.customBiomeDecorator.reedsPerChunk = 10; + this.customBiomeDecorator.waterlilyPerChunk = 2; + this.customBiomeDecorator.orangeFlowersPerChunk = 10; + this.customBiomeDecorator.generatePumpkins = false; + this.customBiomeDecorator.generateMelons = true; + this.customBiomeDecorator.sproutsPerChunk = 2; + this.customBiomeDecorator.quicksandPerChunk = 3; + this.spawnableMonsterList.add(new SpawnListEntry(EntityJungleSpider.class, 12, 6, 6)); + this.waterColorMultiplier = 6160128; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenRainforest2() : new WorldGenRainforest1(false)); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + int var5 = 3 + par2Random.nextInt(6); + + for (int var6 = 0; var6 < var5; ++var6) + { + int var7 = par3 + par2Random.nextInt(16); + int var8 = par2Random.nextInt(28) + 4; + int var9 = par4 + par2Random.nextInt(16); + int var10 = par1World.getBlockId(var7, var8, var9); + + if (var10 == Block.stone.blockID) + { + par1World.setBlockAndMetadataWithNotify(var7, var8, var9, Block.oreEmerald.blockID, 0, 2); + } + } + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 11002176; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 8970560; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 12971089; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenTropics.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTropics.java new file mode 100644 index 000000000..0ac2adb95 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTropics.java @@ -0,0 +1,72 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mobs.EntityJungleSpider; +import tdwp_ftw.biomesop.worldgen.WorldGenPalmTree1; +import tdwp_ftw.biomesop.worldgen.WorldGenPalmTree3; +import tdwp_ftw.biomesop.worldgen.WorldGenPalm1; +import tdwp_ftw.biomesop.worldgen.WorldGenPalm2; + +public class BiomeGenTropics extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenTropics(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 8; + this.customBiomeDecorator.grassPerChunk = 7; + this.customBiomeDecorator.flowersPerChunk = 10; + this.customBiomeDecorator.sandPerChunk = 50; + this.customBiomeDecorator.sandPerChunk2 = 50; + this.customBiomeDecorator.orangeFlowersPerChunk = 10; + this.customBiomeDecorator.whiteFlowersPerChunk = 4; + this.customBiomeDecorator.generatePumpkins = false; + this.spawnableMonsterList.add(new SpawnListEntry(EntityJungleSpider.class, 12, 6, 6)); + this.spawnableCreatureList.clear(); + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(3) == 0 ? new WorldGenPalmTree1() : new WorldGenPalmTree3()); + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 3333631; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenTundra.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTundra.java new file mode 100644 index 000000000..f87305c59 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenTundra.java @@ -0,0 +1,37 @@ +package tdwp_ftw.biomesop.biomes; + +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeGenTundra extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenTundra(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = -999; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 11176526; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 11903827; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenVolcano.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenVolcano.java new file mode 100644 index 000000000..4ea27c862 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenVolcano.java @@ -0,0 +1,64 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenVolcano; + +public class BiomeGenVolcano extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenVolcano(int par1) + { + super(par1); + this.spawnableCreatureList.clear(); + this.topBlock = (byte)mod_BiomesOPlenty.ashStone.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.ashStone.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 1; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.grassPerChunk = -999; + this.customBiomeDecorator.lavaLakesPerChunk = 50; + this.customBiomeDecorator.generateAsh = true; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return new WorldGenVolcano(); + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 8026746; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenWasteland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenWasteland.java new file mode 100644 index 000000000..ee0cca2dc --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenWasteland.java @@ -0,0 +1,72 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; +import java.awt.Color; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.SpawnListEntry; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenSpire; + +public class BiomeGenWasteland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenWasteland(int par1) + { + super(par1); + this.topBlock = (byte)mod_BiomesOPlenty.driedDirt.blockID; + this.fillerBlock = (byte)mod_BiomesOPlenty.driedDirt.blockID; + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = -999; + this.customBiomeDecorator.deadGrassPerChunk = 14; + this.waterColorMultiplier = 15073024; + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 10330232; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 10067541; + } + + /** + * takes temperature, returns color + */ + public int getSkyColorByTemp(float par1) + { + if (mod_BiomesOPlenty.skyColors = true) + { + return 10465942; + } + 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/tdwp_ftw/biomesop/biomes/BiomeGenWetland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenWetland.java new file mode 100644 index 000000000..e98d9bf59 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenWetland.java @@ -0,0 +1,92 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.World; +import net.minecraft.block.Block; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenTallGrass; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga5; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow1; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow2; +import tdwp_ftw.biomesop.worldgen.WorldGenLarch1; +import tdwp_ftw.biomesop.worldgen.WorldGenLarch2; +import tdwp_ftw.biomesop.worldgen.WorldGenMoss; + +public class BiomeGenWetland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenWetland(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 10; + this.customBiomeDecorator.grassPerChunk = 10; + this.customBiomeDecorator.flowersPerChunk = -999; + this.customBiomeDecorator.mushroomsPerChunk = 5; + this.customBiomeDecorator.toadstoolsPerChunk = 1; + this.customBiomeDecorator.reedsPerChunk = 15; + this.customBiomeDecorator.clayPerChunk = 2; + this.customBiomeDecorator.sandPerChunk = -999; + this.customBiomeDecorator.sandPerChunk2 = -999; + this.customBiomeDecorator.mudPerChunk = 5; + this.customBiomeDecorator.mudPerChunk2 = 5; + this.customBiomeDecorator.waterlilyPerChunk = 6; + this.customBiomeDecorator.cattailsPerChunk = 20; + this.customBiomeDecorator.blueFlowersPerChunk = 6; + this.spawnableCreatureList.clear(); + this.spawnableWaterCreatureList.clear(); + this.waterColorMultiplier = 6512772; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + //return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenWillow2() : (par1Random.nextInt(4) == 0 ? new WorldGenLarch1() : (par1Random.nextInt(2) == 0 ? new WorldGenLarch2() : new WorldGenWillow1()))); + return (WorldGenerator)(par1Random.nextInt(2) == 0 ? new WorldGenTaiga5(false) : new WorldGenWillow()); + } + + public void decorate(World par1World, Random par2Random, int par3, int par4) + { + super.decorate(par1World, par2Random, par3, par4); + WorldGenMoss var5 = new WorldGenMoss(); + + for (int var6 = 0; var6 < 20; ++var6) + { + int var7 = par3 + par2Random.nextInt(16) + 8; + byte var8 = 58; + int var9 = par4 + par2Random.nextInt(16) + 8; + var5.generate(par1World, par2Random, var7, var8, var9); + } + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForGrass(Random par1Random) + { + return par1Random.nextInt(6) == 0 ? new WorldGenTallGrass(Block.tallGrass.blockID, 2) : new WorldGenTallGrass(Block.tallGrass.blockID, 1); + } + + /** + * Provides the basic grass color based on the biome temperature and rainfall + */ + public int getBiomeGrassColor() + { + return 5935967; + } + + /** + * Provides the basic foliage color based on the biome temperature and rainfall + */ + public int getBiomeFoliageColor() + { + return 5215831; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenWoodland.java b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenWoodland.java new file mode 100644 index 000000000..b430a7c7a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/biomes/BiomeGenWoodland.java @@ -0,0 +1,30 @@ +package tdwp_ftw.biomesop.biomes; + +import java.util.Random; + +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenLog; + +public class BiomeGenWoodland extends BiomeGenBase +{ + private BiomeDecoratorBOP customBiomeDecorator; + + public BiomeGenWoodland(int par1) + { + super(par1); + this.theBiomeDecorator = new BiomeDecoratorBOP(this); + this.customBiomeDecorator = (BiomeDecoratorBOP)theBiomeDecorator; + this.customBiomeDecorator.treesPerChunk = 9; + this.customBiomeDecorator.grassPerChunk = 7; + this.customBiomeDecorator.toadstoolsPerChunk = 3; + } + + /** + * Gets a WorldGen appropriate for this biome. + */ + public WorldGenerator getRandomWorldGenForTrees(Random par1Random) + { + return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenLog() : (par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : this.worldGeneratorTrees)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaLeaves.java new file mode 100644 index 000000000..3be3252c8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaLeaves.java @@ -0,0 +1,331 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAcaciaLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"acacia"}; + int[] adjacentTreeBlocks; + + public BlockAcaciaLeaves(int par1) + { + super(par1, Material.leaves, false); + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerFoliage.getFoliageColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return (par1 & 3) == 1 ? ColorizerFoliage.getFoliageColorPine() : ((par1 & 3) == 2 ? ColorizerFoliage.getFoliageColorBirch() : ColorizerFoliage.getFoliageColorBasic()); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = 0; + int var7 = 0; + int var8 = 0; + + for (int var9 = -1; var9 <= 1; ++var9) + { + for (int var10 = -1; var10 <= 1; ++var10) + { + int var11 = par1IBlockAccess.getBiomeGenForCoords(par2 + var10, par4 + var9).getBiomeFoliageColor(); + var6 += (var11 & 16711680) >> 16; + var7 += (var11 & 65280) >> 8; + var8 += var11 & 255; + } + } + + return (var6 / 9 & 255) << 16 | (var7 / 9 & 255) << 8 | var8 / 9 & 255; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte b0 = 1; + int j1 = b0 + 1; + + if (par1World.checkChunksExist(par2 - j1, par3 - j1, par4 - j1, par2 + j1, par3 + j1, par4 + j1)) + { + for (int k1 = -b0; k1 <= b0; ++k1) + { + for (int l1 = -b0; l1 <= b0; ++l1) + { + for (int i2 = -b0; i2 <= b0; ++i2) + { + int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2); + + if (Block.blocksList[j2] != null) + { + Block.blocksList[j2].beginLeavesDecay(par1World, par2 + k1, par3 + l1, par4 + i2); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.acaciaWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.acaciaLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 & -9, 4); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockAndMetadataWithNotify(par2, par3, par4, this.blockID, 0, 2); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.acaciaSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.acaciaLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + //@Override + //public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + //return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + //} + + @Override + public void func_94332_a(IconRegister par1IconRegister) + { + this.field_94336_cN = (isOpaqueCube() ? par1IconRegister.func_94245_a("BiomesOPlenty:acaciaLeavesOpaque") : par1IconRegister.func_94245_a("BiomesOPlenty:acaciaLeaves")); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaLog.java new file mode 100644 index 000000000..8c030406e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAcaciaLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"acacia"}; + + public BlockAcaciaLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 44; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.acaciaWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.acaciaLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 44))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaPlank.java new file mode 100644 index 000000000..db0514b67 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockAcaciaPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"acacia"}; + + public BlockAcaciaPlank(int par1) + { + super(par1, 45, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaSapling.java new file mode 100644 index 000000000..f9fd66f45 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaSapling.java @@ -0,0 +1,154 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.CreativeTabsBOP; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenAcacia; +import net.minecraft.util.AxisAlignedBB; + +public class BlockAcaciaSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"acacia"}; + + public BlockAcaciaSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenAcacia(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaSlab.java new file mode 100644 index 000000000..0cc2ece83 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaSlab.java @@ -0,0 +1,106 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.CreativeTabsBOP; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAcaciaSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"acacia"}; + + public BlockAcaciaSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 45; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.acaciaSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.acaciaSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.acaciaDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.acaciaSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaStairs.java new file mode 100644 index 000000000..7c512bab3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAcaciaStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockAcaciaStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockAcaciaStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setBurnProperties(this.blockID, 5, 20); + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAlgae.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAlgae.java new file mode 100644 index 000000000..283dd8ce4 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAlgae.java @@ -0,0 +1,111 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFlower; +import net.minecraft.block.material.Material; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityBoat; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAlgae extends BlockFlower +{ + public BlockAlgae(int par1, int par2) + { + super(par1, par2); + float var3 = 0.5F; + float var4 = 0.015625F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 23; + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerFoliage.getFoliageColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return (par1 & 3) == 1 ? ColorizerFoliage.getFoliageColorPine() : ((par1 & 3) == 2 ? ColorizerFoliage.getFoliageColorBirch() : ColorizerFoliage.getFoliageColorBasic()); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = 0; + int var7 = 0; + int var8 = 0; + + for (int var9 = -1; var9 <= 1; ++var9) + { + for (int var10 = -1; var10 <= 1; ++var10) + { + int var11 = par1IBlockAccess.getBiomeGenForCoords(par2 + var10, par4 + var9).getBiomeFoliageColor(); + var6 += (var11 & 16711680) >> 16; + var7 += (var11 & 65280) >> 8; + var8 += var11 & 255; + } + } + + return (var6 / 9 & 255) << 16 | (var7 / 9 & 255) << 8 | var8 / 9 & 255; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return 0; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 0; + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.waterStill.blockID; + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return par3 >= 0 && par3 < 256 ? par1World.getBlockMaterial(par2, par3 - 1, par4) == Material.water && par1World.getBlockMetadata(par2, par3 - 1, par4) == 0 : false; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAmethystBlock.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAmethystBlock.java new file mode 100644 index 000000000..47a9c2a62 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAmethystBlock.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockAmethystBlock extends Block +{ + public BlockAmethystBlock(int par1, int par2) + { + super(par1, par2, Material.iron); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.amethystBlock.blockID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAmethystOre.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAmethystOre.java new file mode 100644 index 000000000..81b9a1c95 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAmethystOre.java @@ -0,0 +1,75 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import java.util.Random; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockAmethystOre extends Block +{ + public BlockAmethystOre(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.amethyst.itemID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1 + par1Random.nextInt(2); + } + + /** + * Returns the usual quantity dropped by the block plus a bonus of 1 to 'i' (inclusive). + */ + public int quantityDroppedWithBonus(int par1, Random par2Random) + { + if (par1 > 0 && this.blockID != this.idDropped(0, par2Random, par1)) + { + int var3 = par2Random.nextInt(par1 + 2) - 1; + + if (var3 < 0) + { + var3 = 0; + } + + return this.quantityDropped(par2Random) * (var3 + 1); + } + else + { + return this.quantityDropped(par2Random); + } + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, par7); + + if (this.idDropped(par5, par1World.rand, par7) != this.blockID) + { + int var8 = 0; + + var8 = MathHelper.getRandomIntegerInRange(par1World.rand, 1, 4); + + this.dropXpOnBlockBreak(par1World, par2, par3, par4, var8); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleLeaves.java new file mode 100644 index 000000000..6fc058108 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleLeaves.java @@ -0,0 +1,290 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAppleLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"apple"}; + int[] adjacentTreeBlocks; + + public BlockAppleLeaves(int par1) + { + super(par1, Material.leaves, false); + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte b0 = 1; + int j1 = b0 + 1; + + if (par1World.checkChunksExist(par2 - j1, par3 - j1, par4 - j1, par2 + j1, par3 + j1, par4 + j1)) + { + for (int k1 = -b0; k1 <= b0; ++k1) + { + for (int l1 = -b0; l1 <= b0; ++l1) + { + for (int i2 = -b0; i2 <= b0; ++i2) + { + int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2); + + if (Block.blocksList[j2] != null) + { + Block.blocksList[j2].beginLeavesDecay(par1World, par2 + k1, par3 + l1, par4 + i2); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == Block.wood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.appleLeaves.blockID || var15 == mod_BiomesOPlenty.appleLeavesFruitless.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 & -9, 4); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockAndMetadataWithNotify(par2, par3, par4, this.blockID, 0, 2); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.appleSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + + if ((par5 & 3) == 0 && par1World.rand.nextInt(2) == 0) + { + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(Item.appleRed, 1, 0)); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.appleLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public void func_94332_a(IconRegister par1IconRegister) + { + this.field_94336_cN = (isOpaqueCube() ? par1IconRegister.func_94245_a("BiomesOPlenty:appleLeavesOpaque") : par1IconRegister.func_94245_a("BiomesOPlenty:appleLeaves")); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleLeavesFruitless.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleLeavesFruitless.java new file mode 100644 index 000000000..d043fb2a9 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleLeavesFruitless.java @@ -0,0 +1,289 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAppleLeavesFruitless extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"apple"}; + int[] adjacentTreeBlocks; + + public BlockAppleLeavesFruitless(int par1) + { + super(par1, Material.leaves, false); + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte b0 = 1; + int j1 = b0 + 1; + + if (par1World.checkChunksExist(par2 - j1, par3 - j1, par4 - j1, par2 + j1, par3 + j1, par4 + j1)) + { + for (int k1 = -b0; k1 <= b0; ++k1) + { + for (int l1 = -b0; l1 <= b0; ++l1) + { + for (int i2 = -b0; i2 <= b0; ++i2) + { + int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2); + + if (Block.blocksList[j2] != null) + { + Block.blocksList[j2].beginLeavesDecay(par1World, par2 + k1, par3 + l1, par4 + i2); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == Block.wood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.appleLeavesFruitless.blockID || var15 == mod_BiomesOPlenty.appleLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 & -9, 4); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockAndMetadataWithNotify(par2, par3, par4, this.blockID, 0, 2); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.appleSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + + if ((par5 & 3) == 0 && par1World.rand.nextInt(100) == 0) + { + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(Item.appleRed, 1, 0)); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.appleLeavesFruitless.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public void func_94332_a(IconRegister par1IconRegister) + { + this.field_94336_cN = (isOpaqueCube() ? par1IconRegister.func_94245_a("BiomesOPlenty:appleLeavesFruitlessOpaque") : par1IconRegister.func_94245_a("BiomesOPlenty:appleLeavesFruitless")); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleSapling.java new file mode 100644 index 000000000..9097a974e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAppleSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenApple; +import net.minecraft.util.AxisAlignedBB; + +public class BlockAppleSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"apple"}; + + public BlockAppleSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenApple(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAsh.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAsh.java new file mode 100644 index 000000000..b69ee2f53 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAsh.java @@ -0,0 +1,60 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAsh extends Block +{ + public BlockAsh(int par1, int par2) + { + super(par1, par2, Material.sand); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + float var5 = 0.125F; + return AxisAlignedBB.getAABBPool().addOrModifyAABBInPool((double)par2, (double)par3, (double)par4, (double)(par2 + 1), (double)((float)(par3 + 1) - var5), (double)(par4 + 1)); + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + super.randomDisplayTick(par1World, par2, par3, par4, par5Random); + + if (par5Random.nextInt(2) == 0) + { + par1World.spawnParticle("smoke", (double)((float)par2 + par5Random.nextFloat()), (double)((float)par3 + 1.1F), (double)((float)par4 + par5Random.nextFloat()), 0.0D, 0.0D, 0.0D); + } + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.ashes.itemID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 4; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAshStone.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAshStone.java new file mode 100644 index 000000000..a4a41fec8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAshStone.java @@ -0,0 +1,39 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockAshStone extends Block +{ + public BlockAshStone(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public int getBlockColor() + { + return 12895428; + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return 12895428; + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + return 12895428; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAutumnLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAutumnLeaves.java new file mode 100644 index 000000000..5b1790712 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockAutumnLeaves.java @@ -0,0 +1,292 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockAutumnLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"autumn"}; + int[] adjacentTreeBlocks; + + public BlockAutumnLeaves(int par1) + { + super(par1, Material.leaves, false); + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte b0 = 1; + int j1 = b0 + 1; + + if (par1World.checkChunksExist(par2 - j1, par3 - j1, par4 - j1, par2 + j1, par3 + j1, par4 + j1)) + { + for (int k1 = -b0; k1 <= b0; ++k1) + { + for (int l1 = -b0; l1 <= b0; ++l1) + { + for (int i2 = -b0; i2 <= b0; ++i2) + { + int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2); + + if (Block.blocksList[j2] != null) + { + Block.blocksList[j2].beginLeavesDecay(par1World, par2 + k1, par3 + l1, par4 + i2); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == Block.wood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.autumnLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 & -9, 4); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockAndMetadataWithNotify(par2, par3, par4, this.blockID, 0, 2); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.yellowSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.autumnLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + //@Override + //public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + //return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + //} + + @Override + public void func_94332_a(IconRegister par1IconRegister) + { + this.field_94336_cN = (isOpaqueCube() ? par1IconRegister.func_94245_a("BiomesOPlenty:autumnLeavesOpaque") : par1IconRegister.func_94245_a("BiomesOPlenty:autumnLeaves")); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBamboo.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBamboo.java new file mode 100644 index 000000000..cae3129eb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBamboo.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; + +public class BlockBamboo extends Block +{ + public BlockBamboo(int par1, int par2) + { + super(par1, Material.plants); + this.blockIndexInTexture = par2; + float var3 = 0.15F; + this.setBurnProperties(this.blockID, 5, 5); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 1.0F, 0.5F + var3); + this.setTickRandomly(true); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.isAirBlock(par2, par3 + 1, par4)) + { + int var6; + + for (var6 = 1; par1World.getBlockId(par2, par3 - var6, par4) == this.blockID; ++var6) + { + ; + } + + if (var6 < 3) + { + int var7 = par1World.getBlockMetadata(par2, par3, par4); + + if (var7 == 15) + { + par1World.setBlockWithNotify(par2, par3 + 1, par4, this.blockID); + par1World.setBlockMetadataWithNotify(par2, par3, par4, 0); + } + else + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var7 + 1); + } + } + } + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + int var5 = par1World.getBlockId(par2, par3 - 1, par4); + if (var5 == this.blockID) + { + return true; + } + else if (var5 == Block.grass.blockID) + { + return true; + } + else + { + return false; + } + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + this.checkBlockCoordValid(par1World, par2, par3, par4); + } + + /** + * Checks if current block pos is valid, if not, breaks the block as dropable item. Used for reed and cactus. + */ + protected final void checkBlockCoordValid(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return this.canPlaceBlockAt(par1World, par2, par3, par4); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.bambooItem.itemID; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.bambooItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBambooLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBambooLeaves.java new file mode 100644 index 000000000..40f5e1a27 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBambooLeaves.java @@ -0,0 +1,287 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockBambooLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"bamboo"}; + int[] adjacentTreeBlocks; + + public BlockBambooLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.bambooLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.bamboo.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.bambooLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return Block.sapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.bambooLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBambooThatching.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBambooThatching.java new file mode 100644 index 000000000..f1810605b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBambooThatching.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockBambooThatching extends Block +{ + public BlockBambooThatching(int par1, int par2) + { + super(par1, par2, Material.wood); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.bambooThatching.blockID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBarley.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBarley.java new file mode 100644 index 000000000..5225a00f2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBarley.java @@ -0,0 +1,137 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockBarley extends Block +{ + protected BlockBarley(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.375F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 1.0F, 0.5F + var3); + } + + public BlockBarley(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 6; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.barleyItem.itemID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(5) == 0 ? 1 : 0; + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.barleyItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBlueFlower.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBlueFlower.java new file mode 100644 index 000000000..7468c1433 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBlueFlower.java @@ -0,0 +1,114 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockBlueFlower extends Block +{ + protected BlockBlueFlower(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockBlueFlower(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBlueLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBlueLeaves.java new file mode 100644 index 000000000..97f84c480 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBlueLeaves.java @@ -0,0 +1,292 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockBlueLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"magic"}; + int[] adjacentTreeBlocks; + + public BlockBlueLeaves(int par1) + { + super(par1, Material.leaves, false); + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte b0 = 1; + int j1 = b0 + 1; + + if (par1World.checkChunksExist(par2 - j1, par3 - j1, par4 - j1, par2 + j1, par3 + j1, par4 + j1)) + { + for (int k1 = -b0; k1 <= b0; ++k1) + { + for (int l1 = -b0; l1 <= b0; ++l1) + { + for (int i2 = -b0; i2 <= b0; ++i2) + { + int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2); + + if (Block.blocksList[j2] != null) + { + Block.blocksList[j2].beginLeavesDecay(par1World, par2 + k1, par3 + l1, par4 + i2); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.magicWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.blueLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 & -9, 4); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockAndMetadataWithNotify(par2, par3, par4, this.blockID, 0, 2); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.magicSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.blueLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + //@Override + //public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + //return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + //} + + @Override + public void func_94332_a(IconRegister par1IconRegister) + { + this.field_94336_cN = (isOpaqueCube() ? par1IconRegister.func_94245_a("BiomesOPlenty:blueLeavesOpaque") : par1IconRegister.func_94245_a("BiomesOPlenty:blueLeaves")); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBrownSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBrownSapling.java new file mode 100644 index 000000000..622fa687a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBrownSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenDeadTree2; +import net.minecraft.util.AxisAlignedBB; + +public class BlockBrownSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"brown"}; + + public BlockBrownSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenDeadTree2(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBush.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBush.java new file mode 100644 index 000000000..e089a7946 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockBush.java @@ -0,0 +1,121 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFlower; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockBush extends BlockFlower +{ + public BlockBush(int par1) + { + super(par1, Material.vine); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerGrass.getGrassColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return par1 == 0 ? 16777215 : ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var5 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + return var5 == 0 ? 16777215 : par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeGrassColor(); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.bushItem, 1, par6)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.bushItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCattail.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCattail.java new file mode 100644 index 000000000..1079137f8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCattail.java @@ -0,0 +1,118 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockCattail extends Block +{ + public BlockCattail(int par1, int par2) + { + super(par1, Material.plants); + this.blockIndexInTexture = par2; + float var3 = 0.375F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 1.0F, 0.5F + var3); + this.setTickRandomly(true); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + int var5 = par1World.getBlockId(par2, par3 - 1, par4); + return var5 != Block.grass.blockID ? false : (par1World.getBlockMaterial(par2 - 1, par3 - 1, par4) == Material.water ? true : (par1World.getBlockMaterial(par2 + 1, par3 - 1, par4) == Material.water ? true : (par1World.getBlockMaterial(par2, par3 - 1, par4 - 1) == Material.water ? true : par1World.getBlockMaterial(par2, par3 - 1, par4 + 1) == Material.water))); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + this.checkBlockCoordValid(par1World, par2, par3, par4); + } + + /** + * Checks if current block pos is valid, if not, breaks the block as dropable item. Used for reed and cactus. + */ + protected final void checkBlockCoordValid(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return this.canPlaceBlockAt(par1World, par2, par3, par4); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 6; + } + + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.cattailItem.itemID; + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.cattailItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryLog.java new file mode 100644 index 000000000..3a6d2b688 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockCherryLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"cherry"}; + + public BlockCherryLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 35; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.cherryWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.pinkLeaves.blockID || var12 == mod_BiomesOPlenty.whiteLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 35))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryPlank.java new file mode 100644 index 000000000..91e7d45b2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockCherryPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"cherry"}; + + public BlockCherryPlank(int par1) + { + super(par1, 36, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherrySlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherrySlab.java new file mode 100644 index 000000000..973a431ab --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherrySlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockCherrySlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"cherry"}; + + public BlockCherrySlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.setBurnProperties(this.blockID, 5, 20); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 36; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.cherrySingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.cherrySingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.cherryDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.cherrySingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryStairs.java new file mode 100644 index 000000000..44abc74aa --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCherryStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockCherryStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockCherryStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCragRock.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCragRock.java new file mode 100644 index 000000000..2d20c11d1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockCragRock.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockCragRock extends Block +{ + public BlockCragRock(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.cragRock.blockID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkLeaves.java new file mode 100644 index 000000000..eb41e149d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkLeaves.java @@ -0,0 +1,292 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockDarkLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"dark"}; + int[] adjacentTreeBlocks; + + public BlockDarkLeaves(int par1) + { + super(par1, Material.leaves, false); + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte b0 = 1; + int j1 = b0 + 1; + + if (par1World.checkChunksExist(par2 - j1, par3 - j1, par4 - j1, par2 + j1, par3 + j1, par4 + j1)) + { + for (int k1 = -b0; k1 <= b0; ++k1) + { + for (int l1 = -b0; l1 <= b0; ++l1) + { + for (int i2 = -b0; i2 <= b0; ++i2) + { + int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2); + + if (Block.blocksList[j2] != null) + { + Block.blocksList[j2].beginLeavesDecay(par1World, par2 + k1, par3 + l1, par4 + i2); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.darkWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.darkLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 & -9, 4); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockAndMetadataWithNotify(par2, par3, par4, this.blockID, 0, 2); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.darkSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.darkLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + //@Override + //public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + //return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + //} + + @Override + public void func_94332_a(IconRegister par1IconRegister) + { + this.field_94336_cN = (isOpaqueCube() ? par1IconRegister.func_94245_a("BiomesOPlenty:darkLeavesOpaque") : par1IconRegister.func_94245_a("BiomesOPlenty:darkLeaves")); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkLog.java new file mode 100644 index 000000000..a51efbcbd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockDarkLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"dark"}; + + public BlockDarkLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 37; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.darkWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.darkLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 37))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkPlank.java new file mode 100644 index 000000000..802c38589 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockDarkPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"dark"}; + + public BlockDarkPlank(int par1) + { + super(par1, 38, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkSapling.java new file mode 100644 index 000000000..a3176dffe --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkSapling.java @@ -0,0 +1,163 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenOminous1; +import tdwp_ftw.biomesop.worldgen.WorldGenOminous2; +import net.minecraft.util.AxisAlignedBB; + +public class BlockDarkSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"dark"}; + + public BlockDarkSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + int var99 = par5Random.nextInt(8); + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + var99 = par5Random.nextInt(8); + + if (var99 == 0) + { + var7 = new WorldGenOminous2(); + } + else + { + var7 = new WorldGenOminous1(false); + } + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkSlab.java new file mode 100644 index 000000000..15f41ce0f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkSlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockDarkSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"dark"}; + + public BlockDarkSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.setBurnProperties(this.blockID, 5, 20); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 38; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.darkSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.darkSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.darkDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.darkSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkStairs.java new file mode 100644 index 000000000..7294023b2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDarkStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockDarkStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockDarkStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadGrass.java new file mode 100644 index 000000000..e485fe52f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadGrass.java @@ -0,0 +1,144 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockDeadGrass extends Block +{ + protected BlockDeadGrass(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockDeadGrass(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == mod_BiomesOPlenty.driedDirt.blockID || par1 == Block.sand.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.deadGrass, 1, par6)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadLeaves.java new file mode 100644 index 000000000..c32cc5257 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadLeaves.java @@ -0,0 +1,292 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockBrownLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"dead"}; + int[] adjacentTreeBlocks; + + public BlockBrownLeaves(int par1) + { + super(par1, Material.leaves, false); + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte b0 = 1; + int j1 = b0 + 1; + + if (par1World.checkChunksExist(par2 - j1, par3 - j1, par4 - j1, par2 + j1, par3 + j1, par4 + j1)) + { + for (int k1 = -b0; k1 <= b0; ++k1) + { + for (int l1 = -b0; l1 <= b0; ++l1) + { + for (int i2 = -b0; i2 <= b0; ++i2) + { + int j2 = par1World.getBlockId(par2 + k1, par3 + l1, par4 + i2); + + if (Block.blocksList[j2] != null) + { + Block.blocksList[j2].beginLeavesDecay(par1World, par2 + k1, par3 + l1, par4 + i2); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == Block.wood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.deadLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 & -9, 4); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockAndMetadataWithNotify(par2, par3, par4, this.blockID, 0, 2); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.brownSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.deadLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + //@Override + //public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + //return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + //} + + @Override + public void func_94332_a(IconRegister par1IconRegister) + { + this.field_94336_cN = (isOpaqueCube() ? par1IconRegister.func_94245_a("BiomesOPlenty:deadLeavesOpaque") : par1IconRegister.func_94245_a("BiomesOPlenty:deadLeaves")); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadLog.java new file mode 100644 index 000000000..13e959380 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeadLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockDeadLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"dead"}; + + public BlockDeadLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 39; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.deadWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == Block.leaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 39))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeathbloom.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeathbloom.java new file mode 100644 index 000000000..10436e953 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDeathbloom.java @@ -0,0 +1,114 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockDeathbloom extends Block +{ + protected BlockDeathbloom(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockDeathbloom(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDesertGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDesertGrass.java new file mode 100644 index 000000000..1d438c1f7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDesertGrass.java @@ -0,0 +1,144 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockDesertGrass extends Block +{ + protected BlockDesertGrass(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockDesertGrass(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == mod_BiomesOPlenty.redRock.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.desertGrass, 1, par6)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDesertSprouts.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDesertSprouts.java new file mode 100644 index 000000000..2c44d7803 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDesertSprouts.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockDesertSprouts extends Block +{ + protected BlockDesertSprouts(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockDesertSprouts(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.sand.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDriedDirt.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDriedDirt.java new file mode 100644 index 000000000..f2d116796 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDriedDirt.java @@ -0,0 +1,39 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.World; + +public class BlockDriedDirt extends Block +{ + public BlockDriedDirt(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + super.randomDisplayTick(par1World, par2, par3, par4, par5Random); + + if (par5Random.nextInt(20) == 0) + { + par1World.spawnParticle("townaura", (double)((float)par2 + par5Random.nextFloat()), (double)((float)par3 + 1.1F), (double)((float)par4 + par5Random.nextFloat()), 0.0D, 0.0D, 0.0D); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDuneGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDuneGrass.java new file mode 100644 index 000000000..591b01e67 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockDuneGrass.java @@ -0,0 +1,114 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockDuneGrass extends Block +{ + protected BlockDuneGrass(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockDuneGrass(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.sand.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirLeaves.java new file mode 100644 index 000000000..7448e31dd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirLeaves.java @@ -0,0 +1,286 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockFirLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"fir"}; + int[] adjacentTreeBlocks; + + public BlockFirLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.firLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.firWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.firLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.firSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.firLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirLog.java new file mode 100644 index 000000000..fba33e1b7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockFirLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"fir"}; + + public BlockFirLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 46; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.firWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.firLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 46))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirPlank.java new file mode 100644 index 000000000..5296f6d92 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockFirPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"fir"}; + + public BlockFirPlank(int par1) + { + super(par1, 47, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirSapling.java new file mode 100644 index 000000000..56cba57d8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirSapling.java @@ -0,0 +1,152 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenTaiga9; +import net.minecraft.util.AxisAlignedBB; + +public class BlockFirSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"fir"}; + + public BlockFirSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + var7 = new WorldGenTaiga9(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirSlab.java new file mode 100644 index 000000000..a3df40bfb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirSlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockFirSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"fir"}; + + public BlockFirSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.setBurnProperties(this.blockID, 5, 20); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 47; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.firSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.firSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.firDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.firSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirStairs.java new file mode 100644 index 000000000..72a4716d6 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockFirStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockFirStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockFirStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setBurnProperties(this.blockID, 5, 20); + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerRed.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerRed.java new file mode 100644 index 000000000..d15782ff1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerRed.java @@ -0,0 +1,221 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockGiantFlowerRed extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"giantred"}; + int[] adjacentTreeBlocks; + + public BlockGiantFlowerRed(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.giantFlowerRed.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.giantFlowerStem.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.giantFlowerRed.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(10) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return Block.plantRed.blockID; + } + + public boolean isOpaqueCube() + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerStem.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerStem.java new file mode 100644 index 000000000..b77a1b91c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerStem.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockGiantFlowerStem extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"giantstem"}; + + public BlockGiantFlowerStem(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 48; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return 0; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.giantFlowerRed.blockID || var12 == mod_BiomesOPlenty.giantFlowerYellow.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 254 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 254 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 254 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 48))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerYellow.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerYellow.java new file mode 100644 index 000000000..605bb1e60 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGiantFlowerYellow.java @@ -0,0 +1,221 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockGiantFlowerYellow extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"giantyellow"}; + int[] adjacentTreeBlocks; + + public BlockGiantFlowerYellow(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.giantFlowerYellow.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.giantFlowerStem.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.giantFlowerYellow.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(10) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return Block.plantYellow.blockID; + } + + public boolean isOpaqueCube() + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGlowFlower.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGlowFlower.java new file mode 100644 index 000000000..9f7f3b714 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockGlowFlower.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockGlowFlower extends Block +{ + protected BlockGlowFlower(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockGlowFlower(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID || par1 == mod_BiomesOPlenty.holyGrass.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardDirt.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardDirt.java new file mode 100644 index 000000000..7d5ede120 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardDirt.java @@ -0,0 +1,19 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockHardDirt extends Block +{ + public BlockHardDirt(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardIce.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardIce.java new file mode 100644 index 000000000..ec81fb75a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardIce.java @@ -0,0 +1,16 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class BlockHardIce extends Block +{ + public BlockHardIce(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardSand.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardSand.java new file mode 100644 index 000000000..ca6a5f5a2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHardSand.java @@ -0,0 +1,19 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockHardSand extends Block +{ + public BlockHardSand(int par1, int par2) + { + super(par1, par2, Material.sand); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHighGrassBottom.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHighGrassBottom.java new file mode 100644 index 000000000..f025c88d5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHighGrassBottom.java @@ -0,0 +1,90 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFlower; +import net.minecraft.block.material.Material; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockHighGrassBottom extends BlockFlower +{ + public BlockHighGrassBottom(int par1) + { + super(par1, Material.vine); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerGrass.getGrassColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return par1 == 0 ? 16777215 : ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var5 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + return var5 == 0 ? 16777215 : par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeGrassColor(); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHighGrassTop.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHighGrassTop.java new file mode 100644 index 000000000..a9df8cdf8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHighGrassTop.java @@ -0,0 +1,64 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockFlower; +import net.minecraft.block.material.Material; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import net.minecraft.world.IBlockAccess; + +public class BlockHighGrassTop extends BlockFlower +{ + public BlockHighGrassTop(int par1) + { + super(par1, Material.vine); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == mod_BiomesOPlenty.highGrassBottom.blockID; + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerGrass.getGrassColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return par1 == 0 ? 16777215 : ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var5 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + return var5 == 0 ? 16777215 : par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeGrassColor(); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyGrass.java new file mode 100644 index 000000000..0c139d723 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyGrass.java @@ -0,0 +1,87 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockHolyGrass extends Block +{ + public BlockHolyGrass(int par1) + { + super(par1, Material.grass); + this.blockIndexInTexture = 28; + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + return par1 == 1 ? 29 : (par1 == 0 ? 27 : 28); + } + + /** + * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side + */ + public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + if (par5 == 1) + { + return 29; + } + else if (par5 == 0) + { + return 27; + } + else + { + Material var6 = par1IBlockAccess.getBlockMaterial(par2, par3 + 1, par4); + return var6 != Material.snow && var6 != Material.craftedSnow ? 28 : 28; + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + if (par1World.getBlockLightValue(par2, par3 + 1, par4) < 4 && Block.lightOpacity[par1World.getBlockId(par2, par3 + 1, par4)] > 2) + { + par1World.setBlockWithNotify(par2, par3, par4, mod_BiomesOPlenty.holyStone.blockID); + } + else if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9) + { + for (int var6 = 0; var6 < 4; ++var6) + { + int var7 = par2 + par5Random.nextInt(3) - 1; + int var8 = par3 + par5Random.nextInt(5) - 3; + int var9 = par4 + par5Random.nextInt(3) - 1; + int var10 = par1World.getBlockId(var7, var8 + 1, var9); + + if (par1World.getBlockId(var7, var8, var9) == mod_BiomesOPlenty.holyStone.blockID && par1World.getBlockLightValue(var7, var8 + 1, var9) >= 4 && Block.lightOpacity[var10] <= 2) + { + par1World.setBlockWithNotify(var7, var8, var9, mod_BiomesOPlenty.holyGrass.blockID); + } + } + } + } + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.holyStone.idDropped(0, par2Random, par3); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyLeaves.java new file mode 100644 index 000000000..f5e5debbb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyLeaves.java @@ -0,0 +1,287 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockHolyLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"holy"}; + int[] adjacentTreeBlocks; + + public BlockHolyLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.holyLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.holyWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.holyLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.holySapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.holyLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyLog.java new file mode 100644 index 000000000..a605519ef --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockHolyLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"holy"}; + + public BlockHolyLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 128; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.holyWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.holyLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 128))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyPlank.java new file mode 100644 index 000000000..26459f330 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockHolyPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"holy"}; + + public BlockHolyPlank(int par1) + { + super(par1, 129, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolySapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolySapling.java new file mode 100644 index 000000000..8953e650a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolySapling.java @@ -0,0 +1,161 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenPromisedTree; +import net.minecraft.util.AxisAlignedBB; + +public class BlockHolySapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"holy"}; + + public BlockHolySapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == mod_BiomesOPlenty.holyGrass.blockID; + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + var7 = new WorldGenPromisedTree(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolySlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolySlab.java new file mode 100644 index 000000000..9554a3746 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolySlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockHolySlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"holy"}; + + public BlockHolySlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 129; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.holySingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.holySingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.holyDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.holySingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyStairs.java new file mode 100644 index 000000000..99926ccfe --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockHolyStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockHolyStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyStone.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyStone.java new file mode 100644 index 000000000..2c9ea8002 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyStone.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockHolyStone extends Block +{ + public BlockHolyStone(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.holyStone.blockID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyTallGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyTallGrass.java new file mode 100644 index 000000000..66769f772 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHolyTallGrass.java @@ -0,0 +1,114 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockHolyTallGrass extends Block +{ + protected BlockHolyTallGrass(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockHolyTallGrass(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == mod_BiomesOPlenty.holyGrass.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHydrangea.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHydrangea.java new file mode 100644 index 000000000..40df9e474 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockHydrangea.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockHydrangea extends Block +{ + protected BlockHydrangea(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockHydrangea(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicLog.java new file mode 100644 index 000000000..0d0036830 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicLog.java @@ -0,0 +1,142 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMagicLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"magic"}; + + public BlockMagicLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 55; + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.magicWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.blueLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 55))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicPlank.java new file mode 100644 index 000000000..5dc0af5d9 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicPlank.java @@ -0,0 +1,28 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockMagicPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"magic"}; + + public BlockMagicPlank(int par1) + { + super(par1, 56, Material.wood); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicSapling.java new file mode 100644 index 000000000..d9a98ede0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenMystic2; +import net.minecraft.util.AxisAlignedBB; + +public class BlockMagicSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"magic"}; + + public BlockMagicSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenMystic2(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicSlab.java new file mode 100644 index 000000000..c329dc88c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicSlab.java @@ -0,0 +1,104 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMagicSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"magic"}; + + public BlockMagicSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 56; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.magicSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.magicSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.magicDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.magicSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicStairs.java new file mode 100644 index 000000000..7ebd86fb1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMagicStairs.java @@ -0,0 +1,23 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockMagicStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockMagicStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveLeaves.java new file mode 100644 index 000000000..ce289d110 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveLeaves.java @@ -0,0 +1,326 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMangroveLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"mangrove"}; + int[] adjacentTreeBlocks; + + public BlockMangroveLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerFoliage.getFoliageColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return (par1 & 3) == 1 ? ColorizerFoliage.getFoliageColorPine() : ((par1 & 3) == 2 ? ColorizerFoliage.getFoliageColorBirch() : ColorizerFoliage.getFoliageColorBasic()); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = 0; + int var7 = 0; + int var8 = 0; + + for (int var9 = -1; var9 <= 1; ++var9) + { + for (int var10 = -1; var10 <= 1; ++var10) + { + int var11 = par1IBlockAccess.getBiomeGenForCoords(par2 + var10, par4 + var9).getBiomeFoliageColor(); + var6 += (var11 & 16711680) >> 16; + var7 += (var11 & 65280) >> 8; + var8 += var11 & 255; + } + } + + return (var6 / 9 & 255) << 16 | (var7 / 9 & 255) << 8 | var8 / 9 & 255; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.mangroveLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.mangroveWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.mangroveLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.mangroveSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.mangroveLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveLog.java new file mode 100644 index 000000000..cff8397af --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMangroveLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"mangrove"}; + + public BlockMangroveLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 61; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.mangroveWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.mangroveLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 61))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangrovePlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangrovePlank.java new file mode 100644 index 000000000..aeded7b66 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangrovePlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockMangrovePlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"mangrove"}; + + public BlockMangrovePlank(int par1) + { + super(par1, 62, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveSapling.java new file mode 100644 index 000000000..2784bc33b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveSapling.java @@ -0,0 +1,161 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenMangrove; +import net.minecraft.util.AxisAlignedBB; + +public class BlockMangroveSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"mangrove"}; + + public BlockMangroveSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.sand.blockID; + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + var7 = new WorldGenMangrove(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveSlab.java new file mode 100644 index 000000000..c9af6dfb5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveSlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMangroveSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"mangrove"}; + + public BlockMangroveSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 62; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.mangroveSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.mangroveSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.mangroveDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.mangroveSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveStairs.java new file mode 100644 index 000000000..909034eca --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMangroveStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockMangroveStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockMangroveStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMediumGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMediumGrass.java new file mode 100644 index 000000000..9c5af92d6 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMediumGrass.java @@ -0,0 +1,121 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFlower; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMediumGrass extends BlockFlower +{ + public BlockMediumGrass(int par1) + { + super(par1, Material.vine); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerGrass.getGrassColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return par1 == 0 ? 16777215 : ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var5 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + return var5 == 0 ? 16777215 : par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeGrassColor(); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.mediumGrassItem, 1, par6)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.mediumGrassItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMoss.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMoss.java new file mode 100644 index 000000000..89dd014fb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMoss.java @@ -0,0 +1,450 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Direction; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMoss extends Block +{ + public BlockMoss(int par1) + { + super(par1, 143, Material.vine); + this.setBurnProperties(this.blockID, 15, 100); + this.setTickRandomly(true); + } + + /** + * Sets the block's bounds for rendering it as an item + */ + public void setBlockBoundsForItemRender() + { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 20; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + float var7 = 1.0F; + float var8 = 1.0F; + float var9 = 1.0F; + float var10 = 0.0F; + float var11 = 0.0F; + float var12 = 0.0F; + boolean var13 = var6 > 0; + + if ((var6 & 2) != 0) + { + var10 = Math.max(var10, 0.0625F); + var7 = 0.0F; + var8 = 0.0F; + var11 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + var13 = true; + } + + if ((var6 & 8) != 0) + { + var7 = Math.min(var7, 0.9375F); + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + var13 = true; + } + + if ((var6 & 4) != 0) + { + var12 = Math.max(var12, 0.0625F); + var9 = 0.0F; + var7 = 0.0F; + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var13 = true; + } + + if ((var6 & 1) != 0) + { + var9 = Math.min(var9, 0.9375F); + var12 = 1.0F; + var7 = 0.0F; + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var13 = true; + } + + if (!var13 && this.canBePlacedOn(par1IBlockAccess.getBlockId(par2, par3 + 1, par4))) + { + var8 = Math.min(var8, 0.9375F); + var11 = 1.0F; + var7 = 0.0F; + var10 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + } + + this.setBlockBounds(var7, var8, var9, var10, var11, var12); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * checks to see if you can place this block can be placed on that side of a block: BlockLever overrides + */ + public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5) + { + switch (par5) + { + case 1: + return this.canBePlacedOn(par1World.getBlockId(par2, par3 + 1, par4)); + + case 2: + return this.canBePlacedOn(par1World.getBlockId(par2, par3, par4 + 1)); + + case 3: + return this.canBePlacedOn(par1World.getBlockId(par2, par3, par4 - 1)); + + case 4: + return this.canBePlacedOn(par1World.getBlockId(par2 + 1, par3, par4)); + + case 5: + return this.canBePlacedOn(par1World.getBlockId(par2 - 1, par3, par4)); + + default: + return false; + } + } + + /** + * returns true if a vine can be placed on that block (checks for render as normal block and if it is solid) + */ + private boolean canBePlacedOn(int par1) + { + if (par1 != Block.wood.blockID && par1 != mod_BiomesOPlenty.willowWood.blockID && par1 != Block.stone.blockID) + { + return false; + } + else + { + return true; + } + } + + /** + * Returns if the vine can stay in the world. It also changes the metadata according to neighboring blocks. + */ + private boolean canVineStay(World par1World, int par2, int par3, int par4) + { + int var5 = par1World.getBlockMetadata(par2, par3, par4); + int var6 = var5; + + if (var5 > 0) + { + for (int var7 = 0; var7 <= 3; ++var7) + { + int var8 = 1 << var7; + + if ((var5 & var8) != 0 && !this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var7], par3, par4 + Direction.offsetZ[var7])) && (par1World.getBlockId(par2, par3 + 1, par4) != this.blockID || (par1World.getBlockMetadata(par2, par3 + 1, par4) & var8) == 0)) + { + var6 &= ~var8; + } + } + } + + if (var6 == 0 && !this.canBePlacedOn(par1World.getBlockId(par2, par3 + 1, par4))) + { + return false; + } + else + { + if (var6 != var5) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6); + } + + return true; + } + } + + public int getBlockColor() + { + return ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + return par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeFoliageColor(); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + if (!par1World.isRemote && !this.canVineStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote && par1World.rand.nextInt(15) == 0) + { + byte var6 = 4; + int var7 = 5; + boolean var8 = false; + int var9; + int var10; + int var11; + label138: + + for (var9 = par2 - var6; var9 <= par2 + var6; ++var9) + { + for (var10 = par4 - var6; var10 <= par4 + var6; ++var10) + { + for (var11 = par3 - 1; var11 <= par3 + 1; ++var11) + { + if (par1World.getBlockId(var9, var11, var10) == this.blockID) + { + --var7; + + if (var7 <= 0) + { + var8 = true; + break label138; + } + } + } + } + } + + var9 = par1World.getBlockMetadata(par2, par3, par4); + var10 = par1World.rand.nextInt(6); + var11 = Direction.vineGrowth[var10]; + int var12; + int var13; + + if (var10 == 1 && par3 < 255 && par1World.isAirBlock(par2, par3 + 1, par4)) + { + if (var8) + { + return; + } + + var12 = par1World.rand.nextInt(16) & var9; + + if (var12 > 0) + { + for (var13 = 0; var13 <= 3; ++var13) + { + if (!this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var13], par3 + 1, par4 + Direction.offsetZ[var13]))) + { + var12 &= ~(1 << var13); + } + } + + if (var12 > 0) + { + par1World.setBlockAndMetadataWithNotify(par2, par3 + 1, par4, this.blockID, var12); + } + } + } + else + { + int var14; + + if (var10 >= 2 && var10 <= 5 && (var9 & 1 << var11) == 0) + { + if (var8) + { + return; + } + + var12 = par1World.getBlockId(par2 + Direction.offsetX[var11], par3, par4 + Direction.offsetZ[var11]); + + if (var12 != 0 && Block.blocksList[var12] != null) + { + if (Block.blocksList[var12].blockMaterial.isOpaque() && Block.blocksList[var12].renderAsNormalBlock()) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var9 | 1 << var11); + } + } + else + { + var13 = var11 + 1 & 3; + var14 = var11 + 3 & 3; + + if ((var9 & 1 << var13) != 0 && this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var11] + Direction.offsetX[var13], par3, par4 + Direction.offsetZ[var11] + Direction.offsetZ[var13]))) + { + par1World.setBlockAndMetadataWithNotify(par2 + Direction.offsetX[var11], par3, par4 + Direction.offsetZ[var11], this.blockID, 1 << var13); + } + else if ((var9 & 1 << var14) != 0 && this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var11] + Direction.offsetX[var14], par3, par4 + Direction.offsetZ[var11] + Direction.offsetZ[var14]))) + { + par1World.setBlockAndMetadataWithNotify(par2 + Direction.offsetX[var11], par3, par4 + Direction.offsetZ[var11], this.blockID, 1 << var14); + } + else if ((var9 & 1 << var13) != 0 && par1World.isAirBlock(par2 + Direction.offsetX[var11] + Direction.offsetX[var13], par3, par4 + Direction.offsetZ[var11] + Direction.offsetZ[var13]) && this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var13], par3, par4 + Direction.offsetZ[var13]))) + { + par1World.setBlockAndMetadataWithNotify(par2 + Direction.offsetX[var11] + Direction.offsetX[var13], par3, par4 + Direction.offsetZ[var11] + Direction.offsetZ[var13], this.blockID, 1 << (var11 + 2 & 3)); + } + else if ((var9 & 1 << var14) != 0 && par1World.isAirBlock(par2 + Direction.offsetX[var11] + Direction.offsetX[var14], par3, par4 + Direction.offsetZ[var11] + Direction.offsetZ[var14]) && this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var14], par3, par4 + Direction.offsetZ[var14]))) + { + par1World.setBlockAndMetadataWithNotify(par2 + Direction.offsetX[var11] + Direction.offsetX[var14], par3, par4 + Direction.offsetZ[var11] + Direction.offsetZ[var14], this.blockID, 1 << (var11 + 2 & 3)); + } + else if (this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var11], par3 + 1, par4 + Direction.offsetZ[var11]))) + { + par1World.setBlockAndMetadataWithNotify(par2 + Direction.offsetX[var11], par3, par4 + Direction.offsetZ[var11], this.blockID, 0); + } + } + } + else if (par3 > 1) + { + var12 = par1World.getBlockId(par2, par3 - 1, par4); + + if (var12 == 0) + { + var13 = par1World.rand.nextInt(16) & var9; + + if (var13 > 0) + { + par1World.setBlockAndMetadataWithNotify(par2, par3 - 1, par4, this.blockID, var13); + } + } + else if (var12 == this.blockID) + { + var13 = par1World.rand.nextInt(16) & var9; + var14 = par1World.getBlockMetadata(par2, par3 - 1, par4); + + if (var14 != (var14 | var13)) + { + par1World.setBlockMetadataWithNotify(par2, par3 - 1, par4, var14 | var13); + } + } + } + } + } + } + + /** + * called before onBlockPlacedBy by ItemBlock and ItemReed + */ + public void updateBlockMetadata(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8) + { + byte var9 = 0; + + switch (par5) + { + case 2: + var9 = 1; + break; + + case 3: + var9 = 4; + break; + + case 4: + var9 = 8; + break; + + case 5: + var9 = 2; + } + + if (var9 != 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var9); + } + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.mossItem.itemID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.mossItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMud.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMud.java new file mode 100644 index 000000000..6f5cd8fb3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMud.java @@ -0,0 +1,56 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockMud extends Block +{ + public BlockMud(int par1, int par2) + { + super(par1, par2, Material.sand); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + float var5 = 0.35F; + return AxisAlignedBB.getAABBPool().addOrModifyAABBInPool((double)par2, (double)par3, (double)par4, (double)(par2 + 1), (double)((float)(par3 + 1) - var5), (double)(par4 + 1)); + } + + /** + * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity + */ + public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) + { + par5Entity.motionX *= 0.1D; + par5Entity.motionZ *= 0.1D; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.mudBall.itemID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 4; + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrick.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrick.java new file mode 100644 index 000000000..ececbdb45 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrick.java @@ -0,0 +1,17 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockMudBrick extends Block +{ + public BlockMudBrick(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrickSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrickSlab.java new file mode 100644 index 000000000..42a440f5d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrickSlab.java @@ -0,0 +1,104 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockMudBrickSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"mudBrickBlock"}; + + public BlockMudBrickSlab(int par1, boolean par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 52; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.mudBrickSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.mudBrickSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.mudBrickDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.mudBrickSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrickStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrickStairs.java new file mode 100644 index 000000000..c20f31be0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockMudBrickStairs.java @@ -0,0 +1,23 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockMudBrickStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockMudBrickStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeFlower.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeFlower.java new file mode 100644 index 000000000..a0cf97a00 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeFlower.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockOrangeFlower extends Block +{ + protected BlockOrangeFlower(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockOrangeFlower(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeLeaves.java new file mode 100644 index 000000000..c3e5b14d5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeLeaves.java @@ -0,0 +1,291 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockOrangeLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"orange"}; + int[] adjacentTreeBlocks; + + public BlockOrangeLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.orangeLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == Block.wood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.orangeLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.orangeSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + + if ((par5 & 3) == 0 && par1World.rand.nextInt(200) == 0) + { + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(Item.appleRed, 1, 0)); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.orangeLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeSapling.java new file mode 100644 index 000000000..0eb32b030 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOrangeSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenAutumn2; +import net.minecraft.util.AxisAlignedBB; + +public class BlockOrangeSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"orange"}; + + public BlockOrangeSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenAutumn2(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginGrass.java new file mode 100644 index 000000000..0f0ec8e25 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginGrass.java @@ -0,0 +1,87 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockOriginGrass extends Block +{ + public BlockOriginGrass(int par1) + { + super(par1, Material.grass); + this.blockIndexInTexture = 33; + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + return par1 == 1 ? 32 : (par1 == 0 ? 34 : 33); + } + + /** + * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side + */ + public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + if (par5 == 1) + { + return 32; + } + else if (par5 == 0) + { + return 34; + } + else + { + Material var6 = par1IBlockAccess.getBlockMaterial(par2, par3 + 1, par4); + return var6 != Material.snow && var6 != Material.craftedSnow ? 33 : 33; + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + if (par1World.getBlockLightValue(par2, par3 + 1, par4) < 4 && Block.lightOpacity[par1World.getBlockId(par2, par3 + 1, par4)] > 2) + { + par1World.setBlockWithNotify(par2, par3, par4, Block.dirt.blockID); + } + else if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9) + { + for (int var6 = 0; var6 < 4; ++var6) + { + int var7 = par2 + par5Random.nextInt(3) - 1; + int var8 = par3 + par5Random.nextInt(5) - 3; + int var9 = par4 + par5Random.nextInt(3) - 1; + int var10 = par1World.getBlockId(var7, var8 + 1, var9); + + if (par1World.getBlockId(var7, var8, var9) == Block.dirt.blockID && par1World.getBlockLightValue(var7, var8 + 1, var9) >= 4 && Block.lightOpacity[var10] <= 2) + { + par1World.setBlockWithNotify(var7, var8, var9, mod_BiomesOPlenty.originGrass.blockID); + } + } + } + } + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return Block.dirt.idDropped(0, par2Random, par3); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginLeaves.java new file mode 100644 index 000000000..e6985854d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginLeaves.java @@ -0,0 +1,286 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockOriginLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"origin"}; + int[] adjacentTreeBlocks; + + public BlockOriginLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.originLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == Block.wood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.originLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.originSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.originLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginSapling.java new file mode 100644 index 000000000..fd7054fe1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockOriginSapling.java @@ -0,0 +1,162 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenOriginTree; +import net.minecraft.util.AxisAlignedBB; + +public class BlockOriginSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"origin"}; + + public BlockOriginSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID || par1 == mod_BiomesOPlenty.originGrass.blockID; + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenOriginTree(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmLeaves.java new file mode 100644 index 000000000..432dad8ee --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmLeaves.java @@ -0,0 +1,326 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockPalmLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"palm"}; + int[] adjacentTreeBlocks; + + public BlockPalmLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerFoliage.getFoliageColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return (par1 & 3) == 1 ? ColorizerFoliage.getFoliageColorPine() : ((par1 & 3) == 2 ? ColorizerFoliage.getFoliageColorBirch() : ColorizerFoliage.getFoliageColorBasic()); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = 0; + int var7 = 0; + int var8 = 0; + + for (int var9 = -1; var9 <= 1; ++var9) + { + for (int var10 = -1; var10 <= 1; ++var10) + { + int var11 = par1IBlockAccess.getBiomeGenForCoords(par2 + var10, par4 + var9).getBiomeFoliageColor(); + var6 += (var11 & 16711680) >> 16; + var7 += (var11 & 65280) >> 8; + var8 += var11 & 255; + } + } + + return (var6 / 9 & 255) << 16 | (var7 / 9 & 255) << 8 | var8 / 9 & 255; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.palmLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.palmWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.palmLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.palmSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.palmLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmLog.java new file mode 100644 index 000000000..075185717 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockPalmLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"palm"}; + + public BlockPalmLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 59; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.palmWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.palmLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 59))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmPlank.java new file mode 100644 index 000000000..76d390ae2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockPalmPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"palm"}; + + public BlockPalmPlank(int par1) + { + super(par1, 60, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmSapling.java new file mode 100644 index 000000000..c125bcb60 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmSapling.java @@ -0,0 +1,163 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenPalmTree1; +import tdwp_ftw.biomesop.worldgen.WorldGenPalmTree3; +import net.minecraft.util.AxisAlignedBB; + +public class BlockPalmSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"palm"}; + + public BlockPalmSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + int var99 = par5Random.nextInt(4); + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + var99 = par5Random.nextInt(4); + + if (var99 == 0) + { + var7 = new WorldGenPalmTree1(); + } + else + { + var7 = new WorldGenPalmTree3(); + } + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmSlab.java new file mode 100644 index 000000000..840696cd7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmSlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockPalmSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"palm"}; + + public BlockPalmSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 60; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.palmSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.palmSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.palmDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.palmSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmStairs.java new file mode 100644 index 000000000..bd73e959d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPalmStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockPalmStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockPalmStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setBurnProperties(this.blockID, 5, 20); + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkFlower.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkFlower.java new file mode 100644 index 000000000..7824e0d26 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkFlower.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockPinkFlower extends Block +{ + protected BlockPinkFlower(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockPinkFlower(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID || par1 == mod_BiomesOPlenty.holyGrass.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkLeaves.java new file mode 100644 index 000000000..6d980869f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkLeaves.java @@ -0,0 +1,286 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockPinkLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"pink"}; + int[] adjacentTreeBlocks; + + public BlockPinkLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setBurnProperties(this.blockID, 30, 60); + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.pinkLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.cherryWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.pinkLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.pinkSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.pinkLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkSapling.java new file mode 100644 index 000000000..25e7285dd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPinkSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenCherry1; +import net.minecraft.util.AxisAlignedBB; + +public class BlockPinkSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"cherry"}; + + public BlockPinkSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenCherry1(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPromisedPortal.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPromisedPortal.java new file mode 100644 index 000000000..612eaeedd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPromisedPortal.java @@ -0,0 +1,88 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.TeleporterPromised; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPortal; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; + +public class BlockPromisedPortal extends Block +{ + public BlockPromisedPortal(int par1, int par2) + { + super(par1, par2, Material.portal); + } + + @SideOnly(Side.CLIENT) + + /** + * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha + */ + public int getRenderBlockPass() + { + return 1; + } + + @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); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) + { + if (par5Entity.ridingEntity == null && par5Entity.riddenByEntity == null) + { + if (par5Entity instanceof EntityPlayerMP) + { + EntityPlayerMP thePlayer = (EntityPlayerMP) par5Entity; + if (par5Entity.dimension != mod_BiomesOPlenty.promisedLandDim) + { + thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, mod_BiomesOPlenty.promisedLandDim, new TeleporterPromised(thePlayer.mcServer.worldServerForDimension(mod_BiomesOPlenty.promisedLandDim))); + } + else + { + thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new TeleporterPromised(thePlayer.mcServer.worldServerForDimension(0))); + } + } + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPurpleFlower.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPurpleFlower.java new file mode 100644 index 000000000..321e2c365 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockPurpleFlower.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockPurpleFlower extends Block +{ + protected BlockPurpleFlower(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockPurpleFlower(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockQuicksand.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockQuicksand.java new file mode 100644 index 000000000..0b81b4ebc --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockQuicksand.java @@ -0,0 +1,44 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraft.world.IBlockAccess; + +public class BlockQuicksand extends Block +{ + public BlockQuicksand(int par1, int par2) + { + super(par1, par2, Material.sand); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity + */ + public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) + { + par5Entity.setInWeb(); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedLeaves.java new file mode 100644 index 000000000..937c49461 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedLeaves.java @@ -0,0 +1,286 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockRedLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"red"}; + int[] adjacentTreeBlocks; + + public BlockRedLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.redLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == Block.wood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.redLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.redSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.redLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRock.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRock.java new file mode 100644 index 000000000..94ccf72d4 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRock.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockRedRock extends Block +{ + public BlockRedRock(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.redRockCobble.blockID; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrick.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrick.java new file mode 100644 index 000000000..80e4cd6af --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrick.java @@ -0,0 +1,17 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockRedRockBrick extends Block +{ + public BlockRedRockBrick(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrickSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrickSlab.java new file mode 100644 index 000000000..9df51ae88 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrickSlab.java @@ -0,0 +1,104 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockRedRockBrickSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"redRock"}; + + public BlockRedRockBrickSlab(int par1, boolean par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 24; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.redRockBrickSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.redRockBrickSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.redRockBrickDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.redRockBrickSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrickStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrickStairs.java new file mode 100644 index 000000000..aa1006fe5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockBrickStairs.java @@ -0,0 +1,23 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockRedRockBrickStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockRedRockBrickStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobble.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobble.java new file mode 100644 index 000000000..c0457cef2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobble.java @@ -0,0 +1,17 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockRedRockCobble extends Block +{ + public BlockRedRockCobble(int par1, int par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobbleSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobbleSlab.java new file mode 100644 index 000000000..89dd663b2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobbleSlab.java @@ -0,0 +1,104 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockRedRockCobbleSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"redRock"}; + + public BlockRedRockCobbleSlab(int par1, boolean par2) + { + super(par1, par2, Material.rock); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 23; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.redRockCobbleSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.redRockCobbleSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.redRockCobbleDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.redRockCobbleSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobbleStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobbleStairs.java new file mode 100644 index 000000000..5a763baf2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedRockCobbleStairs.java @@ -0,0 +1,23 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockRedRockCobbleStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockRedRockCobbleStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedSapling.java new file mode 100644 index 000000000..0681461e0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenMaple; +import net.minecraft.util.AxisAlignedBB; + +public class BlockRedSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"maple"}; + + public BlockRedSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenMaple(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodLeaves.java new file mode 100644 index 000000000..c88860b65 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodLeaves.java @@ -0,0 +1,326 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockRedwoodLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"redwood"}; + int[] adjacentTreeBlocks; + + public BlockRedwoodLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerFoliage.getFoliageColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return (par1 & 3) == 1 ? ColorizerFoliage.getFoliageColorPine() : ((par1 & 3) == 2 ? ColorizerFoliage.getFoliageColorBirch() : ColorizerFoliage.getFoliageColorBasic()); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = 0; + int var7 = 0; + int var8 = 0; + + for (int var9 = -1; var9 <= 1; ++var9) + { + for (int var10 = -1; var10 <= 1; ++var10) + { + int var11 = par1IBlockAccess.getBiomeGenForCoords(par2 + var10, par4 + var9).getBiomeFoliageColor(); + var6 += (var11 & 16711680) >> 16; + var7 += (var11 & 65280) >> 8; + var8 += var11 & 255; + } + } + + return (var6 / 9 & 255) << 16 | (var7 / 9 & 255) << 8 | var8 / 9 & 255; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.redwoodLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.redwoodWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.redwoodLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.redwoodSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.redwoodLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodLog.java new file mode 100644 index 000000000..cc1cd909d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockRedwoodLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"redwood"}; + + public BlockRedwoodLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 40; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.redwoodWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.redwoodLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 40))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodPlank.java new file mode 100644 index 000000000..6ec063231 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockRedwoodPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"redwood"}; + + public BlockRedwoodPlank(int par1) + { + super(par1, 41, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodSapling.java new file mode 100644 index 000000000..fd40686c1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodSapling.java @@ -0,0 +1,152 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenRedwoodTree2; +import net.minecraft.util.AxisAlignedBB; + +public class BlockRedwoodSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"redwood"}; + + public BlockRedwoodSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + var7 = new WorldGenRedwoodTree2(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodSlab.java new file mode 100644 index 000000000..9bdfeeddb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodSlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockRedwoodSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"redwood"}; + + public BlockRedwoodSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 41; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.redwoodSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.redwoodSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.redwoodDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.redwoodSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodStairs.java new file mode 100644 index 000000000..55487099a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockRedwoodStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockRedwoodStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockRedwoodStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setBurnProperties(this.blockID, 5, 20); + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockShortGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockShortGrass.java new file mode 100644 index 000000000..41d5659dd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockShortGrass.java @@ -0,0 +1,121 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFlower; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockShortGrass extends BlockFlower +{ + public BlockShortGrass(int par1) + { + super(par1, Material.vine); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerGrass.getGrassColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return par1 == 0 ? 16777215 : ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var5 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + return var5 == 0 ? 16777215 : par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeGrassColor(); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.shortGrassItem, 1, par6)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.shortGrassItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockSmolderingGrass.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockSmolderingGrass.java new file mode 100644 index 000000000..2a519c377 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockSmolderingGrass.java @@ -0,0 +1,75 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockSmolderingGrass extends Block +{ + public BlockSmolderingGrass(int par1) + { + super(par1, Material.grass); + this.blockIndexInTexture = 123; + this.setTickRandomly(true); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + return par1 == 1 ? 122 : (par1 == 0 ? 124 : 123); + } + + /** + * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side + */ + public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + if (par5 == 1) + { + return 122; + } + else if (par5 == 0) + { + return 124; + } + else + { + Material var6 = par1IBlockAccess.getBlockMaterial(par2, par3 + 1, par4); + return var6 != Material.snow && var6 != Material.craftedSnow ? 123 : 123; + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + super.randomDisplayTick(par1World, par2, par3, par4, par5Random); + + if (par5Random.nextInt(4) == 0) + { + par1World.spawnParticle("smoke", (double)((float)par2 + par5Random.nextFloat()), (double)((float)par3 + 1.1F), (double)((float)par4 + par5Random.nextFloat()), 0.0D, 0.0D, 0.0D); + } + if (par5Random.nextInt(6) == 0) + { + par1World.spawnParticle("flame", (double)((float)par2 + par5Random.nextFloat()), (double)((float)par3 + 1.1F), (double)((float)par4 + par5Random.nextFloat()), 0.0D, 0.0D, 0.0D); + } + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return 0; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockSprout.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockSprout.java new file mode 100644 index 000000000..19957ec27 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockSprout.java @@ -0,0 +1,121 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockFlower; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.ColorizerGrass; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockSprout extends BlockFlower +{ + public BlockSprout(int par1) + { + super(par1, Material.vine); + float var3 = 0.4F; + this.setBurnProperties(this.blockID, 60, 100); + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerGrass.getGrassColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return par1 == 0 ? 16777215 : ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var5 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + return var5 == 0 ? 16777215 : par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeGrassColor(); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.sproutItem, 1, par6)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.sproutItem.itemID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockThorn.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockThorn.java new file mode 100644 index 000000000..941427fc5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockThorn.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public class BlockThorn extends Block +{ + protected BlockThorn(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockThorn(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return -1; + } + + /** + * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity + */ + public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) + { + par5Entity.attackEntityFrom(DamageSource.cactus, 1); + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.thorn, 1, par6)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTinyCactus.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTinyCactus.java new file mode 100644 index 000000000..fba666468 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTinyCactus.java @@ -0,0 +1,123 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.util.DamageSource; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockTinyCactus extends Block +{ + protected BlockTinyCactus(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockTinyCactus(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.sand.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity + */ + public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) + { + par5Entity.attackEntityFrom(DamageSource.cactus, 1); + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTinyFlower.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTinyFlower.java new file mode 100644 index 000000000..642e39682 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTinyFlower.java @@ -0,0 +1,137 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockTinyFlower extends Block +{ + protected BlockTinyFlower(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.5F; + float var4 = 0.015625F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockTinyFlower(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + public int getBlockColor() + { + return 16777215; + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return 16777215; + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + return 16777215; + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 23; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockToadstool.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockToadstool.java new file mode 100644 index 000000000..6fe9f436e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockToadstool.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockToadstool extends Block +{ + protected BlockToadstool(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var3 = 0.2F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockToadstool(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.mycelium.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTreeMoss.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTreeMoss.java new file mode 100644 index 000000000..db7e2756f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockTreeMoss.java @@ -0,0 +1,305 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Direction; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockTreeMoss extends Block +{ + public BlockTreeMoss(int par1) + { + super(par1, 143, Material.vine); + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 15, 100); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Sets the block's bounds for rendering it as an item + */ + public void setBlockBoundsForItemRender() + { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 20; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + float var7 = 1.0F; + float var8 = 1.0F; + float var9 = 1.0F; + float var10 = 0.0F; + float var11 = 0.0F; + float var12 = 0.0F; + boolean var13 = var6 > 0; + + if ((var6 & 2) != 0) + { + var10 = Math.max(var10, 0.0625F); + var7 = 0.0F; + var8 = 0.0F; + var11 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + var13 = true; + } + + if ((var6 & 8) != 0) + { + var7 = Math.min(var7, 0.9375F); + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + var13 = true; + } + + if ((var6 & 4) != 0) + { + var12 = Math.max(var12, 0.0625F); + var9 = 0.0F; + var7 = 0.0F; + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var13 = true; + } + + if ((var6 & 1) != 0) + { + var9 = Math.min(var9, 0.9375F); + var12 = 1.0F; + var7 = 0.0F; + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var13 = true; + } + + if (!var13 && this.canBePlacedOn(par1IBlockAccess.getBlockId(par2, par3 + 1, par4))) + { + var8 = Math.min(var8, 0.9375F); + var11 = 1.0F; + var7 = 0.0F; + var10 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + } + + this.setBlockBounds(var7, var8, var9, var10, var11, var12); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * checks to see if you can place this block can be placed on that side of a block: BlockLever overrides + */ + public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5) + { + switch (par5) + { + case 1: + return this.canBePlacedOn(par1World.getBlockId(par2, par3 + 1, par4)); + + case 2: + return this.canBePlacedOn(par1World.getBlockId(par2, par3, par4 + 1)); + + case 3: + return this.canBePlacedOn(par1World.getBlockId(par2, par3, par4 - 1)); + + case 4: + return this.canBePlacedOn(par1World.getBlockId(par2 + 1, par3, par4)); + + case 5: + return this.canBePlacedOn(par1World.getBlockId(par2 - 1, par3, par4)); + + default: + return false; + } + } + + /** + * returns true if a vine can be placed on that block (checks for render as normal block and if it is solid) + */ + private boolean canBePlacedOn(int par1) + { + if (par1 == 0) + { + return false; + } + else + { + Block var2 = Block.blocksList[par1]; + return var2.renderAsNormalBlock() && var2.blockMaterial.blocksMovement(); + } + } + + /** + * Returns if the vine can stay in the world. It also changes the metadata according to neighboring blocks. + */ + private boolean canVineStay(World par1World, int par2, int par3, int par4) + { + int var5 = par1World.getBlockMetadata(par2, par3, par4); + int var6 = var5; + + if (var5 > 0) + { + for (int var7 = 0; var7 <= 3; ++var7) + { + int var8 = 1 << var7; + + if ((var5 & var8) != 0 && !this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var7], par3, par4 + Direction.offsetZ[var7])) && (par1World.getBlockId(par2, par3 + 1, par4) != this.blockID || (par1World.getBlockMetadata(par2, par3 + 1, par4) & var8) == 0)) + { + var6 &= ~var8; + } + } + } + + if (var6 == 0 && !this.canBePlacedOn(par1World.getBlockId(par2, par3 + 1, par4))) + { + return false; + } + else + { + if (var6 != var5) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6); + } + + return true; + } + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + if (!par1World.isRemote && !this.canVineStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + } + + /** + * called before onBlockPlacedBy by ItemBlock and ItemReed + */ + public void updateBlockMetadata(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8) + { + byte var9 = 0; + + switch (par5) + { + case 2: + var9 = 1; + break; + + case 3: + var9 = 4; + break; + + case 4: + var9 = 8; + break; + + case 5: + var9 = 2; + } + + if (var9 != 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var9); + } + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return 0; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 0; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.treeMoss, 1, 0)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockViolet.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockViolet.java new file mode 100644 index 000000000..c746f1aad --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockViolet.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockViolet extends Block +{ + protected BlockViolet(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockViolet(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteFlower.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteFlower.java new file mode 100644 index 000000000..288f6f707 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteFlower.java @@ -0,0 +1,113 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class BlockWhiteFlower extends Block +{ + protected BlockWhiteFlower(int par1, int par2, Material par3Material) + { + super(par1, par3Material); + this.setTickRandomly(true); + float var4 = 0.2F; + this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public BlockWhiteFlower(int par1, int par2) + { + this(par1, par2, Material.plants); + } + + /** + * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z + */ + public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) + { + return super.canPlaceBlockAt(par1World, par2, par3, par4) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of + * blockID passed in. Args: blockID + */ + protected boolean canThisPlantGrowOnThisBlockID(int par1) + { + return par1 == Block.grass.blockID || par1 == Block.dirt.blockID || par1 == Block.tilledField.blockID; + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + super.onNeighborBlockChange(par1World, par2, par3, par4, par5); + this.checkFlowerChange(par1World, par2, par3, par4); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + this.checkFlowerChange(par1World, par2, par3, par4); + } + + protected final void checkFlowerChange(World par1World, int par2, int par3, int par4) + { + if (!this.canBlockStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Can this block stay at this position. Similar to canPlaceBlockAt except gets checked often with plants. + */ + public boolean canBlockStay(World par1World, int par2, int par3, int par4) + { + return (par1World.getFullBlockLightValue(par2, par3, par4) >= 8 || par1World.canBlockSeeTheSky(par2, par3, par4)) && this.canThisPlantGrowOnThisBlockID(par1World.getBlockId(par2, par3 - 1, par4)); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteLeaves.java new file mode 100644 index 000000000..39adb7ae8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteLeaves.java @@ -0,0 +1,286 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockWhiteLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"white"}; + int[] adjacentTreeBlocks; + + public BlockWhiteLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.whiteLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.cherryWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.whiteLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.whiteSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.whiteLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteSapling.java new file mode 100644 index 000000000..369d06b0b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWhiteSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenCherry2; +import net.minecraft.util.AxisAlignedBB; + +public class BlockWhiteSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"white"}; + + public BlockWhiteSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenCherry2(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillow.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillow.java new file mode 100644 index 000000000..3f37f8e31 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillow.java @@ -0,0 +1,326 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Direction; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockWillow extends Block +{ + public BlockWillow(int par1) + { + super(par1, 143, Material.vine); + this.setBurnProperties(this.blockID, 15, 100); + this.setTickRandomly(true); + } + + /** + * Sets the block's bounds for rendering it as an item + */ + public void setBlockBoundsForItemRender() + { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 20; + } + + /** + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two + * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. + */ + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * Updates the blocks bounds based on its current state. Args: world, x, y, z + */ + public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); + float var7 = 1.0F; + float var8 = 1.0F; + float var9 = 1.0F; + float var10 = 0.0F; + float var11 = 0.0F; + float var12 = 0.0F; + boolean var13 = var6 > 0; + + if ((var6 & 2) != 0) + { + var10 = Math.max(var10, 0.0625F); + var7 = 0.0F; + var8 = 0.0F; + var11 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + var13 = true; + } + + if ((var6 & 8) != 0) + { + var7 = Math.min(var7, 0.9375F); + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + var13 = true; + } + + if ((var6 & 4) != 0) + { + var12 = Math.max(var12, 0.0625F); + var9 = 0.0F; + var7 = 0.0F; + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var13 = true; + } + + if ((var6 & 1) != 0) + { + var9 = Math.min(var9, 0.9375F); + var12 = 1.0F; + var7 = 0.0F; + var10 = 1.0F; + var8 = 0.0F; + var11 = 1.0F; + var13 = true; + } + + if (!var13 && this.canBePlacedOn(par1IBlockAccess.getBlockId(par2, par3 + 1, par4))) + { + var8 = Math.min(var8, 0.9375F); + var11 = 1.0F; + var7 = 0.0F; + var10 = 1.0F; + var9 = 0.0F; + var12 = 1.0F; + } + + this.setBlockBounds(var7, var8, var9, var10, var11, var12); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + return null; + } + + /** + * checks to see if you can place this block can be placed on that side of a block: BlockLever overrides + */ + public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5) + { + switch (par5) + { + case 1: + return this.canBePlacedOn(par1World.getBlockId(par2, par3 + 1, par4)); + + case 2: + return this.canBePlacedOn(par1World.getBlockId(par2, par3, par4 + 1)); + + case 3: + return this.canBePlacedOn(par1World.getBlockId(par2, par3, par4 - 1)); + + case 4: + return this.canBePlacedOn(par1World.getBlockId(par2 + 1, par3, par4)); + + case 5: + return this.canBePlacedOn(par1World.getBlockId(par2 - 1, par3, par4)); + + default: + return false; + } + } + + /** + * returns true if a vine can be placed on that block (checks for render as normal block and if it is solid) + */ + private boolean canBePlacedOn(int par1) + { + if (par1 == 0) + { + return false; + } + else + { + Block var2 = Block.blocksList[par1]; + return var2.renderAsNormalBlock() && var2.blockMaterial.blocksMovement(); + } + } + + /** + * Returns if the vine can stay in the world. It also changes the metadata according to neighboring blocks. + */ + private boolean canVineStay(World par1World, int par2, int par3, int par4) + { + int var5 = par1World.getBlockMetadata(par2, par3, par4); + int var6 = var5; + + if (var5 > 0) + { + for (int var7 = 0; var7 <= 3; ++var7) + { + int var8 = 1 << var7; + + if ((var5 & var8) != 0 && !this.canBePlacedOn(par1World.getBlockId(par2 + Direction.offsetX[var7], par3, par4 + Direction.offsetZ[var7])) && (par1World.getBlockId(par2, par3 + 1, par4) != this.blockID || (par1World.getBlockMetadata(par2, par3 + 1, par4) & var8) == 0)) + { + var6 &= ~var8; + } + } + } + + if (var6 == 0 && !this.canBePlacedOn(par1World.getBlockId(par2, par3 + 1, par4))) + { + return false; + } + else + { + if (var6 != var5) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6); + } + + return true; + } + } + + public int getBlockColor() + { + return ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return ColorizerFoliage.getFoliageColorBasic(); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + return par1IBlockAccess.getBiomeGenForCoords(par2, par4).getBiomeFoliageColor(); + } + + /** + * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are + * their own) Args: x, y, z, neighbor blockID + */ + public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) + { + if (!par1World.isRemote && !this.canVineStay(par1World, par2, par3, par4)) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + } + + /** + * called before onBlockPlacedBy by ItemBlock and ItemReed + */ + public void updateBlockMetadata(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8) + { + byte var9 = 0; + + switch (par5) + { + case 2: + var9 = 1; + break; + + case 3: + var9 = 4; + break; + + case 4: + var9 = 8; + break; + + case 5: + var9 = 2; + } + + if (var9 != 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var9); + } + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return 0; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 0; + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.willow, 1, 0)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowLeaves.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowLeaves.java new file mode 100644 index 000000000..4d2215ff4 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowLeaves.java @@ -0,0 +1,326 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeavesBase; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.world.ColorizerFoliage; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockWillowLeaves extends BlockLeavesBase +{ + /** + * The base index in terrain.png corresponding to the fancy version of the leaf texture. This is stored so we can + * switch the displayed version between fancy and fast graphics (fast is this index + 1). + */ + private int baseIndexInPNG; + public static final String[] LEAF_TYPES = new String[] {"willow"}; + int[] adjacentTreeBlocks; + + public BlockWillowLeaves(int par1, int par2) + { + super(par1, par2, Material.leaves, false); + this.baseIndexInPNG = par2; + this.setTickRandomly(true); + this.setBurnProperties(this.blockID, 30, 60); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + public int getBlockColor() + { + double var1 = 0.5D; + double var3 = 1.0D; + return ColorizerFoliage.getFoliageColor(var1, var3); + } + + /** + * Returns the color this block should be rendered. Used by leaves. + */ + public int getRenderColor(int par1) + { + return (par1 & 3) == 1 ? ColorizerFoliage.getFoliageColorPine() : ((par1 & 3) == 2 ? ColorizerFoliage.getFoliageColorBirch() : ColorizerFoliage.getFoliageColorBasic()); + } + + /** + * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called + * when first determining what to render. + */ + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + int var6 = 0; + int var7 = 0; + int var8 = 0; + + for (int var9 = -1; var9 <= 1; ++var9) + { + for (int var10 = -1; var10 <= 1; ++var10) + { + int var11 = par1IBlockAccess.getBiomeGenForCoords(par2 + var10, par4 + var9).getBiomeFoliageColor(); + var6 += (var11 & 16711680) >> 16; + var7 += (var11 & 65280) >> 8; + var8 += var11 & 255; + } + } + + return (var6 / 9 & 255) << 16 | (var7 / 9 & 255) << 8 | var8 / 9 & 255; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 1; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.willowLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) != 0 && (var6 & 4) == 0) + { + byte var7 = 4; + int var8 = var7 + 1; + byte var9 = 32; + int var10 = var9 * var9; + int var11 = var9 / 2; + + if (this.adjacentTreeBlocks == null) + { + this.adjacentTreeBlocks = new int[var9 * var9 * var9]; + } + + int var12; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + int var13; + int var14; + int var15; + + for (var12 = -var7; var12 <= var7; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + var15 = par1World.getBlockId(par2 + var12, par3 + var13, par4 + var14); + + if (var15 == mod_BiomesOPlenty.willowWood.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0; + } + else if (var15 == mod_BiomesOPlenty.willowLeaves.blockID) + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2; + } + else + { + this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1; + } + } + } + } + + for (var12 = 1; var12 <= 4; ++var12) + { + for (var13 = -var7; var13 <= var7; ++var13) + { + for (var14 = -var7; var14 <= var7; ++var14) + { + for (var15 = -var7; var15 <= var7; ++var15) + { + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) + { + if (this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12; + } + + if (this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) + { + this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12; + } + } + } + } + } + } + } + + var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11]; + + if (var12 >= 0) + { + par1World.setBlockMetadata(par2, par3, par4, var6 & -9); + } + else + { + this.removeLeaves(par1World, par2, par3, par4); + } + } + } + } + + /** + * A randomly called display update to be able to add particles or other items for display + */ + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (par1World.canLightningStrikeAt(par2, par3 + 1, par4) && !par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && par5Random.nextInt(15) == 1) + { + double var6 = (double)((float)par2 + par5Random.nextFloat()); + double var8 = (double)par3 - 0.05D; + double var10 = (double)((float)par4 + par5Random.nextFloat()); + par1World.spawnParticle("dripWater", var6, var8, var10, 0.0D, 0.0D, 0.0D); + } + } + + private void removeLeaves(World par1World, int par2, int par3, int par4) + { + this.dropBlockAsItem(par1World, par2, par3, par4, par1World.getBlockMetadata(par2, par3, par4), 0); + par1World.setBlockWithNotify(par2, par3, par4, 0); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return par1Random.nextInt(20) == 0 ? 1 : 0; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.willowSapling.blockID; + } + + /** + * Drops the block items with a specified chance of dropping the specified items + */ + public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7) + { + if (!par1World.isRemote) + { + byte var8 = 20; + + if ((par5 & 3) == 3) + { + var8 = 40; + } + + if (par1World.rand.nextInt(var8) == 0) + { + int var9 = this.idDropped(par5, par1World.rand, par7); + this.dropBlockAsItem_do(par1World, par2, par3, par4, new ItemStack(var9, 1, this.damageDropped(par5))); + } + } + } + + /** + * Called when the player destroys a block with an item that can harvest it. (i, j, k) are the coordinates of the + * block and l is the block's subtype/damage. + */ + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID) + { + par2EntityPlayer.addStat(StatList.mineBlockStatArray[this.blockID], 1); + this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(mod_BiomesOPlenty.willowLeaves.blockID, 1, par6 & 3)); + } + else + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + @Override + public boolean isOpaqueCube() { + return Block.leaves.isOpaqueCube(); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int metadata) { + + return blockIndexInTexture + (isOpaqueCube() ? 1 : 0); + } + + public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return true; + } + + /** + * Pass true to draw this block using fancy graphics, or false for fast graphics. + */ + public void setGraphicsLevel(boolean par1) + { + this.graphicsLevel = par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowLog.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowLog.java new file mode 100644 index 000000000..c9732d249 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowLog.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockWillowLog extends Block +{ + /** The type of tree this log came from. */ + public static final String[] woodType = new String[] {"willow"}; + + public BlockWillowLog(int par1) + { + super(par1, Material.wood); + this.blockIndexInTexture = 42; + this.setBurnProperties(this.blockID, 5, 5); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return 31; + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + public int quantityDropped(Random par1Random) + { + return 1; + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.willowWood.blockID; + } + + /** + * ejects contained items into the world, and notifies neighbours of an update, as appropriate + */ + public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6) + { + byte var7 = 4; + int var8 = var7 + 1; + + if (par1World.checkChunksExist(par2 - var8, par3 - var8, par4 - var8, par2 + var8, par3 + var8, par4 + var8)) + { + for (int var9 = -var7; var9 <= var7; ++var9) + { + for (int var10 = -var7; var10 <= var7; ++var10) + { + for (int var11 = -var7; var11 <= var7; ++var11) + { + int var12 = par1World.getBlockId(par2 + var9, par3 + var10, par4 + var11); + + if (var12 == mod_BiomesOPlenty.willowLeaves.blockID) + { + int var13 = par1World.getBlockMetadata(par2 + var9, par3 + var10, par4 + var11); + + if ((var13 & 8) == 0) + { + par1World.setBlockMetadata(par2 + var9, par3 + var10, par4 + var11, var13 | 8); + } + } + } + } + } + } + } + + public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) + { + int var10 = par9 & 3; + byte var11 = 0; + + switch (par5) + { + case 0: + case 1: + var11 = 0; + break; + + case 2: + case 3: + var11 = 8; + break; + + case 4: + case 5: + var11 = 4; + } + + return var10 | var11; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + int var3 = par2 & 12; + int var4 = par2 & 3; + return var3 == 0 && (par1 == 1 || par1 == 0) ? 255 : (var3 == 4 && (par1 == 5 || par1 == 4) ? 255 : (var3 == 8 && (par1 == 2 || par1 == 3) ? 255 : (var4 == 1 ? 116 : (var4 == 2 ? 117 : (var4 == 3 ? 153 : 42))))); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a number between 0 and 3 + */ + public static int limitToValidMetadata(int par0) + { + return par0 & 3; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(this.blockID, 1, limitToValidMetadata(par1)); + } + + @Override + public boolean canSustainLeaves(World world, int x, int y, int z) + { + return true; + } + + @Override + public boolean isWood(World world, int x, int y, int z) + { + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowPlank.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowPlank.java new file mode 100644 index 000000000..30b3d9516 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowPlank.java @@ -0,0 +1,29 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockWillowPlank extends Block +{ + /** The type of tree this block came from. */ + public static final String[] woodType = new String[] {"willow"}; + + public BlockWillowPlank(int par1) + { + super(par1, 43, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowSapling.java new file mode 100644 index 000000000..257747727 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenWillow; +import net.minecraft.util.AxisAlignedBB; + +public class BlockWillowSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"willow"}; + + public BlockWillowSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenWillow(); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowSlab.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowSlab.java new file mode 100644 index 000000000..481bd6c1a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowSlab.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockWillowSlab extends BlockHalfSlab +{ + /** The type of tree this slab came from. */ + public static final String[] woodType = new String[] {"willow"}; + + public BlockWillowSlab(int par1, boolean par2) + { + super(par1, par2, Material.wood); + this.setBurnProperties(this.blockID, 5, 20); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + this.useNeighborBrightness[blockID] = true; + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + switch (par2 & 7) + { + case 1: + return 198; + + case 2: + return 214; + + case 3: + return 199; + + default: + return 43; + } + } + + /** + * Returns the block texture based on the side being looked at. Args: side + */ + public int getBlockTextureFromSide(int par1) + { + return this.getBlockTextureFromSideAndMetadata(par1, 0); + } + + /** + * Returns the ID of the items to drop on destruction. + */ + public int idDropped(int par1, Random par2Random, int par3) + { + return mod_BiomesOPlenty.willowSingleSlab.blockID; + } + + /** + * Returns an item stack containing a single instance of the current block type. 'i' is the block's subtype/damage + * and is ignored for blocks which do not support subtypes. Blocks which cannot be harvested should return null. + */ + protected ItemStack createStackedBlock(int par1) + { + return new ItemStack(mod_BiomesOPlenty.willowSingleSlab.blockID, 2, par1 & 7); + } + + /** + * Returns the slab block name with step type. + */ + public String getFullSlabName(int par1) + { + if (par1 < 0 || par1 >= woodType.length) + { + par1 = 0; + } + + return super.getBlockName() + "." + woodType[par1]; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (par1 != mod_BiomesOPlenty.willowDoubleSlab.blockID) + { + par3List.add(new ItemStack(par1, 1, 0)); + } + } + + /** + * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) + */ + public int idPicked(World par1World, int par2, int par3, int par4) + { + return mod_BiomesOPlenty.willowSingleSlab.blockID; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowStairs.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowStairs.java new file mode 100644 index 000000000..5bbe88ade --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockWillowStairs.java @@ -0,0 +1,24 @@ +package tdwp_ftw.biomesop.blocks; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.world.IBlockAccess; + +public class BlockWillowStairs extends BlockStairs +{ + /** The block that is used as model for the stair. */ + private final Block modelBlock; + + public BlockWillowStairs(int par1, Block par2Block, int par3) + { + super(par1, par2Block, par3); + blockIndexInTexture = par3; + this.modelBlock = par2Block; + this.setBurnProperties(this.blockID, 5, 20); + this.setLightOpacity(0); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/blocks/BlockYellowSapling.java b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockYellowSapling.java new file mode 100644 index 000000000..e44ee622a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/blocks/BlockYellowSapling.java @@ -0,0 +1,153 @@ +package tdwp_ftw.biomesop.blocks; + +import java.util.List; +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.worldgen.WorldGenAutumn; +import net.minecraft.util.AxisAlignedBB; + +public class BlockYellowSapling extends BlockSapling +{ + public static final String[] WOOD_TYPES = new String[] {"yellow"}; + + public BlockYellowSapling(int par1, int par2) + { + super(par1, par2); + float var3 = 0.4F; + this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3); + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + } + + /** + * Ticks the block if it's been scheduled + */ + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + if (!par1World.isRemote) + { + super.updateTick(par1World, par2, par3, par4, par5Random); + + if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9 && par5Random.nextInt(7) == 0) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4); + + if ((var6 & 8) == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 | 8); + } + else + { + this.growTree(par1World, par2, par3, par4, par5Random); + } + } + } + } + + /** + * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata + */ + public int getBlockTextureFromSideAndMetadata(int par1, int par2) + { + par2 &= 3; + return par2 == 1 ? 63 : (par2 == 2 ? 79 : (par2 == 3 ? 30 : super.getBlockTextureFromSideAndMetadata(par1, par2))); + } + + /** + * Attempts to grow a sapling into a tree + */ + public void growTree(World par1World, int par2, int par3, int par4, Random par5Random) + { + int var6 = par1World.getBlockMetadata(par2, par3, par4) & 3; + Object var7 = null; + int var8 = 0; + int var9 = 0; + boolean var10 = false; + + for (var8 = 0; var8 >= -1; --var8) + { + for (var9 = 0; var9 >= -1; --var9) + { + if (this.isSameSapling(par1World, par2 + var8, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9, 0) && this.isSameSapling(par1World, par2 + var8, par3, par4 + var9 + 1, 0) && this.isSameSapling(par1World, par2 + var8 + 1, par3, par4 + var9 + 1, 0)) + { + break; + } + } + + if (var7 != null) + { + break; + } + } + + if (var7 == null) + { + var9 = 0; + var8 = 0; + + var7 = new WorldGenAutumn(false); + } + + if (var10) + { + par1World.setBlock(par2 + var8, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9, 0); + par1World.setBlock(par2 + var8, par3, par4 + var9 + 1, 0); + par1World.setBlock(par2 + var8 + 1, par3, par4 + var9 + 1, 0); + } + else + { + par1World.setBlock(par2, par3, par4, 0); + } + + if (!((WorldGenerator)var7).generate(par1World, par5Random, par2 + var8, par3, par4 + var9)) + { + if (var10) + { + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8, par3, par4 + var9 + 1, this.blockID, var6); + par1World.setBlockAndMetadata(par2 + var8 + 1, par3, par4 + var9 + 1, this.blockID, var6); + } + else + { + par1World.setBlockAndMetadata(par2, par3, par4, this.blockID, var6); + } + } + } + + /** + * Determines if the same sapling is present at the given location. + */ + public boolean isSameSapling(World par1World, int par2, int par3, int par4, int par5) + { + return par1World.getBlockId(par2, par3, par4) == this.blockID && (par1World.getBlockMetadata(par2, par3, par4) & 3) == par5; + } + + /** + * Determines the damage on the item the block drops. Used in cloth and wood. + */ + public int damageDropped(int par1) + { + return par1 & 3; + } + + /** + * returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) + */ + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/AchievementPickup.java b/src/minecraft/tdwp_ftw/biomesop/helpers/AchievementPickup.java new file mode 100644 index 000000000..e1fff658e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/AchievementPickup.java @@ -0,0 +1,17 @@ +package tdwp_ftw.biomesop.helpers; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.event.ForgeSubscribe; +import net.minecraftforge.event.entity.player.EntityItemPickupEvent; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +public class AchievementPickup +{ + private ItemStack pickupItemStack; + + @ForgeSubscribe + public void EntityItemPickupEvent(EntityItemPickupEvent event) + { + mod_BiomesOPlenty.onItemPickup(event.entityPlayer, event.item.getEntityItem()); + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/BiomeCacheBlockPromised.java b/src/minecraft/tdwp_ftw/biomesop/helpers/BiomeCacheBlockPromised.java new file mode 100644 index 000000000..969295545 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/BiomeCacheBlockPromised.java @@ -0,0 +1,50 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.BiomeCachePromised; +import net.minecraft.world.biome.BiomeGenBase; + +public class BiomeCacheBlockPromised +{ + /** An array of chunk temperatures saved by this cache. */ + public float[] temperatureValues; + + /** An array of chunk rainfall values saved by this cache. */ + public float[] rainfallValues; + + /** The array of biome types stored in this BiomeCacheBlock. */ + public BiomeGenBase[] biomes; + + /** The x coordinate of the BiomeCacheBlock. */ + public int xPosition; + + /** The z coordinate of the BiomeCacheBlock. */ + public int zPosition; + + /** The last time this BiomeCacheBlock was accessed, in milliseconds. */ + public long lastAccessTime; + + /** The BiomeCache object that contains this BiomeCacheBlock */ + final BiomeCachePromised theBiomeCache; + + public BiomeCacheBlockPromised(BiomeCachePromised par1BiomeCache, int par2, int par3) + { + this.theBiomeCache = par1BiomeCache; + this.temperatureValues = new float[256]; + this.rainfallValues = new float[256]; + this.biomes = new BiomeGenBase[256]; + this.xPosition = par2; + this.zPosition = par3; + BiomeCachePromised.getChunkManager(par1BiomeCache).getTemperatures(this.temperatureValues, par2 << 4, par3 << 4, 16, 16); + BiomeCachePromised.getChunkManager(par1BiomeCache).getRainfall(this.rainfallValues, par2 << 4, par3 << 4, 16, 16); + BiomeCachePromised.getChunkManager(par1BiomeCache).getBiomeGenAt(this.biomes, par2 << 4, par3 << 4, 16, 16, false); + } + + /** + * Returns the BiomeGenBase related to the x, z position from the cache block. + */ + public BiomeGenBase getBiomeGenAt(int par1, int par2) + { + return this.biomes[par1 & 15 | (par2 & 15) << 4]; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/BiomeCachePromised.java b/src/minecraft/tdwp_ftw/biomesop/helpers/BiomeCachePromised.java new file mode 100644 index 000000000..fd3303c12 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/BiomeCachePromised.java @@ -0,0 +1,105 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.WorldChunkManagerPromised; +import tdwp_ftw.biomesop.helpers.BiomeCacheBlockPromised; + +import java.util.ArrayList; +import java.util.List; +import net.minecraft.util.LongHashMap; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeCacheBlock; + +public class BiomeCachePromised +{ + /** Reference to the WorldChunkManager */ + private final WorldChunkManagerPromised chunkManager; + + /** The last time this BiomeCache was cleaned, in milliseconds. */ + private long lastCleanupTime = 0L; + + /** + * The map of keys to BiomeCacheBlocks. Keys are based on the chunk x, z coordinates as (x | z << 32). + */ + private LongHashMap cacheMap = new LongHashMap(); + + /** The list of cached BiomeCacheBlocks */ + private List cache = new ArrayList(); + + public BiomeCachePromised(WorldChunkManagerPromised par1WorldChunkManager) + { + this.chunkManager = par1WorldChunkManager; + } + + /** + * Returns a biome cache block at location specified. + */ + public BiomeCacheBlockPromised getBiomeCacheBlock(int par1, int par2) + { + par1 >>= 4; + par2 >>= 4; + long var3 = (long)par1 & 4294967295L | ((long)par2 & 4294967295L) << 32; + BiomeCacheBlockPromised var5 = (BiomeCacheBlockPromised)this.cacheMap.getValueByKey(var3); + + if (var5 == null) + { + var5 = new BiomeCacheBlockPromised(this, par1, par2); + this.cacheMap.add(var3, var5); + this.cache.add(var5); + } + + var5.lastAccessTime = System.currentTimeMillis(); + return var5; + } + + /** + * Returns the BiomeGenBase related to the x, z position from the cache. + */ + public BiomeGenBase getBiomeGenAt(int par1, int par2) + { + return this.getBiomeCacheBlock(par1, par2).getBiomeGenAt(par1, par2); + } + + /** + * Removes BiomeCacheBlocks from this cache that haven't been accessed in at least 30 seconds. + */ + public void cleanupCache() + { + long var1 = System.currentTimeMillis(); + long var3 = var1 - this.lastCleanupTime; + + if (var3 > 7500L || var3 < 0L) + { + this.lastCleanupTime = var1; + + for (int var5 = 0; var5 < this.cache.size(); ++var5) + { + BiomeCacheBlockPromised var6 = (BiomeCacheBlockPromised)this.cache.get(var5); + long var7 = var1 - var6.lastAccessTime; + + if (var7 > 30000L || var7 < 0L) + { + this.cache.remove(var5--); + long var9 = (long)var6.xPosition & 4294967295L | ((long)var6.zPosition & 4294967295L) << 32; + this.cacheMap.remove(var9); + } + } + } + } + + /** + * Returns the array of cached biome types in the BiomeCacheBlock at the given location. + */ + public BiomeGenBase[] getCachedBiomes(int par1, int par2) + { + return this.getBiomeCacheBlock(par1, par2).biomes; + } + + /** + * Get the world chunk manager object for a biome list. + */ + static WorldChunkManagerPromised getChunkManager(BiomeCachePromised par0BiomeCache) + { + return par0BiomeCache.chunkManager; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/BonemealUse.java b/src/minecraft/tdwp_ftw/biomesop/helpers/BonemealUse.java new file mode 100644 index 000000000..baa44c5aa --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/BonemealUse.java @@ -0,0 +1,159 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.blocks.BlockFirSapling; +import tdwp_ftw.biomesop.blocks.BlockRedwoodSapling; +import tdwp_ftw.biomesop.blocks.BlockPalmSapling; +import tdwp_ftw.biomesop.blocks.BlockRedSapling; +import tdwp_ftw.biomesop.blocks.BlockOrangeSapling; +import tdwp_ftw.biomesop.blocks.BlockYellowSapling; +import tdwp_ftw.biomesop.blocks.BlockBrownSapling; +import tdwp_ftw.biomesop.blocks.BlockWillowSapling; +import tdwp_ftw.biomesop.blocks.BlockAppleSapling; +import tdwp_ftw.biomesop.blocks.BlockOriginSapling; +import tdwp_ftw.biomesop.blocks.BlockPinkSapling; +import tdwp_ftw.biomesop.blocks.BlockWhiteSapling; +import tdwp_ftw.biomesop.blocks.BlockDarkSapling; +import tdwp_ftw.biomesop.blocks.BlockMagicSapling; +import tdwp_ftw.biomesop.blocks.BlockMangroveSapling; +import tdwp_ftw.biomesop.blocks.BlockAcaciaSapling; +import net.minecraft.entity.player.EntityPlayer; + +import net.minecraftforge.event.ForgeSubscribe; +import net.minecraftforge.event.entity.player.BonemealEvent; + +public class BonemealUse +{ + + @ForgeSubscribe + public void onUseBonemeal(BonemealEvent event) + { + if (event.ID == mod_BiomesOPlenty.firSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockFirSapling)mod_BiomesOPlenty.firSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.redwoodSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockRedwoodSapling)mod_BiomesOPlenty.redwoodSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.palmSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockPalmSapling)mod_BiomesOPlenty.palmSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.redSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockRedSapling)mod_BiomesOPlenty.redSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.orangeSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockOrangeSapling)mod_BiomesOPlenty.orangeSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.yellowSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockYellowSapling)mod_BiomesOPlenty.yellowSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.brownSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockBrownSapling)mod_BiomesOPlenty.brownSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.willowSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockWillowSapling)mod_BiomesOPlenty.willowSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.appleSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockAppleSapling)mod_BiomesOPlenty.appleSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.originSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockOriginSapling)mod_BiomesOPlenty.originSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.pinkSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockPinkSapling)mod_BiomesOPlenty.pinkSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.whiteSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockWhiteSapling)mod_BiomesOPlenty.whiteSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.darkSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockDarkSapling)mod_BiomesOPlenty.darkSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.magicSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockMagicSapling)mod_BiomesOPlenty.magicSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.mangroveSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockMangroveSapling)mod_BiomesOPlenty.mangroveSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + + if (event.ID == mod_BiomesOPlenty.acaciaSapling.blockID) + { + if (!event.world.isRemote) + { + ((BlockAcaciaSapling)mod_BiomesOPlenty.acaciaSapling).growTree(event.world, event.X, event.Y, event.Z, event.world.rand); + } + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/ChunkProviderPromised.java b/src/minecraft/tdwp_ftw/biomesop/helpers/ChunkProviderPromised.java new file mode 100644 index 000000000..08cdc759d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/ChunkProviderPromised.java @@ -0,0 +1,458 @@ +package tdwp_ftw.biomesop.helpers; + +import java.util.List; +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.block.BlockSand; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.util.IProgressUpdate; +import net.minecraft.util.MathHelper; +import net.minecraft.world.gen.NoiseGeneratorOctaves; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunkProvider; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraftforge.common.*; +import net.minecraftforge.event.Event.*; +import net.minecraftforge.event.terraingen.*; + +public class ChunkProviderPromised implements IChunkProvider +{ + private Random rand; + private Random endRNG; + private NoiseGeneratorOctaves noiseGen1; + private NoiseGeneratorOctaves noiseGen2; + private NoiseGeneratorOctaves noiseGen3; + public NoiseGeneratorOctaves noiseGen4; + public NoiseGeneratorOctaves noiseGen5; + private World endWorld; + private double[] densities; + + /** The biomes that are used to generate the chunk */ + private BiomeGenBase[] biomesForGeneration; + double[] noiseData1; + double[] noiseData2; + double[] noiseData3; + double[] noiseData4; + double[] noiseData5; + private double[] stoneNoise = new double[256]; + int[][] field_73203_h = new int[32][32]; + + public ChunkProviderPromised(World par1World, long par2) + { + this.endWorld = par1World; + this.endRNG = new Random(par2); + this.noiseGen1 = new NoiseGeneratorOctaves(this.endRNG, 16); + this.noiseGen2 = new NoiseGeneratorOctaves(this.endRNG, 16); + this.noiseGen3 = new NoiseGeneratorOctaves(this.endRNG, 8); + this.noiseGen4 = new NoiseGeneratorOctaves(this.endRNG, 10); + this.noiseGen5 = new NoiseGeneratorOctaves(this.endRNG, 16); + + NoiseGeneratorOctaves[] noiseGens = {noiseGen1, noiseGen2, noiseGen3, noiseGen4, noiseGen5}; + noiseGens = TerrainGen.getModdedNoiseGenerators(par1World, this.endRNG, noiseGens); + this.noiseGen1 = noiseGens[0]; + this.noiseGen2 = noiseGens[1]; + this.noiseGen3 = noiseGens[2]; + this.noiseGen4 = noiseGens[3]; + this.noiseGen5 = noiseGens[4]; + } + + public void generateTerrain(int par1, int par2, byte[] par3ArrayOfByte, BiomeGenBase[] par4ArrayOfBiomeGenBase) + { + byte var5 = 2; + int var6 = var5 + 1; + byte var7 = 33; + int var8 = var5 + 1; + this.densities = this.initializeNoiseField(this.densities, par1 * var5, 0, par2 * var5, var6, var7, var8); + + for (int var9 = 0; var9 < var5; ++var9) + { + for (int var10 = 0; var10 < var5; ++var10) + { + for (int var11 = 0; var11 < 32; ++var11) + { + double var12 = 0.25D; + double var14 = this.densities[((var9 + 0) * var8 + var10 + 0) * var7 + var11 + 0]; + double var16 = this.densities[((var9 + 0) * var8 + var10 + 1) * var7 + var11 + 0]; + double var18 = this.densities[((var9 + 1) * var8 + var10 + 0) * var7 + var11 + 0]; + double var20 = this.densities[((var9 + 1) * var8 + var10 + 1) * var7 + var11 + 0]; + double var22 = (this.densities[((var9 + 0) * var8 + var10 + 0) * var7 + var11 + 1] - var14) * var12; + double var24 = (this.densities[((var9 + 0) * var8 + var10 + 1) * var7 + var11 + 1] - var16) * var12; + double var26 = (this.densities[((var9 + 1) * var8 + var10 + 0) * var7 + var11 + 1] - var18) * var12; + double var28 = (this.densities[((var9 + 1) * var8 + var10 + 1) * var7 + var11 + 1] - var20) * var12; + + for (int var30 = 0; var30 < 4; ++var30) + { + double var31 = 0.125D; + double var33 = var14; + double var35 = var16; + double var37 = (var18 - var14) * var31; + double var39 = (var20 - var16) * var31; + + for (int var41 = 0; var41 < 8; ++var41) + { + int var42 = var41 + var9 * 8 << 11 | 0 + var10 * 8 << 7 | var11 * 4 + var30; + short var43 = 128; + double var44 = 0.125D; + double var46 = var33; + double var48 = (var35 - var33) * var44; + + for (int var50 = 0; var50 < 8; ++var50) + { + int var51 = 0; + + if (var46 > 0.0D) + { + var51 = Block.stone.blockID; + } + + par3ArrayOfByte[var42] = (byte)var51; + var42 += var43; + var46 += var48; + } + + var33 += var37; + var35 += var39; + } + + var14 += var22; + var16 += var24; + var18 += var26; + var20 += var28; + } + } + } + } + } + + public void replaceBlocksForBiome(int par1, int par2, byte[] par3ArrayOfByte, BiomeGenBase[] par4ArrayOfBiomeGenBase) + { + byte var98 = 63; + + ChunkProviderEvent.ReplaceBiomeBlocks event = new ChunkProviderEvent.ReplaceBiomeBlocks(this, par1, par2, par3ArrayOfByte, par4ArrayOfBiomeGenBase); + MinecraftForge.EVENT_BUS.post(event); + if (event.getResult() == Result.DENY) return; + + for (int var5 = 0; var5 < 16; ++var5) + { + for (int var6 = 0; var6 < 16; ++var6) + { + BiomeGenBase var99 = par4ArrayOfBiomeGenBase[var6 + var5 * 16]; + byte var7 = 1; + int var8 = -1; + byte var9 = var99.topBlock; + byte var10 = var99.fillerBlock; + + for (int var11 = 127; var11 >= 0; --var11) + { + int var12 = (var6 * 16 + var5) * 128 + var11; + byte var13 = par3ArrayOfByte[var12]; + + if (var13 == 0) + { + var8 = -1; + } + else if (var13 == Block.stone.blockID) + { + if (var8 == -1) + { + if (var7 <= 0) + { + var9 = 0; + var10 = (byte)mod_BiomesOPlenty.holyStone.blockID; + } + else if (var11 >= var98 - 4 && var11 <= var98 + 1) + { + var9 = var99.topBlock; + var10 = var99.fillerBlock; + } + + if (var11 < var98 && var9 == 0) + { + var9 = (byte)Block.waterStill.blockID; + } + + var8 = var7; + + if (var11 >= 0) + { + par3ArrayOfByte[var12] = var9; + } + else + { + par3ArrayOfByte[var12] = var10; + } + } + else if (var8 > 0) + { + --var8; + par3ArrayOfByte[var12] = var10; + } + } + } + } + } + } + + /** + * loads or generates the chunk at the chunk location specified + */ + public Chunk loadChunk(int par1, int par2) + { + return this.provideChunk(par1, par2); + } + + /** + * Will return back a chunk, if it doesn't exist and its not a MP client it will generates all the blocks for the + * specified chunk from the map seed and chunk seed + */ + public Chunk provideChunk(int par1, int par2) + { + this.endRNG.setSeed((long)par1 * 341873128712L + (long)par2 * 132897987541L); + byte[] var3 = new byte[32768]; + this.biomesForGeneration = this.endWorld.getWorldChunkManager().loadBlockGeneratorData(this.biomesForGeneration, par1 * 16, par2 * 16, 16, 16); + this.generateTerrain(par1, par2, var3, this.biomesForGeneration); + this.replaceBlocksForBiome(par1, par2, var3, this.biomesForGeneration); + Chunk var4 = new Chunk(this.endWorld, var3, par1, par2); + byte[] var5 = var4.getBiomeArray(); + + for (int var6 = 0; var6 < var5.length; ++var6) + { + var5[var6] = (byte)this.biomesForGeneration[var6].biomeID; + } + + var4.generateSkylightMap(); + return var4; + } + + /** + * generates a subset of the level's terrain data. Takes 7 arguments: the [empty] noise array, the position, and the + * size. + */ + private double[] initializeNoiseField(double[] par1ArrayOfDouble, int par2, int par3, int par4, int par5, int par6, int par7) + { + ChunkProviderEvent.InitNoiseField event = new ChunkProviderEvent.InitNoiseField(this, par1ArrayOfDouble, par2, par3, par4, par5, par6, par7); + MinecraftForge.EVENT_BUS.post(event); + if (event.getResult() == Result.DENY) return event.noisefield; + + if (par1ArrayOfDouble == null) + { + par1ArrayOfDouble = new double[par5 * par6 * par7]; + } + + double var8 = 684.412D; + double var10 = 684.412D; + this.noiseData4 = this.noiseGen4.generateNoiseOctaves(this.noiseData4, par2, par4, par5, par7, 1.121D, 1.121D, 0.5D); + this.noiseData5 = this.noiseGen5.generateNoiseOctaves(this.noiseData5, par2, par4, par5, par7, 200.0D, 200.0D, 0.5D); + var8 *= 2.0D; + this.noiseData1 = this.noiseGen3.generateNoiseOctaves(this.noiseData1, par2, par3, par4, par5, par6, par7, var8 / 80.0D, var10 / 160.0D, var8 / 80.0D); + this.noiseData2 = this.noiseGen1.generateNoiseOctaves(this.noiseData2, par2, par3, par4, par5, par6, par7, var8, var10, var8); + this.noiseData3 = this.noiseGen2.generateNoiseOctaves(this.noiseData3, par2, par3, par4, par5, par6, par7, var8, var10, var8); + int var12 = 0; + int var13 = 0; + + for (int var14 = 0; var14 < par5; ++var14) + { + for (int var15 = 0; var15 < par7; ++var15) + { + double var16 = (this.noiseData4[var13] + 256.0D) / 512.0D; + + if (var16 > 1.0D) + { + var16 = 1.0D; + } + + double var18 = this.noiseData5[var13] / 8000.0D; + + if (var18 < 0.0D) + { + var18 = -var18 * 0.3D; + } + + var18 = var18 * 3.0D - 2.0D; + float var20 = (float)(var14 + par2 - 0) / 1.0F; + float var21 = (float)(var15 + par4 - 0) / 1.0F; + float var22 = 100.0F - MathHelper.sqrt_float(var20 * var20 + var21 * var21) * 8.0F; + + if (var22 > 80.0F) + { + var22 = 80.0F; + } + + if (var22 < -100.0F) + { + var22 = -100.0F; + } + + if (var18 > 1.0D) + { + var18 = 1.0D; + } + + var18 /= 8.0D; + var18 = 0.0D; + + if (var16 < 0.0D) + { + var16 = 0.0D; + } + + var16 += 0.5D; + var18 = var18 * (double)par6 / 16.0D; + ++var13; + double var23 = (double)par6 / 2.0D; + + for (int var25 = 0; var25 < par6; ++var25) + { + double var26 = 0.0D; + double var28 = ((double)var25 - var23) * 8.0D / var16; + + if (var28 < 0.0D) + { + var28 *= -1.0D; + } + + double var30 = this.noiseData2[var12] / 512.0D; + double var32 = this.noiseData3[var12] / 512.0D; + double var34 = (this.noiseData1[var12] / 10.0D + 1.0D) / 2.0D; + + if (var34 < 0.0D) + { + var26 = var30; + } + else if (var34 > 1.0D) + { + var26 = var32; + } + else + { + var26 = var30 + (var32 - var30) * var34; + } + + var26 -= 8.0D; + var26 += (double)var22; + byte var36 = 2; + double var37; + + if (var25 > par6 / 2 - var36) + { + var37 = (double)((float)(var25 - (par6 / 2 - var36)) / 64.0F); + + if (var37 < 0.0D) + { + var37 = 0.0D; + } + + if (var37 > 1.0D) + { + var37 = 1.0D; + } + + var26 = var26 * (1.0D - var37) + -3000.0D * var37; + } + + var36 = 8; + + if (var25 < var36) + { + var37 = (double)((float)(var36 - var25) / ((float)var36 - 1.0F)); + var26 = var26 * (1.0D - var37) + -30.0D * var37; + } + + par1ArrayOfDouble[var12] = var26; + ++var12; + } + } + } + + return par1ArrayOfDouble; + } + + /** + * Checks to see if a chunk exists at x, y + */ + public boolean chunkExists(int par1, int par2) + { + return true; + } + + /** + * Populates chunk with ores etc etc + */ + public void populate(IChunkProvider par1IChunkProvider, int par2, int par3) + { + BlockSand.fallInstantly = true; + + MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Pre(par1IChunkProvider, endWorld, endWorld.rand, par2, par3, false)); + + int var4 = par2 * 16; + int var5 = par3 * 16; + BiomeGenBase var6 = this.endWorld.getBiomeGenForCoords(var4 + 16, var5 + 16); + var6.decorate(this.endWorld, this.endWorld.rand, var4, var5); + + MinecraftForge.EVENT_BUS.post(new PopulateChunkEvent.Post(par1IChunkProvider, endWorld, endWorld.rand, par2, par3, false)); + + BlockSand.fallInstantly = false; + } + + /** + * Two modes of operation: if passed true, save all Chunks in one go. If passed false, save up to two chunks. + * Return true if all chunks have been saved. + */ + public boolean saveChunks(boolean par1, IProgressUpdate par2IProgressUpdate) + { + return true; + } + + /** + * Unloads the 100 oldest chunks from memory, due to a bug with chunkSet.add() never being called it thinks the list + * is always empty and will not remove any chunks. + */ + public boolean unload100OldestChunks() + { + return false; + } + + /** + * Returns if the IChunkProvider supports saving. + */ + public boolean canSave() + { + return true; + } + + /** + * Converts the instance data to a readable string. + */ + public String makeString() + { + return "RandomLevelSource"; + } + + /** + * Returns a list of creatures of the specified type that can spawn at the given location. + */ + public List getPossibleCreatures(EnumCreatureType par1EnumCreatureType, int par2, int par3, int par4) + { + BiomeGenBase var5 = this.endWorld.getBiomeGenForCoords(par2, par4); + return var5 == null ? null : var5.getSpawnableList(par1EnumCreatureType); + } + + /** + * Returns the location of the closest structure of the specified type. If not found returns null. + */ + public ChunkPosition findClosestStructure(World par1World, String par2Str, int par3, int par4, int par5) + { + return null; + } + + public int getLoadedChunkCount() + { + return 0; + } + + public void recreateStructures(int par1, int par2) {} +} diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/CreativeTabsBOP.java b/src/minecraft/tdwp_ftw/biomesop/helpers/CreativeTabsBOP.java new file mode 100644 index 000000000..75b1f6d71 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/CreativeTabsBOP.java @@ -0,0 +1,28 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentData; +import net.minecraft.enchantment.EnumEnchantmentType; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StringTranslate; + +public class CreativeTabsBOP extends CreativeTabs +{ + public CreativeTabsBOP(int position, String tabID) + { + super(position, tabID); //The constructor for your tab + } + + @Override + public ItemStack getIconItemStack() + { + return new ItemStack(mod_BiomesOPlenty.firSapling); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/FurnaceFuel.java b/src/minecraft/tdwp_ftw/biomesop/helpers/FurnaceFuel.java new file mode 100644 index 000000000..52265e40b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/FurnaceFuel.java @@ -0,0 +1,13 @@ +package tdwp_ftw.biomesop.helpers; + +import net.minecraft.item.ItemStack; +import cpw.mods.fml.common.IFuelHandler; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +public class FurnaceFuel implements IFuelHandler { + + @Override + public int getBurnTime(ItemStack fuel) { + return mod_BiomesOPlenty.addFuel(fuel.itemID, fuel.getItemDamage()); + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/TeleporterPromised.java b/src/minecraft/tdwp_ftw/biomesop/helpers/TeleporterPromised.java new file mode 100644 index 000000000..2cc40ebe0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/TeleporterPromised.java @@ -0,0 +1,802 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.util.Direction; +import net.minecraft.util.LongHashMap; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.PortalPosition; +import net.minecraft.world.Teleporter; +import net.minecraft.world.WorldServer; + +public class TeleporterPromised extends Teleporter +{ + private final WorldServer worldServerInstance; + private final Random random; + private final LongHashMap field_85191_c = new LongHashMap(); + private final List field_85190_d = new ArrayList(); + + public TeleporterPromised(WorldServer par1WorldServer) + { + super(par1WorldServer); + this.worldServerInstance = par1WorldServer; + this.random = new Random(par1WorldServer.getSeed()); + } + + @Override + public void placeInPortal(Entity par1Entity, double par2, double par4, double par6, float par8) + { + if (this.worldServerInstance.provider.dimensionId != 1) + { + if (!this.placeInExistingPortal(par1Entity, par2, par4, par6, par8)) + { + this.makePortal(par1Entity); + this.placeInExistingPortal(par1Entity, par2, par4, par6, par8); + } + } + else + { + int var9 = 1; + int var10 = 31; + int var11 = 0; + byte var12 = 1; + byte var13 = 0; + + for (int var14 = -2; var14 <= 2; ++var14) + { + for (int var15 = -2; var15 <= 2; ++var15) + { + for (int var16 = -1; var16 < 3; ++var16) + { + int var17 = var9 + var15 * var12 + var14 * var13; + int var18 = var10 + var16; + int var19 = var11 + var15 * var13 - var14 * var12; + boolean var20 = var16 < 0; + //this.worldServerInstance.setBlockWithNotify(var17, var18, var19, var20 ? Block.whiteStone.blockID : 0); + + int var99 = 32; + + this.worldServerInstance.setBlock(-1, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 62 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, 0, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 66 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, 0, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 63 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 63 - var99, 0, 0); + this.worldServerInstance.setBlock(0, 63 - var99, 0, 0); + + this.worldServerInstance.setBlock(-1, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 64 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 64 - var99, 0, 0); + + this.worldServerInstance.setBlock(-1, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 65 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 65 - var99, 0, 0); + this.worldServerInstance.setBlock(0, 65 - var99, 0, 0); + + this.worldServerInstance.setBlock(3, 64 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 63 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 62 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 61 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 60 - var99, 3, 0); + + this.worldServerInstance.setBlock(0, 64 - var99, 0, mod_BiomesOPlenty.promisedPortal.blockID); + } + } + } + + par1Entity.setLocationAndAngles((double) var9, (double) var10, (double) var11, par1Entity.rotationYaw, 0.0F); + par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D; + } + } + + @Override + public boolean placeInExistingPortal(Entity par1Entity, double par2, double par4, double par6, float par8) + { + short var9 = 128; + double var10 = -1.0D; + int var12 = 0; + int var13 = 0; + int var14 = 0; + int var15 = MathHelper.floor_double(1); + int var16 = MathHelper.floor_double(0); + long var17 = ChunkCoordIntPair.chunkXZ2Int(var15, var16); + boolean var19 = true; + double var27; + int var48; + + if (this.field_85191_c.containsItem(var17)) + { + PortalPosition var20 = (PortalPosition) this.field_85191_c.getValueByKey(var17); + var10 = 0.0D; + var12 = 1; + var13 = 31; + var14 = 0; + var20.field_85087_d = this.worldServerInstance.getTotalWorldTime(); + var19 = false; + } + else + { + for (var48 = var15 - var9; var48 <= var15 + var9; ++var48) + { + double var21 = (double) var48 + 0.5D - par1Entity.posX; + + for (int var23 = var16 - var9; var23 <= var16 + var9; ++var23) + { + double var24 = (double) var23 + 0.5D - par1Entity.posZ; + + for (int var26 = this.worldServerInstance.getActualHeight() - 1; var26 >= 0; --var26) + { + if (this.worldServerInstance.getBlockId(var48, var26, var23) == mod_BiomesOPlenty.promisedPortal.blockID) + { + while (this.worldServerInstance.getBlockId(var48, var26 - 1, var23) == mod_BiomesOPlenty.promisedPortal.blockID) + { + --var26; + } + + var27 = (double) var26 + 0.5D - par1Entity.posY; + double var29 = var21 * var21 + var27 * var27 + var24 * var24; + + if (var10 < 0.0D || var29 < var10) + { + var10 = var29; + var12 = var48; + var13 = var26; + var14 = var23; + } + } + } + } + } + } + + if (var10 >= 0.0D) + { + if (var19) + { + this.field_85191_c.add(var17, new PortalPosition(this, var12, var13, var14, this.worldServerInstance.getTotalWorldTime())); + this.field_85190_d.add(Long.valueOf(var17)); + } + + double var49 = (double) var12 + 0.5D; + double var25 = (double) var13 + 0.5D; + var27 = (double) var14 + 0.5D; + int var50 = -1; + + if (this.worldServerInstance.getBlockId(var12 - 1, var13, var14) == mod_BiomesOPlenty.promisedPortal.blockID) + { + var50 = 2; + } + + if (this.worldServerInstance.getBlockId(var12 + 1, var13, var14) == mod_BiomesOPlenty.promisedPortal.blockID) + { + var50 = 0; + } + + if (this.worldServerInstance.getBlockId(var12, var13, var14 - 1) == mod_BiomesOPlenty.promisedPortal.blockID) + { + var50 = 3; + } + + if (this.worldServerInstance.getBlockId(var12, var13, var14 + 1) == mod_BiomesOPlenty.promisedPortal.blockID) + { + var50 = 1; + } + + int var30 = par1Entity.func_82148_at(); + + if (var50 > -1) + { + int var31 = Direction.field_71578_g[var50]; + int var32 = Direction.offsetX[var50]; + int var33 = Direction.offsetZ[var50]; + int var34 = Direction.offsetX[var31]; + int var35 = Direction.offsetZ[var31]; + boolean var36 = !this.worldServerInstance.isAirBlock(var12 + var32 + var34, var13, var14 + var33 + var35) || !this.worldServerInstance.isAirBlock(var12 + var32 + var34, var13 + 1, var14 + var33 + var35); + boolean var37 = !this.worldServerInstance.isAirBlock(var12 + var32, var13, var14 + var33) || !this.worldServerInstance.isAirBlock(var12 + var32, var13 + 1, var14 + var33); + + if (var36 && var37) + { + var50 = Direction.footInvisibleFaceRemap[var50]; + var31 = Direction.footInvisibleFaceRemap[var31]; + var32 = Direction.offsetX[var50]; + var33 = Direction.offsetZ[var50]; + var34 = Direction.offsetX[var31]; + var35 = Direction.offsetZ[var31]; + var48 = var12 - var34; + var49 -= (double) var34; + int var22 = var14 - var35; + var27 -= (double) var35; + var36 = !this.worldServerInstance.isAirBlock(var48 + var32 + var34, var13, var22 + var33 + var35) || !this.worldServerInstance.isAirBlock(var48 + var32 + var34, var13 + 1, var22 + var33 + var35); + var37 = !this.worldServerInstance.isAirBlock(var48 + var32, var13, var22 + var33) || !this.worldServerInstance.isAirBlock(var48 + var32, var13 + 1, var22 + var33); + } + + float var38 = 0.5F; + float var39 = 0.5F; + + if (!var36 && var37) + { + var38 = 1.0F; + } + else if (var36 && !var37) + { + var38 = 0.0F; + } + else if (var36 && var37) + { + var39 = 0.0F; + } + + var49 += (double) ((float) var34 * var38 + var39 * (float) var32); + var27 += (double) ((float) var35 * var38 + var39 * (float) var33); + float var40 = 0.0F; + float var41 = 0.0F; + float var42 = 0.0F; + float var43 = 0.0F; + + if (var50 == var30) + { + var40 = 1.0F; + var41 = 1.0F; + } + else if (var50 == Direction.footInvisibleFaceRemap[var30]) + { + var40 = -1.0F; + var41 = -1.0F; + } + else if (var50 == Direction.enderEyeMetaToDirection[var30]) + { + var42 = 1.0F; + var43 = -1.0F; + } + else + { + var42 = -1.0F; + var43 = 1.0F; + } + + double var44 = par1Entity.motionX; + double var46 = par1Entity.motionZ; + par1Entity.motionX = var44 * (double) var40 + var46 * (double) var43; + par1Entity.motionZ = var44 * (double) var42 + var46 * (double) var41; + par1Entity.rotationYaw = par8 - (float) (var30 * 90) + (float) (var50 * 90); + } + else + { + par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D; + } + + par1Entity.setLocationAndAngles(var49 + 3, var25, var27 + 3, par1Entity.rotationYaw, par1Entity.rotationPitch); + return true; + } + else + { + return false; + } + } + + @Override + public boolean makePortal(Entity par1Entity) + { + byte var2 = 16; + double var3 = -1.0D; + int var5 = MathHelper.floor_double(1); + int var6 = MathHelper.floor_double(31); + int var7 = MathHelper.floor_double(0); + int var8 = var5; + int var9 = var6; + int var10 = var7; + int var11 = 0; + int var12 = this.random.nextInt(4); + int var13; + double var14; + double var17; + int var16; + int var19; + int var21; + int var20; + int var23; + int var22; + int var25; + int var24; + int var27; + int var26; + double var31; + double var32; + + for (var13 = var5 - var2; var13 <= var5 + var2; ++var13) + { + var14 = (double) var13 + 0.5D - par1Entity.posX; + + for (var16 = var7 - var2; var16 <= var7 + var2; ++var16) + { + var17 = (double) var16 + 0.5D - par1Entity.posZ; + label274: + + for (var19 = this.worldServerInstance.getActualHeight() - 1; var19 >= 0; --var19) + { + if (this.worldServerInstance.isAirBlock(var13, var19, var16)) + { + while (var19 > 0 && this.worldServerInstance.isAirBlock(var13, var19 - 1, var16)) + { + --var19; + } + + for (var20 = var12; var20 < var12 + 4; ++var20) + { + var21 = var20 % 2; + var22 = 1 - var21; + + if (var20 % 4 >= 2) + { + var21 = -var21; + var22 = -var22; + } + + for (var23 = 0; var23 < 3; ++var23) + { + for (var24 = 0; var24 < 4; ++var24) + { + for (var25 = -1; var25 < 4; ++var25) + { + var26 = var13 + (var24 - 1) * var21 + var23 * var22; + var27 = var19 + var25; + int var28 = var16 + (var24 - 1) * var22 - var23 * var21; + + if (var25 < 0 && !this.worldServerInstance.getBlockMaterial(var26, var27, var28).isSolid() || var25 >= 0 && !this.worldServerInstance.isAirBlock(var26, var27, var28)) + { + continue label274; + } + } + } + } + + var32 = (double) var19 + 0.5D - par1Entity.posY; + var31 = var14 * var14 + var32 * var32 + var17 * var17; + + if (var3 < 0.0D || var31 < var3) + { + var3 = var31; + var8 = var13; + var9 = var19; + var10 = var16; + var11 = var20 % 4; + } + } + } + } + } + } + + if (var3 < 0.0D) + { + for (var13 = var5 - var2; var13 <= var5 + var2; ++var13) + { + var14 = (double) var13 + 0.5D - par1Entity.posX; + + for (var16 = var7 - var2; var16 <= var7 + var2; ++var16) + { + var17 = (double) var16 + 0.5D - par1Entity.posZ; + label222: + + for (var19 = this.worldServerInstance.getActualHeight() - 1; var19 >= 0; --var19) + { + if (this.worldServerInstance.isAirBlock(var13, var19, var16)) + { + while (var19 > 0 && this.worldServerInstance.isAirBlock(var13, var19 - 1, var16)) + { + --var19; + } + + for (var20 = var12; var20 < var12 + 2; ++var20) + { + var21 = var20 % 2; + var22 = 1 - var21; + + for (var23 = 0; var23 < 4; ++var23) + { + for (var24 = -1; var24 < 4; ++var24) + { + var25 = var13 + (var23 - 1) * var21; + var26 = var19 + var24; + var27 = var16 + (var23 - 1) * var22; + + if (var24 < 0 && !this.worldServerInstance.getBlockMaterial(var25, var26, var27).isSolid() || var24 >= 0 && !this.worldServerInstance.isAirBlock(var25, var26, var27)) + { + continue label222; + } + } + } + + var32 = (double) var19 + 0.5D - par1Entity.posY; + var31 = var14 * var14 + var32 * var32 + var17 * var17; + + if (var3 < 0.0D || var31 < var3) + { + var3 = var31; + var8 = var13; + var9 = var19; + var10 = var16; + var11 = var20 % 2; + } + } + } + } + } + } + } + + int var29 = var8; + int var15 = var9; + var16 = var10; + int var30 = var11 % 2; + int var18 = 1 - var30; + + if (var11 % 4 >= 2) + { + var30 = -var30; + var18 = -var18; + } + + boolean var33; + + if (var3 < 0.0D) + { + if (var9 < 70) + { + var9 = 70; + } + + if (var9 > this.worldServerInstance.getActualHeight() - 10) + { + var9 = this.worldServerInstance.getActualHeight() - 10; + } + + var15 = var9; + + for (var19 = -1; var19 <= 1; ++var19) + { + for (var20 = 1; var20 < 3; ++var20) + { + for (var21 = -1; var21 < 3; ++var21) + { + var22 = var29 + (var20 - 1) * var30 + var19 * var18; + var23 = var15 + var21; + var24 = var16 + (var20 - 1) * var18 - var19 * var30; + var33 = var21 < 0; + //this.worldServerInstance.setBlockWithNotify(var22, var23, var24, var33 ? Block.whiteStone.blockID : 0); + + int var99 = 32; + + this.worldServerInstance.setBlock(-1, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 62 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, 0, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 66 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, 0, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 63 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 63 - var99, 0, 0); + this.worldServerInstance.setBlock(0, 63 - var99, 0, 0); + + this.worldServerInstance.setBlock(-1, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 64 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 64 - var99, 0, 0); + + this.worldServerInstance.setBlock(-1, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 65 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 65 - var99, 0, 0); + this.worldServerInstance.setBlock(0, 65 - var99, 0, 0); + + this.worldServerInstance.setBlock(3, 64 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 63 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 62 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 61 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 60 - var99, 3, 0); + + this.worldServerInstance.setBlock(0, 64 - var99, 0, mod_BiomesOPlenty.promisedPortal.blockID); + } + } + } + } + + for (var19 = 0; var19 < 4; ++var19) + { + this.worldServerInstance.editingBlocks = true; + + for (var20 = 0; var20 < 4; ++var20) + { + for (var21 = -1; var21 < 4; ++var21) + { + var22 = var29 + (var20 - 1) * var30; + var23 = var15 + var21; + var24 = var16 + (var20 - 1) * var18; + var33 = var20 == 0 || var20 == 3 || var21 == -1 || var21 == 3; + //this.worldServerInstance.setBlockWithNotify(var22, var23, var24, var33 ? Block.whiteStone.blockID : mod_BiomesOPlenty.promisedPortal.blockID); + + int var99 = 32; + + this.worldServerInstance.setBlock(-1, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 62 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 62 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 62 - var99, 0, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 63 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 63 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 63 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 63 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 64 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 64 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 64 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 64 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 65 - var99, 2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(2, 65 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 65 - var99, -2, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-2, 65 - var99, 1, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, 1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(1, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 66 - var99, -1, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(-1, 66 - var99, 0, Block.whiteStone.blockID); + this.worldServerInstance.setBlock(0, 66 - var99, 0, Block.whiteStone.blockID); + + this.worldServerInstance.setBlock(-1, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 63 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 63 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 63 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 63 - var99, 0, 0); + this.worldServerInstance.setBlock(0, 63 - var99, 0, 0); + + this.worldServerInstance.setBlock(-1, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 64 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 64 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 64 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 64 - var99, 0, 0); + + this.worldServerInstance.setBlock(-1, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(0, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 65 - var99, 1, 0); + this.worldServerInstance.setBlock(1, 65 - var99, 0, 0); + this.worldServerInstance.setBlock(1, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(0, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 65 - var99, -1, 0); + this.worldServerInstance.setBlock(-1, 65 - var99, 0, 0); + this.worldServerInstance.setBlock(0, 65 - var99, 0, 0); + + this.worldServerInstance.setBlock(3, 64 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 63 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 62 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 61 - var99, 3, 0); + this.worldServerInstance.setBlock(3, 60 - var99, 3, 0); + + this.worldServerInstance.setBlock(0, 64 - var99, 0, mod_BiomesOPlenty.promisedPortal.blockID); + } + } + + this.worldServerInstance.editingBlocks = false; + + for (var20 = 0; var20 < 4; ++var20) + { + for (var21 = -1; var21 < 4; ++var21) + { + var22 = var29 + (var20 - 1) * var30; + var23 = var15 + var21; + var24 = var16 + (var20 - 1) * var18; + this.worldServerInstance.notifyBlocksOfNeighborChange(var22, var23, var24, this.worldServerInstance.getBlockId(var22, var23, var24)); + } + } + } + + return true; + } + + @Override + public void func_85189_a(long par1) + { + if (par1 % 100L == 0L) + { + Iterator var3 = this.field_85190_d.iterator(); + long var4 = par1 - 600L; + + while (var3.hasNext()) + { + Long var6 = (Long) var3.next(); + PortalPosition var7 = (PortalPosition) this.field_85191_c.getValueByKey(var6.longValue()); + + if (var7 == null || var7.field_85087_d < var4) + { + var3.remove(); + this.field_85191_c.remove(var6.longValue()); + } + } + } + } + +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/WorldChunkManagerPromised.java b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldChunkManagerPromised.java new file mode 100644 index 000000000..07fa28834 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldChunkManagerPromised.java @@ -0,0 +1,281 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.BiomeCachePromised; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; +import net.minecraft.world.WorldType; +import net.minecraft.world.gen.layer.GenLayer; +import net.minecraft.world.gen.layer.IntCache; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeCache; +import net.minecraft.world.biome.WorldChunkManager; + +import net.minecraftforge.common.*; +import net.minecraftforge.event.terraingen.*; +import static net.minecraft.world.biome.BiomeGenBase.*; + +public class WorldChunkManagerPromised extends WorldChunkManager +{ + public static ArrayList allowedBiomes = new ArrayList(Arrays.asList(mod_BiomesOPlenty.promisedLand)); + private GenLayer genBiomes; + + /** A GenLayer containing the indices into BiomeGenBase.biomeList[] */ + private GenLayer biomeIndexLayer; + + /** The BiomeCache object for this world. */ + private BiomeCachePromised biomeCache; + + /** A list of biomes that the player can spawn in. */ + private List biomesToSpawnIn; + + protected WorldChunkManagerPromised() + { + this.biomeCache = new BiomeCachePromised(this); + this.biomesToSpawnIn = new ArrayList(); + this.biomesToSpawnIn.addAll(allowedBiomes); + } + + public WorldChunkManagerPromised(long par1, WorldType par3WorldType) + { + this(); + GenLayer[] var4 = GenLayer.initializeAllBiomeGenerators(par1, par3WorldType); + var4 = getModdedBiomeGenerators(par3WorldType, par1, var4); + this.genBiomes = var4[0]; + this.biomeIndexLayer = var4[1]; + } + + public WorldChunkManagerPromised(World par1World) + { + this(par1World.getSeed(), par1World.getWorldInfo().getTerrainType()); + } + + /** + * Gets the list of valid biomes for the player to spawn in. + */ + public List getBiomesToSpawnIn() + { + return this.biomesToSpawnIn; + } + + /** + * Returns the BiomeGenBase related to the x, z position on the world. + */ + public BiomeGenBase getBiomeGenAt(int par1, int par2) + { + return this.biomeCache.getBiomeGenAt(par1, par2); + } + + /** + * Returns a list of rainfall values for the specified blocks. Args: listToReuse, x, z, width, length. + */ + public float[] getRainfall(float[] par1ArrayOfFloat, int par2, int par3, int par4, int par5) + { + IntCache.resetIntCache(); + + if (par1ArrayOfFloat == null || par1ArrayOfFloat.length < par4 * par5) + { + par1ArrayOfFloat = new float[par4 * par5]; + } + + int[] var6 = this.biomeIndexLayer.getInts(par2, par3, par4, par5); + + for (int var7 = 0; var7 < par4 * par5; ++var7) + { + float var8 = (float)BiomeGenBase.biomeList[var6[var7]].getIntRainfall() / 65536.0F; + + if (var8 > 1.0F) + { + var8 = 1.0F; + } + + par1ArrayOfFloat[var7] = var8; + } + + return par1ArrayOfFloat; + } + + @SideOnly(Side.CLIENT) + + /** + * Return an adjusted version of a given temperature based on the y height + */ + public float getTemperatureAtHeight(float par1, int par2) + { + return par1; + } + + /** + * Returns a list of temperatures to use for the specified blocks. Args: listToReuse, x, y, width, length + */ + public float[] getTemperatures(float[] par1ArrayOfFloat, int par2, int par3, int par4, int par5) + { + IntCache.resetIntCache(); + + if (par1ArrayOfFloat == null || par1ArrayOfFloat.length < par4 * par5) + { + par1ArrayOfFloat = new float[par4 * par5]; + } + + int[] var6 = this.biomeIndexLayer.getInts(par2, par3, par4, par5); + + for (int var7 = 0; var7 < par4 * par5; ++var7) + { + float var8 = (float)BiomeGenBase.biomeList[var6[var7]].getIntTemperature() / 65536.0F; + + if (var8 > 1.0F) + { + var8 = 1.0F; + } + + par1ArrayOfFloat[var7] = var8; + } + + return par1ArrayOfFloat; + } + + /** + * Returns an array of biomes for the location input. + */ + public BiomeGenBase[] getBiomesForGeneration(BiomeGenBase[] par1ArrayOfBiomeGenBase, int par2, int par3, int par4, int par5) + { + IntCache.resetIntCache(); + + if (par1ArrayOfBiomeGenBase == null || par1ArrayOfBiomeGenBase.length < par4 * par5) + { + par1ArrayOfBiomeGenBase = new BiomeGenBase[par4 * par5]; + } + + int[] var6 = this.genBiomes.getInts(par2, par3, par4, par5); + + for (int var7 = 0; var7 < par4 * par5; ++var7) + { + par1ArrayOfBiomeGenBase[var7] = BiomeGenBase.biomeList[var6[var7]]; + } + + return par1ArrayOfBiomeGenBase; + } + + /** + * Returns biomes to use for the blocks and loads the other data like temperature and humidity onto the + * WorldChunkManager Args: oldBiomeList, x, z, width, depth + */ + public BiomeGenBase[] loadBlockGeneratorData(BiomeGenBase[] par1ArrayOfBiomeGenBase, int par2, int par3, int par4, int par5) + { + return this.getBiomeGenAt(par1ArrayOfBiomeGenBase, par2, par3, par4, par5, true); + } + + /** + * Return a list of biomes for the specified blocks. Args: listToReuse, x, y, width, length, cacheFlag (if false, + * don't check biomeCache to avoid infinite loop in BiomeCacheBlock) + */ + public BiomeGenBase[] getBiomeGenAt(BiomeGenBase[] par1ArrayOfBiomeGenBase, int par2, int par3, int par4, int par5, boolean par6) + { + IntCache.resetIntCache(); + + if (par1ArrayOfBiomeGenBase == null || par1ArrayOfBiomeGenBase.length < par4 * par5) + { + par1ArrayOfBiomeGenBase = new BiomeGenBase[par4 * par5]; + } + + if (par6 && par4 == 16 && par5 == 16 && (par2 & 15) == 0 && (par3 & 15) == 0) + { + BiomeGenBase[] var9 = this.biomeCache.getCachedBiomes(par2, par3); + System.arraycopy(var9, 0, par1ArrayOfBiomeGenBase, 0, par4 * par5); + return par1ArrayOfBiomeGenBase; + } + else + { + int[] var7 = this.biomeIndexLayer.getInts(par2, par3, par4, par5); + + for (int var8 = 0; var8 < par4 * par5; ++var8) + { + par1ArrayOfBiomeGenBase[var8] = BiomeGenBase.biomeList[var7[var8]]; + } + + return par1ArrayOfBiomeGenBase; + } + } + + /** + * checks given Chunk's Biomes against List of allowed ones + */ + public boolean areBiomesViable(int par1, int par2, int par3, List par4List) + { + IntCache.resetIntCache(); + int var5 = par1 - par3 >> 2; + int var6 = par2 - par3 >> 2; + int var7 = par1 + par3 >> 2; + int var8 = par2 + par3 >> 2; + int var9 = var7 - var5 + 1; + int var10 = var8 - var6 + 1; + int[] var11 = this.genBiomes.getInts(var5, var6, var9, var10); + + for (int var12 = 0; var12 < var9 * var10; ++var12) + { + BiomeGenBase var13 = BiomeGenBase.biomeList[var11[var12]]; + + if (!par4List.contains(var13)) + { + return false; + } + } + + return true; + } + + /** + * Finds a valid position within a range, that is in one of the listed biomes. Searches {par1,par2} +-par3 blocks. + * Strongly favors positive y positions. + */ + public ChunkPosition findBiomePosition(int par1, int par2, int par3, List par4List, Random par5Random) + { + IntCache.resetIntCache(); + int var6 = par1 - par3 >> 2; + int var7 = par2 - par3 >> 2; + int var8 = par1 + par3 >> 2; + int var9 = par2 + par3 >> 2; + int var10 = var8 - var6 + 1; + int var11 = var9 - var7 + 1; + int[] var12 = this.genBiomes.getInts(var6, var7, var10, var11); + ChunkPosition var13 = null; + int var14 = 0; + + for (int var15 = 0; var15 < var10 * var11; ++var15) + { + int var16 = var6 + var15 % var10 << 2; + int var17 = var7 + var15 / var10 << 2; + BiomeGenBase var18 = BiomeGenBase.biomeList[var12[var15]]; + + if (par4List.contains(var18) && (var13 == null || par5Random.nextInt(var14 + 1) == 0)) + { + var13 = new ChunkPosition(var16, 0, var17); + ++var14; + } + } + + return var13; + } + + /** + * Calls the WorldChunkManager's biomeCache.cleanupCache() + */ + public void cleanupCache() + { + this.biomeCache.cleanupCache(); + } + + public GenLayer[] getModdedBiomeGenerators(WorldType worldType, long seed, GenLayer[] original) + { + WorldTypeEvent.InitBiomeGens event = new WorldTypeEvent.InitBiomeGens(worldType, seed, original); + MinecraftForge.TERRAIN_GEN_BUS.post(event); + return event.newBiomeGens; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/WorldGeneratorPromisedLandPortal.java b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldGeneratorPromisedLandPortal.java new file mode 100644 index 000000000..37f3d4a12 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldGeneratorPromisedLandPortal.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.helpers; + +import java.util.Random; + +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.World; +import cpw.mods.fml.common.IWorldGenerator; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.worldgen.WorldGenPromisedLandPortal; + +public class WorldGeneratorPromisedLandPortal implements IWorldGenerator +{ + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) + { + switch (world.provider.dimensionId) + { + case 20: generatePromisedLand(world, random, chunkX*16, chunkZ*16); + case 0: generateSurface(world, random, chunkX*16, chunkZ*16); + } + } + + + + private void generateSurface(World world, Random random, int blockX, int blockZ) + { + (new WorldGenPromisedLandPortal()).generate(world, random, 0, 64, 0); + } + + private void generatePromisedLand(World world, Random random, int blockX, int blockZ) + { + (new WorldGenPromisedLandPortal()).generate(world, random, 0, 64, 0); + } + +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/WorldProviderPromised.java b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldProviderPromised.java new file mode 100644 index 000000000..56b03bb52 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldProviderPromised.java @@ -0,0 +1,155 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +//import tdwp_ftw.biomesop.helpers.WorldChunkManagerPromised; + +import net.minecraft.block.Block; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.WorldProvider; +import net.minecraft.world.gen.ChunkProviderHell; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.WorldChunkManagerHell; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; + +public class WorldProviderPromised extends WorldProvider +{ + public void registerWorldChunkManager() + { + this.worldChunkMgr = new WorldChunkManagerHell(mod_BiomesOPlenty.promisedLand, 0.8F, 0.1F); + //this.worldChunkMgr = new WorldChunkManagerPromised(worldObj); + this.dimensionId = mod_BiomesOPlenty.promisedLandDimID; + } + + /** + * A boolean that tells if a world does not have a sky. Used in calculating weather and skylight + */ + public boolean hasNoSky = false; + + public String getDimensionName() + { + return "Promised Land"; + } + + public boolean canRespawnHere() + { + return false; + } + + /** + * Calculates the angle of sun and moon in the sky relative to a specified time (usually worldTime) + */ + public float calculateCelestialAngle(long par1, float par3) + { + return 1.0F; + } + + /** + * the y level at which clouds are rendered. + */ + public float getCloudHeight() + { + return 0.0F; + } + + public boolean darkenSkyDuringRain() + { + return false; + } + + /** + * Will check if the x, z position specified is alright to be set as the map spawn point + */ + public boolean canCoordinateBeSpawn(int par1, int par2) + { + int var3 = this.worldObj.getFirstUncoveredBlock(par1, par2); + return var3 == mod_BiomesOPlenty.holyGrass.blockID; + } + + /** + * Gets the hard-coded portal location to use when entering this dimension. + */ + public ChunkCoordinates getEntrancePortalLocation() + { + return new ChunkCoordinates(100, 50, 0); + } + + public int getAverageGroundLevel() + { + return 50; + } + + public double getHorizon(World world) + { + return 0.6D; + } + + @SideOnly(Side.CLIENT) + + public boolean hasVoidParticles(boolean var1) + { + return false; + } + + @SideOnly(Side.CLIENT) + public boolean isSkyColored() + { + return true; + } + + @Override + public double getVoidFogYFactor() + { + return 1.0D; + } + + @SideOnly(Side.CLIENT) + + /** + * Return Vec3D with biome specific fog color + */ + public Vec3 getFogColor(float par1, float par2) + { + float var3 = MathHelper.cos(par1 * (float)Math.PI * 2.0F) * 2.0F + 0.5F; + + if (var3 < 0.0F) + { + var3 = 0.0F; + } + + if (var3 > 1.0F) + { + var3 = 1.0F; + } + + float var4 = 1.0F; + float var5 = 0.91764705882F; + float var6 = 0.4F; + var4 *= var3 * 3.94F + 0.06F; + var5 *= var3 * 0.94F + 0.06F; + var6 *= var3 * 0.91F + 0.09F; + return this.worldObj.getWorldVec3Pool().getVecFromPool((double)var4, (double)var5, (double)var6); + } + + @Override + public String getWelcomeMessage() + { + return "Entering the Promised Land"; + } + + @Override + public String getDepartMessage() + { + return "Leaving the Promised Land"; + } + + @Override + public IChunkProvider createChunkGenerator() + { + return new ChunkProviderPromised(this.worldObj, this.worldObj.getSeed()); + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/helpers/WorldTypeSize.java b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldTypeSize.java new file mode 100644 index 000000000..73407648b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/helpers/WorldTypeSize.java @@ -0,0 +1,16 @@ +package tdwp_ftw.biomesop.helpers; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.world.WorldType; +import net.minecraftforge.event.ForgeSubscribe; +import net.minecraftforge.event.terraingen.WorldTypeEvent; + +public class WorldTypeSize +{ + @ForgeSubscribe + public void BiomeSize(WorldTypeEvent.BiomeSize event) + { + event.newSize = (byte)mod_BiomesOPlenty.biomeSize; + } + +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemAncientStaff.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemAncientStaff.java new file mode 100644 index 000000000..b78bfef4b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemAncientStaff.java @@ -0,0 +1,149 @@ +package tdwp_ftw.biomesop.items; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.TeleporterPromised; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; + +public class ItemAncientStaff extends Item +{ + + public ItemAncientStaff(int par1) + { + super(par1); + this.maxStackSize = 1; + } + + public boolean hasEffect(ItemStack par1ItemStack) + { + return true; + } + + /** + * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer + */ + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if (par3EntityPlayer.dimension == 0) + { + par3EntityPlayer.addChatMessage("A gateway to the Promised Land has been buried at the origin of this world."); + + int var99 = 32; + + par2World.setBlock(-1, 62 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(0, 62 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(1, 62 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(1, 62 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(1, 62 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(0, 62 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(-1, 62 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(-1, 62 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(0, 62 - var99, 0, Block.whiteStone.blockID); + + par2World.setBlock(-1, 63 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(0, 63 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(1, 63 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(2, 63 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(2, 63 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(2, 63 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(1, 63 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(0, 63 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(-1, 63 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(-2, 63 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(-2, 63 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(-2, 63 - var99, 1, Block.whiteStone.blockID); + + par2World.setBlock(-1, 64 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(0, 64 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(1, 64 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(2, 64 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(2, 64 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(2, 64 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(1, 64 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(0, 64 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(-1, 64 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(-2, 64 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(-2, 64 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(-2, 64 - var99, 1, Block.whiteStone.blockID); + + par2World.setBlock(-1, 65 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(0, 65 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(1, 65 - var99, 2, Block.whiteStone.blockID); + par2World.setBlock(2, 65 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(2, 65 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(2, 65 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(1, 65 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(0, 65 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(-1, 65 - var99, -2, Block.whiteStone.blockID); + par2World.setBlock(-2, 65 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(-2, 65 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(-2, 65 - var99, 1, Block.whiteStone.blockID); + + par2World.setBlock(-1, 66 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(0, 66 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(1, 66 - var99, 1, Block.whiteStone.blockID); + par2World.setBlock(1, 66 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(1, 66 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(0, 66 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(-1, 66 - var99, -1, Block.whiteStone.blockID); + par2World.setBlock(-1, 66 - var99, 0, Block.whiteStone.blockID); + par2World.setBlock(0, 66 - var99, 0, Block.whiteStone.blockID); + + par2World.setBlock(-1, 63 - var99, 1, 0); + par2World.setBlock(0, 63 - var99, 1, 0); + par2World.setBlock(1, 63 - var99, 1, 0); + par2World.setBlock(1, 63 - var99, 0, 0); + par2World.setBlock(1, 63 - var99, -1, 0); + par2World.setBlock(0, 63 - var99, -1, 0); + par2World.setBlock(-1, 63 - var99, -1, 0); + par2World.setBlock(-1, 63 - var99, 0, 0); + par2World.setBlock(0, 63 - var99, 0, 0); + + par2World.setBlock(-1, 64 - var99, 1, 0); + par2World.setBlock(0, 64 - var99, 1, 0); + par2World.setBlock(1, 64 - var99, 1, 0); + par2World.setBlock(1, 64 - var99, 0, 0); + par2World.setBlock(1, 64 - var99, -1, 0); + par2World.setBlock(0, 64 - var99, -1, 0); + par2World.setBlock(-1, 64 - var99, -1, 0); + par2World.setBlock(-1, 64 - var99, 0, 0); + + par2World.setBlock(-1, 65 - var99, 1, 0); + par2World.setBlock(0, 65 - var99, 1, 0); + par2World.setBlock(1, 65 - var99, 1, 0); + par2World.setBlock(1, 65 - var99, 0, 0); + par2World.setBlock(1, 65 - var99, -1, 0); + par2World.setBlock(0, 65 - var99, -1, 0); + par2World.setBlock(-1, 65 - var99, -1, 0); + par2World.setBlock(-1, 65 - var99, 0, 0); + par2World.setBlock(0, 65 - var99, 0, 0); + + par2World.setBlock(0, 64 - var99, 0, mod_BiomesOPlenty.promisedPortal.blockID); + + par2World.setBlock(-2, 64 - var99, 2, 0); + par2World.setBlock(2, 64 - var99, 2, 0); + par2World.setBlock(2, 64 - var99, -2, 0); + par2World.setBlock(-2, 64 - var99, -2, 0); + + par2World.setBlock(-2, 65 - var99, 2, 0); + par2World.setBlock(2, 65 - var99, 2, 0); + par2World.setBlock(2, 65 - var99, -2, 0); + par2World.setBlock(-2, 65 - var99, -2, 0); + + par2World.setBlock(-2, 66 - var99, 2, 0); + par2World.setBlock(2, 66 - var99, 2, 0); + par2World.setBlock(2, 66 - var99, -2, 0); + par2World.setBlock(-2, 66 - var99, -2, 0); + } + + return par1ItemStack; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemBOPRecord.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemBOPRecord.java new file mode 100644 index 000000000..1bfec1a16 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemBOPRecord.java @@ -0,0 +1,103 @@ +package tdwp_ftw.biomesop.items; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.TeleporterPromised; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import net.minecraft.item.Item; +import net.minecraft.item.ItemRecord; +import net.minecraft.item.ItemStack; +import net.minecraft.item.EnumRarity; +import net.minecraft.block.Block; +import net.minecraft.block.BlockJukeBox; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class ItemBOPRecord extends ItemRecord +{ + /** List of all record items and their names. */ + private static final Map records = new HashMap(); + + /** The name of the record. */ + public final String recordName; + + public ItemBOPRecord(int par1, String par2Str) + { + super(par1, par2Str); + this.recordName = par2Str; + this.maxStackSize = 1; + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + records.put(par2Str, this); + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + if (par3World.getBlockId(par4, par5, par6) == Block.jukebox.blockID && par3World.getBlockMetadata(par4, par5, par6) == 0) + { + if (par3World.isRemote) + { + return true; + } + else + { + ((BlockJukeBox)Block.jukebox).insertRecord(par3World, par4, par5, par6, par1ItemStack); + par3World.playAuxSFXAtEntity((EntityPlayer)null, 1005, par4, par5, par6, this.itemID); + --par1ItemStack.stackSize; + return true; + } + } + else + { + return false; + } + } + + @SideOnly(Side.CLIENT) + + /** + * allows items to add custom lines of information to the mouseover description + */ + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) + { + par3List.add(this.getRecordTitle()); + } + + @SideOnly(Side.CLIENT) + + /** + * Return the title for this record. + */ + public String getRecordTitle() + { + return "Tim Rurkowski - Traversia"; + } + + @SideOnly(Side.CLIENT) + + /** + * Return an item rarity from EnumRarity + */ + public EnumRarity getRarity(ItemStack par1ItemStack) + { + return EnumRarity.rare; + } + + @SideOnly(Side.CLIENT) + + /** + * Return the record item corresponding to the given name. + */ + public static ItemBOPRecord getRecord(String par0Str) + { + return (ItemBOPRecord)records.get(par0Str); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemBOPRecordMud.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemBOPRecordMud.java new file mode 100644 index 000000000..49565ed89 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemBOPRecordMud.java @@ -0,0 +1,103 @@ +package tdwp_ftw.biomesop.items; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import tdwp_ftw.biomesop.helpers.TeleporterPromised; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import net.minecraft.item.Item; +import net.minecraft.item.ItemRecord; +import net.minecraft.item.ItemStack; +import net.minecraft.item.EnumRarity; +import net.minecraft.block.Block; +import net.minecraft.block.BlockJukeBox; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class ItemBOPRecordMud extends ItemRecord +{ + /** List of all record items and their names. */ + private static final Map records = new HashMap(); + + /** The name of the record. */ + public final String recordName; + + public ItemBOPRecordMud(int par1, String par2Str) + { + super(par1, par2Str); + this.recordName = par2Str; + this.maxStackSize = 1; + this.setCreativeTab(mod_BiomesOPlenty.tabBiomesOPlenty); + records.put(par2Str, this); + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + if (par3World.getBlockId(par4, par5, par6) == Block.jukebox.blockID && par3World.getBlockMetadata(par4, par5, par6) == 0) + { + if (par3World.isRemote) + { + return true; + } + else + { + ((BlockJukeBox)Block.jukebox).insertRecord(par3World, par4, par5, par6, par1ItemStack); + par3World.playAuxSFXAtEntity((EntityPlayer)null, 1005, par4, par5, par6, this.itemID); + --par1ItemStack.stackSize; + return true; + } + } + else + { + return false; + } + } + + @SideOnly(Side.CLIENT) + + /** + * allows items to add custom lines of information to the mouseover description + */ + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) + { + par3List.add(this.getRecordTitle()); + } + + @SideOnly(Side.CLIENT) + + /** + * Return the title for this record. + */ + public String getRecordTitle() + { + return "???"; + } + + @SideOnly(Side.CLIENT) + + /** + * Return an item rarity from EnumRarity + */ + public EnumRarity getRarity(ItemStack par1ItemStack) + { + return EnumRarity.rare; + } + + @SideOnly(Side.CLIENT) + + /** + * Return the record item corresponding to the given name. + */ + public static ItemBOPRecordMud getRecord(String par0Str) + { + return (ItemBOPRecordMud)records.get(par0Str); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemBamboo.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemBamboo.java new file mode 100644 index 000000000..fd12ce954 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemBamboo.java @@ -0,0 +1,97 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBamboo extends Item +{ + /** The ID of the block the reed will spawn when used from inventory bar. */ + private int spawnID; + + public ItemBamboo(int par1, Block par2Block) + { + super(par1); + this.spawnID = par2Block.blockID; + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int var11 = par3World.getBlockId(par4, par5, par6); + + if (var11 == Block.snow.blockID) + { + par7 = 1; + } + else if (var11 != Block.vine.blockID && var11 != Block.tallGrass.blockID && var11 != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) + { + return false; + } + else if (par1ItemStack.stackSize == 0) + { + return false; + } + else + { + if (par3World.canPlaceEntityOnSide(this.spawnID, par4, par5, par6, false, par7, (Entity)null)) + { + Block var12 = Block.blocksList[this.spawnID]; + int var13 = var12.onBlockPlaced(par3World, par4, par5, par6, par7, par8, par9, par10, 0); + + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.spawnID, var13)) + { + if (par3World.getBlockId(par4, par5, par6) == this.spawnID) + { + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); + Block.blocksList[this.spawnID].onPostBlockPlaced(par3World, par4, par5, par6, var13); + } + + par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); + --par1ItemStack.stackSize; + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemBarley.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemBarley.java new file mode 100644 index 000000000..cb5b7505e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemBarley.java @@ -0,0 +1,97 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBarley extends Item +{ + /** The ID of the block the reed will spawn when used from inventory bar. */ + private int spawnID; + + public ItemBarley(int par1, Block par2Block) + { + super(par1); + this.spawnID = par2Block.blockID; + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int var11 = par3World.getBlockId(par4, par5, par6); + + if (var11 == Block.snow.blockID) + { + par7 = 1; + } + else if (var11 != Block.vine.blockID && var11 != Block.tallGrass.blockID && var11 != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) + { + return false; + } + else if (par1ItemStack.stackSize == 0) + { + return false; + } + else + { + if (par3World.canPlaceEntityOnSide(this.spawnID, par4, par5, par6, false, par7, (Entity)null)) + { + Block var12 = Block.blocksList[this.spawnID]; + int var13 = var12.onBlockPlaced(par3World, par4, par5, par6, par7, par8, par9, par10, 0); + + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.spawnID, var13)) + { + if (par3World.getBlockId(par4, par5, par6) == this.spawnID) + { + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); + Block.blocksList[this.spawnID].onPostBlockPlaced(par3World, par4, par5, par6, var13); + } + + par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); + --par1ItemStack.stackSize; + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemBush.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemBush.java new file mode 100644 index 000000000..3e805ba12 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemBush.java @@ -0,0 +1,97 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBush extends Item +{ + /** The ID of the block the reed will spawn when used from inventory bar. */ + private int spawnID; + + public ItemBush(int par1, Block par2Block) + { + super(par1); + this.spawnID = par2Block.blockID; + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int var11 = par3World.getBlockId(par4, par5, par6); + + if (var11 == Block.snow.blockID) + { + par7 = 1; + } + else if (var11 != Block.vine.blockID && var11 != Block.tallGrass.blockID && var11 != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) + { + return false; + } + else if (par1ItemStack.stackSize == 0) + { + return false; + } + else + { + if (par3World.canPlaceEntityOnSide(this.spawnID, par4, par5, par6, false, par7, (Entity)null)) + { + Block var12 = Block.blocksList[this.spawnID]; + int var13 = var12.onBlockPlaced(par3World, par4, par5, par6, par7, par8, par9, par10, 0); + + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.spawnID, 1)) + { + if (par3World.getBlockId(par4, par5, par6) == this.spawnID) + { + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); + Block.blocksList[this.spawnID].onPostBlockPlaced(par3World, par4, par5, par6, var13); + } + + par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); + --par1ItemStack.stackSize; + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemCattail.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemCattail.java new file mode 100644 index 000000000..51da0ab35 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemCattail.java @@ -0,0 +1,97 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemCattail extends Item +{ + /** The ID of the block the reed will spawn when used from inventory bar. */ + private int spawnID; + + public ItemCattail(int par1, Block par2Block) + { + super(par1); + this.spawnID = par2Block.blockID; + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int var11 = par3World.getBlockId(par4, par5, par6); + + if (var11 == Block.snow.blockID) + { + par7 = 1; + } + else if (var11 != Block.vine.blockID && var11 != Block.tallGrass.blockID && var11 != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) + { + return false; + } + else if (par1ItemStack.stackSize == 0) + { + return false; + } + else + { + if (par3World.canPlaceEntityOnSide(this.spawnID, par4, par5, par6, false, par7, (Entity)null)) + { + Block var12 = Block.blocksList[this.spawnID]; + int var13 = var12.onBlockPlaced(par3World, par4, par5, par6, par7, par8, par9, par10, 0); + + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.spawnID, var13)) + { + if (par3World.getBlockId(par4, par5, par6) == this.spawnID) + { + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); + Block.blocksList[this.spawnID].onPostBlockPlaced(par3World, par4, par5, par6, var13); + } + + par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); + --par1ItemStack.stackSize; + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemEnderporter.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemEnderporter.java new file mode 100644 index 000000000..910892de5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemEnderporter.java @@ -0,0 +1,49 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; + +public class ItemEnderporter extends Item +{ + + public ItemEnderporter(int par1) + { + super(par1); + this.maxStackSize = 1; + this.setMaxDamage(9); + } + + public boolean hasEffect(ItemStack par1ItemStack) + { + return true; + } + + /** + * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer + */ + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if (par3EntityPlayer.ridingEntity != null) + { + return par1ItemStack; + } + else + { + par1ItemStack.damageItem(1, par3EntityPlayer); + par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 999)); + par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.resistance.id, 200, 999)); + par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.nightVision.id, 100, 999)); + par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.regeneration.id, 200, 3)); + par3EntityPlayer.setPosition(par2World.getSpawnPoint().posX, 256, par2World.getSpawnPoint().posZ); + par2World.playSoundAtEntity(par3EntityPlayer, "random.levelup", 1.0F, 5.0F); + + return par1ItemStack; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemMediumGrass.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemMediumGrass.java new file mode 100644 index 000000000..1857348a0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemMediumGrass.java @@ -0,0 +1,97 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemMediumGrass extends Item +{ + /** The ID of the block the reed will spawn when used from inventory bar. */ + private int spawnID; + + public ItemMediumGrass(int par1, Block par2Block) + { + super(par1); + this.spawnID = par2Block.blockID; + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int var11 = par3World.getBlockId(par4, par5, par6); + + if (var11 == Block.snow.blockID) + { + par7 = 1; + } + else if (var11 != Block.vine.blockID && var11 != Block.tallGrass.blockID && var11 != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) + { + return false; + } + else if (par1ItemStack.stackSize == 0) + { + return false; + } + else + { + if (par3World.canPlaceEntityOnSide(this.spawnID, par4, par5, par6, false, par7, (Entity)null)) + { + Block var12 = Block.blocksList[this.spawnID]; + int var13 = var12.onBlockPlaced(par3World, par4, par5, par6, par7, par8, par9, par10, 0); + + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.spawnID, 1)) + { + if (par3World.getBlockId(par4, par5, par6) == this.spawnID) + { + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); + Block.blocksList[this.spawnID].onPostBlockPlaced(par3World, par4, par5, par6, var13); + } + + par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); + --par1ItemStack.stackSize; + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemShortGrass.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemShortGrass.java new file mode 100644 index 000000000..97e03e664 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemShortGrass.java @@ -0,0 +1,97 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemShortGrass extends Item +{ + /** The ID of the block the reed will spawn when used from inventory bar. */ + private int spawnID; + + public ItemShortGrass(int par1, Block par2Block) + { + super(par1); + this.spawnID = par2Block.blockID; + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int var11 = par3World.getBlockId(par4, par5, par6); + + if (var11 == Block.snow.blockID) + { + par7 = 1; + } + else if (var11 != Block.vine.blockID && var11 != Block.tallGrass.blockID && var11 != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) + { + return false; + } + else if (par1ItemStack.stackSize == 0) + { + return false; + } + else + { + if (par3World.canPlaceEntityOnSide(this.spawnID, par4, par5, par6, false, par7, (Entity)null)) + { + Block var12 = Block.blocksList[this.spawnID]; + int var13 = var12.onBlockPlaced(par3World, par4, par5, par6, par7, par8, par9, par10, 0); + + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.spawnID, 1)) + { + if (par3World.getBlockId(par4, par5, par6) == this.spawnID) + { + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); + Block.blocksList[this.spawnID].onPostBlockPlaced(par3World, par4, par5, par6, var13); + } + + par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); + --par1ItemStack.stackSize; + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/items/ItemSprout.java b/src/minecraft/tdwp_ftw/biomesop/items/ItemSprout.java new file mode 100644 index 000000000..fca625f47 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/items/ItemSprout.java @@ -0,0 +1,97 @@ +package tdwp_ftw.biomesop.items; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemSprout extends Item +{ + /** The ID of the block the reed will spawn when used from inventory bar. */ + private int spawnID; + + public ItemSprout(int par1, Block par2Block) + { + super(par1); + this.spawnID = par2Block.blockID; + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int var11 = par3World.getBlockId(par4, par5, par6); + + if (var11 == Block.snow.blockID) + { + par7 = 1; + } + else if (var11 != Block.vine.blockID && var11 != Block.tallGrass.blockID && var11 != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack)) + { + return false; + } + else if (par1ItemStack.stackSize == 0) + { + return false; + } + else + { + if (par3World.canPlaceEntityOnSide(this.spawnID, par4, par5, par6, false, par7, (Entity)null)) + { + Block var12 = Block.blocksList[this.spawnID]; + int var13 = var12.onBlockPlaced(par3World, par4, par5, par6, par7, par8, par9, par10, 0); + + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, this.spawnID, 1)) + { + if (par3World.getBlockId(par4, par5, par6) == this.spawnID) + { + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, par2EntityPlayer); + Block.blocksList[this.spawnID].onPostBlockPlaced(par3World, par4, par5, par6, var13); + } + + par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), var12.stepSound.getPlaceSound(), (var12.stepSound.getVolume() + 1.0F) / 2.0F, var12.stepSound.getPitch() * 0.8F); + --par1ItemStack.stackSize; + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/mobs/EntityJungleSpider.java b/src/minecraft/tdwp_ftw/biomesop/mobs/EntityJungleSpider.java new file mode 100644 index 000000000..4a4cd0ec8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/mobs/EntityJungleSpider.java @@ -0,0 +1,76 @@ +package tdwp_ftw.biomesop.mobs; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.monster.EntitySpider; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; + +public class EntityJungleSpider extends EntitySpider +{ + public EntityJungleSpider(World par1World) + { + super(par1World); + this.texture = "/tdwp_ftw/biomesop/res/mobs/junglespider.png"; + this.setSize(0.4F, 0.3F); + this.moveSpeed = 1.1F; + } + + public int getMaxHealth() + { + return 8; + } + + /** + * How large the spider should be scaled. + */ + public float spiderScaleAmount() + { + return 0.4F; + } + + public float getShadowSize() + { + return 0.0F; + } + + public boolean attackEntityAsMob(Entity par1Entity) + { + if (super.attackEntityAsMob(par1Entity)) + { + if (par1Entity instanceof EntityLiving) + { + byte var2 = 0; + + if (this.worldObj.difficultySetting > 1) + { + if (this.worldObj.difficultySetting == 2) + { + var2 = 7; + } + else if (this.worldObj.difficultySetting == 3) + { + var2 = 15; + } + } + + if (var2 > 0) + { + ((EntityLiving)par1Entity).addPotionEffect(new PotionEffect(Potion.blindness.id, var2 * 20, 0)); + } + } + + return true; + } + else + { + return false; + } + } + + /** + * Initialize this creature. + */ + public void initCreature() {} +} diff --git a/src/minecraft/tdwp_ftw/biomesop/mobs/EntityRosester.java b/src/minecraft/tdwp_ftw/biomesop/mobs/EntityRosester.java new file mode 100644 index 000000000..e2f7a5af2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/mobs/EntityRosester.java @@ -0,0 +1,192 @@ +package tdwp_ftw.biomesop.mobs; + +import net.minecraft.entity.EntityAgeable; +import net.minecraft.entity.ai.EntityAIFollowParent; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMate; +import net.minecraft.entity.ai.EntityAIPanic; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAITempt; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemSeeds; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityRosester extends EntityChicken +{ + public boolean field_70885_d = false; + public float field_70886_e = 0.0F; + public float destPos = 0.0F; + public float field_70884_g; + public float field_70888_h; + public float field_70889_i = 1.0F; + + /** The time until the next egg is spawned. */ + public int timeUntilNextEgg; + + public EntityRosester(World par1World) + { + super(par1World); + this.texture = "/tdwp_ftw/biomesop/res/mobs/rosester.png"; + this.setSize(0.3F, 0.7F); + this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000; + float var2 = 0.25F; + this.tasks.addTask(0, new EntityAISwimming(this)); + this.tasks.addTask(1, new EntityAIPanic(this, 0.38F)); + this.tasks.addTask(2, new EntityAIMate(this, var2)); + this.tasks.addTask(3, new EntityAITempt(this, 0.25F, Item.seeds.itemID, false)); + this.tasks.addTask(4, new EntityAIFollowParent(this, 0.28F)); + this.tasks.addTask(5, new EntityAIWander(this, var2)); + this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + this.tasks.addTask(7, new EntityAILookIdle(this)); + } + + /** + * Returns true if the newer Entity AI code should be run + */ + public boolean isAIEnabled() + { + return true; + } + + public int getMaxHealth() + { + return 4; + } + + /** + * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons + * use this to react to sunlight and start to burn. + */ + public void onLivingUpdate() + { + super.onLivingUpdate(); + this.field_70888_h = this.field_70886_e; + this.field_70884_g = this.destPos; + this.destPos = (float)((double)this.destPos + (double)(this.onGround ? -1 : 4) * 0.3D); + + if (this.destPos < 0.0F) + { + this.destPos = 0.0F; + } + + if (this.destPos > 1.0F) + { + this.destPos = 1.0F; + } + + if (!this.onGround && this.field_70889_i < 1.0F) + { + this.field_70889_i = 1.0F; + } + + this.field_70889_i = (float)((double)this.field_70889_i * 0.9D); + + if (!this.onGround && this.motionY < 0.0D) + { + this.motionY *= 0.6D; + } + + this.field_70886_e += this.field_70889_i * 2.0F; + + if (!this.isChild() && !this.worldObj.isRemote && --this.timeUntilNextEgg <= 0) + { + this.playSound("mob.chicken.plop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + this.entityDropItem(new ItemStack(Item.dyePowder, 1, 1), 0.0F); + this.timeUntilNextEgg = this.rand.nextInt(6000) + 6000; + } + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + protected void fall(float par1) {} + + /** + * Returns the sound this mob makes while it's alive. + */ + protected String getLivingSound() + { + return "mob.chicken.say"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + protected String getHurtSound() + { + return "mob.chicken.hurt"; + } + + /** + * Returns the sound this mob makes on death. + */ + protected String getDeathSound() + { + return "mob.chicken.hurt"; + } + + /** + * Plays step sound at given x, y, z for the entity + */ + protected void playStepSound(int par1, int par2, int par3, int par4) + { + this.playSound("mob.chicken.step", 0.15F, 1.0F); + } + + /** + * Returns the item ID for the item the mob drops on death. + */ + protected int getDropItemId() + { + return Item.feather.itemID; + } + + /** + * Drop 0-2 items of this living's type + */ + protected void dropFewItems(boolean par1, int par2) + { + int var3 = this.rand.nextInt(3) + this.rand.nextInt(1 + par2); + + for (int var4 = 0; var4 < var3; ++var4) + { + this.entityDropItem(new ItemStack(Item.dyePowder, 1, 1), 0.0F); + } + + if (this.isBurning()) + { + this.dropItem(Item.chickenCooked.itemID, 1); + } + else + { + this.dropItem(Item.chickenRaw.itemID, 1); + } + } + + /** + * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. + */ + public EntityRosester spawnBabyAnimal(EntityAgeable par1EntityAgeable) + { + return new EntityRosester(this.worldObj); + } + + /** + * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on + * the animal type) + */ + public boolean isBreedingItem(ItemStack par1ItemStack) + { + return par1ItemStack != null && par1ItemStack.getItem() instanceof ItemSeeds; + } + + public EntityAgeable createChild(EntityAgeable par1EntityAgeable) + { + return this.spawnBabyAnimal(par1EntityAgeable); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/mod_BiomesOPlenty.java b/src/minecraft/tdwp_ftw/biomesop/mod_BiomesOPlenty.java new file mode 100644 index 000000000..f3a8ecf8a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/mod_BiomesOPlenty.java @@ -0,0 +1,3379 @@ +package tdwp_ftw.biomesop; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityEggInfo; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumArmorMaterial; +import net.minecraft.item.EnumToolMaterial; +import net.minecraft.item.Item; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemSpade; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemSword; +import net.minecraft.potion.Potion; +import net.minecraft.world.gen.structure.MapGenVillage; +import net.minecraft.util.WeightedRandomChestContent; +import java.util.ArrayList; +import java.util.Arrays; +import net.minecraft.stats.Achievement; +import net.minecraft.stats.AchievementList; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.WorldProvider; +import net.minecraftforge.event.terraingen.BiomeEvent; +import net.minecraftforge.common.BiomeManager; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.EnumHelper; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.common.AchievementPage; +import net.minecraftforge.common.DungeonHooks; +import net.minecraftforge.common.ChestGenHooks; +import tdwp_ftw.biomesop.armor.ArmorMuddy; +import tdwp_ftw.biomesop.armor.ArmorAmethyst; +import tdwp_ftw.biomesop.biomes.BiomeGenAlps; +import tdwp_ftw.biomesop.biomes.BiomeGenArctic; +import tdwp_ftw.biomesop.biomes.BiomeGenBadlands; +import tdwp_ftw.biomesop.biomes.BiomeGenBambooForest; +import tdwp_ftw.biomesop.biomes.BiomeGenBayou; +import tdwp_ftw.biomesop.biomes.BiomeGenBirchForest; +import tdwp_ftw.biomesop.biomes.BiomeGenBog; +import tdwp_ftw.biomesop.biomes.BiomeGenBorealForest; +import tdwp_ftw.biomesop.biomes.BiomeGenCanyon; +import tdwp_ftw.biomesop.biomes.BiomeGenChaparral; +import tdwp_ftw.biomesop.biomes.BiomeGenCherryBlossomGrove; +import tdwp_ftw.biomesop.biomes.BiomeGenConiferousForest; +import tdwp_ftw.biomesop.biomes.BiomeGenCrag; +import tdwp_ftw.biomesop.biomes.BiomeGenDeadForest; +import tdwp_ftw.biomesop.biomes.BiomeGenDeadSwamp; +import tdwp_ftw.biomesop.biomes.BiomeGenDeadlands; +import tdwp_ftw.biomesop.biomes.BiomeGenDeciduousForest; +import tdwp_ftw.biomesop.biomes.BiomeGenDesertNew; +import tdwp_ftw.biomesop.biomes.BiomeGenDrylands; +import tdwp_ftw.biomesop.biomes.BiomeGenDunes; +import tdwp_ftw.biomesop.biomes.BiomeGenFen; +import tdwp_ftw.biomesop.biomes.BiomeGenField; +import tdwp_ftw.biomesop.biomes.BiomeGenForestNew; +import tdwp_ftw.biomesop.biomes.BiomeGenFrostForest; +import tdwp_ftw.biomesop.biomes.BiomeGenFungiForest; +import tdwp_ftw.biomesop.biomes.BiomeGenGarden; +import tdwp_ftw.biomesop.biomes.BiomeGenGlacier; +import tdwp_ftw.biomesop.biomes.BiomeGenGrassland; +import tdwp_ftw.biomesop.biomes.BiomeGenGrove; +import tdwp_ftw.biomesop.biomes.BiomeGenHeathland; +import tdwp_ftw.biomesop.biomes.BiomeGenHighland; +import tdwp_ftw.biomesop.biomes.BiomeGenHillsNew; +import tdwp_ftw.biomesop.biomes.BiomeGenIceSheet; +import tdwp_ftw.biomesop.biomes.BiomeGenIcyHills; +import tdwp_ftw.biomesop.biomes.BiomeGenJadeCliffs; +import tdwp_ftw.biomesop.biomes.BiomeGenJungleNew; +import tdwp_ftw.biomesop.biomes.BiomeGenLushDesert; +import tdwp_ftw.biomesop.biomes.BiomeGenLushSwamp; +import tdwp_ftw.biomesop.biomes.BiomeGenMangrove; +import tdwp_ftw.biomesop.biomes.BiomeGenMapleWoods; +import tdwp_ftw.biomesop.biomes.BiomeGenMarsh; +import tdwp_ftw.biomesop.biomes.BiomeGenMeadow; +import tdwp_ftw.biomesop.biomes.BiomeGenMesa; +import tdwp_ftw.biomesop.biomes.BiomeGenMoor; +import tdwp_ftw.biomesop.biomes.BiomeGenMountain; +import tdwp_ftw.biomesop.biomes.BiomeGenMysticGrove; +import tdwp_ftw.biomesop.biomes.BiomeGenOasis; +import tdwp_ftw.biomesop.biomes.BiomeGenOminousWoods; +import tdwp_ftw.biomesop.biomes.BiomeGenOrchard; +import tdwp_ftw.biomesop.biomes.BiomeGenOriginValley; +import tdwp_ftw.biomesop.biomes.BiomeGenOutback; +import tdwp_ftw.biomesop.biomes.BiomeGenPasture; +import tdwp_ftw.biomesop.biomes.BiomeGenPlainsNew; +import tdwp_ftw.biomesop.biomes.BiomeGenPrairie; +import tdwp_ftw.biomesop.biomes.BiomeGenPromisedLand; +import tdwp_ftw.biomesop.biomes.BiomeGenQuagmire; +import tdwp_ftw.biomesop.biomes.BiomeGenRainforest; +import tdwp_ftw.biomesop.biomes.BiomeGenRedwoodForest; +import tdwp_ftw.biomesop.biomes.BiomeGenSacredSprings; +import tdwp_ftw.biomesop.biomes.BiomeGenSavanna; +import tdwp_ftw.biomesop.biomes.BiomeGenScrubland; +import tdwp_ftw.biomesop.biomes.BiomeGenSeasonalForest; +import tdwp_ftw.biomesop.biomes.BiomeGenShield; +import tdwp_ftw.biomesop.biomes.BiomeGenShore; +import tdwp_ftw.biomesop.biomes.BiomeGenShrubland; +import tdwp_ftw.biomesop.biomes.BiomeGenSnowyWoods; +import tdwp_ftw.biomesop.biomes.BiomeGenSpruceWoods; +import tdwp_ftw.biomesop.biomes.BiomeGenSteppe; +import tdwp_ftw.biomesop.biomes.BiomeGenSwampNew; +import tdwp_ftw.biomesop.biomes.BiomeGenSwampwoods; +import tdwp_ftw.biomesop.biomes.BiomeGenTaigaNew; +import tdwp_ftw.biomesop.biomes.BiomeGenTemperateRainforest; +import tdwp_ftw.biomesop.biomes.BiomeGenThicket; +import tdwp_ftw.biomesop.biomes.BiomeGenTropicalRainforest; +import tdwp_ftw.biomesop.biomes.BiomeGenTropics; +import tdwp_ftw.biomesop.biomes.BiomeGenTundra; +import tdwp_ftw.biomesop.biomes.BiomeGenVolcano; +import tdwp_ftw.biomesop.biomes.BiomeGenWasteland; +import tdwp_ftw.biomesop.biomes.BiomeGenWetland; +import tdwp_ftw.biomesop.biomes.BiomeGenWoodland; +import tdwp_ftw.biomesop.blocks.BlockAcaciaLeaves; +import tdwp_ftw.biomesop.blocks.BlockAcaciaLog; +import tdwp_ftw.biomesop.blocks.BlockAcaciaPlank; +import tdwp_ftw.biomesop.blocks.BlockAcaciaSapling; +import tdwp_ftw.biomesop.blocks.BlockAcaciaSlab; +import tdwp_ftw.biomesop.blocks.BlockAcaciaStairs; +import tdwp_ftw.biomesop.blocks.BlockAlgae; +import tdwp_ftw.biomesop.blocks.BlockAmethystOre; +import tdwp_ftw.biomesop.blocks.BlockAmethystBlock; +import tdwp_ftw.biomesop.blocks.BlockAppleLeaves; +import tdwp_ftw.biomesop.blocks.BlockAppleLeavesFruitless; +import tdwp_ftw.biomesop.blocks.BlockAppleSapling; +import tdwp_ftw.biomesop.blocks.BlockAsh; +import tdwp_ftw.biomesop.blocks.BlockAshStone; +import tdwp_ftw.biomesop.blocks.BlockAutumnLeaves; +import tdwp_ftw.biomesop.blocks.BlockBamboo; +import tdwp_ftw.biomesop.blocks.BlockBambooLeaves; +import tdwp_ftw.biomesop.blocks.BlockBambooThatching; +import tdwp_ftw.biomesop.blocks.BlockBarley; +import tdwp_ftw.biomesop.blocks.BlockBlueFlower; +import tdwp_ftw.biomesop.blocks.BlockBlueLeaves; +import tdwp_ftw.biomesop.blocks.BlockBrownSapling; +import tdwp_ftw.biomesop.blocks.BlockBush; +import tdwp_ftw.biomesop.blocks.BlockCattail; +import tdwp_ftw.biomesop.blocks.BlockCherryLog; +import tdwp_ftw.biomesop.blocks.BlockCherryPlank; +import tdwp_ftw.biomesop.blocks.BlockCherrySlab; +import tdwp_ftw.biomesop.blocks.BlockCherryStairs; +import tdwp_ftw.biomesop.blocks.BlockCragRock; +import tdwp_ftw.biomesop.blocks.BlockDarkLeaves; +import tdwp_ftw.biomesop.blocks.BlockDarkLog; +import tdwp_ftw.biomesop.blocks.BlockDarkPlank; +import tdwp_ftw.biomesop.blocks.BlockDarkSapling; +import tdwp_ftw.biomesop.blocks.BlockDarkSlab; +import tdwp_ftw.biomesop.blocks.BlockDarkStairs; +import tdwp_ftw.biomesop.blocks.BlockDeadGrass; +import tdwp_ftw.biomesop.blocks.BlockDeadLeaves; +import tdwp_ftw.biomesop.blocks.BlockDeadLog; +import tdwp_ftw.biomesop.blocks.BlockDeathbloom; +import tdwp_ftw.biomesop.blocks.BlockDesertGrass; +import tdwp_ftw.biomesop.blocks.BlockDesertSprouts; +import tdwp_ftw.biomesop.blocks.BlockDriedDirt; +import tdwp_ftw.biomesop.blocks.BlockDuneGrass; +import tdwp_ftw.biomesop.blocks.BlockFirLeaves; +import tdwp_ftw.biomesop.blocks.BlockFirLog; +import tdwp_ftw.biomesop.blocks.BlockFirPlank; +import tdwp_ftw.biomesop.blocks.BlockFirSapling; +import tdwp_ftw.biomesop.blocks.BlockFirSlab; +import tdwp_ftw.biomesop.blocks.BlockFirStairs; +import tdwp_ftw.biomesop.blocks.BlockGiantFlowerRed; +import tdwp_ftw.biomesop.blocks.BlockGiantFlowerStem; +import tdwp_ftw.biomesop.blocks.BlockGiantFlowerYellow; +import tdwp_ftw.biomesop.blocks.BlockGlowFlower; +import tdwp_ftw.biomesop.blocks.BlockHardDirt; +import tdwp_ftw.biomesop.blocks.BlockHardIce; +import tdwp_ftw.biomesop.blocks.BlockHardSand; +import tdwp_ftw.biomesop.blocks.BlockHighGrassBottom; +import tdwp_ftw.biomesop.blocks.BlockHighGrassTop; +import tdwp_ftw.biomesop.blocks.BlockHolyGrass; +import tdwp_ftw.biomesop.blocks.BlockHolyLeaves; +import tdwp_ftw.biomesop.blocks.BlockHolyLog; +import tdwp_ftw.biomesop.blocks.BlockHolyPlank; +import tdwp_ftw.biomesop.blocks.BlockHolySapling; +import tdwp_ftw.biomesop.blocks.BlockHolySlab; +import tdwp_ftw.biomesop.blocks.BlockHolyStairs; +import tdwp_ftw.biomesop.blocks.BlockHolyStone; +import tdwp_ftw.biomesop.blocks.BlockHolyTallGrass; +import tdwp_ftw.biomesop.blocks.BlockHydrangea; +import tdwp_ftw.biomesop.blocks.BlockMagicLog; +import tdwp_ftw.biomesop.blocks.BlockMagicPlank; +import tdwp_ftw.biomesop.blocks.BlockMagicSapling; +import tdwp_ftw.biomesop.blocks.BlockMagicSlab; +import tdwp_ftw.biomesop.blocks.BlockMagicStairs; +import tdwp_ftw.biomesop.blocks.BlockMangroveLeaves; +import tdwp_ftw.biomesop.blocks.BlockMangroveLog; +import tdwp_ftw.biomesop.blocks.BlockMangrovePlank; +import tdwp_ftw.biomesop.blocks.BlockMangroveSapling; +import tdwp_ftw.biomesop.blocks.BlockMangroveSlab; +import tdwp_ftw.biomesop.blocks.BlockMangroveStairs; +import tdwp_ftw.biomesop.blocks.BlockMediumGrass; +import tdwp_ftw.biomesop.blocks.BlockMoss; +import tdwp_ftw.biomesop.blocks.BlockMud; +import tdwp_ftw.biomesop.blocks.BlockMudBrick; +import tdwp_ftw.biomesop.blocks.BlockMudBrickSlab; +import tdwp_ftw.biomesop.blocks.BlockMudBrickStairs; +import tdwp_ftw.biomesop.blocks.BlockOrangeFlower; +import tdwp_ftw.biomesop.blocks.BlockOrangeLeaves; +import tdwp_ftw.biomesop.blocks.BlockOrangeSapling; +import tdwp_ftw.biomesop.blocks.BlockOriginGrass; +import tdwp_ftw.biomesop.blocks.BlockOriginLeaves; +import tdwp_ftw.biomesop.blocks.BlockOriginSapling; +import tdwp_ftw.biomesop.blocks.BlockPalmLeaves; +import tdwp_ftw.biomesop.blocks.BlockPalmLog; +import tdwp_ftw.biomesop.blocks.BlockPalmPlank; +import tdwp_ftw.biomesop.blocks.BlockPalmSapling; +import tdwp_ftw.biomesop.blocks.BlockPalmSlab; +import tdwp_ftw.biomesop.blocks.BlockPalmStairs; +import tdwp_ftw.biomesop.blocks.BlockPinkFlower; +import tdwp_ftw.biomesop.blocks.BlockPinkLeaves; +import tdwp_ftw.biomesop.blocks.BlockPinkSapling; +import tdwp_ftw.biomesop.blocks.BlockPromisedPortal; +import tdwp_ftw.biomesop.blocks.BlockPurpleFlower; +import tdwp_ftw.biomesop.blocks.BlockQuicksand; +import tdwp_ftw.biomesop.blocks.BlockRedLeaves; +import tdwp_ftw.biomesop.blocks.BlockRedRock; +import tdwp_ftw.biomesop.blocks.BlockRedRockCobble; +import tdwp_ftw.biomesop.blocks.BlockRedRockCobbleSlab; +import tdwp_ftw.biomesop.blocks.BlockRedRockCobbleStairs; +import tdwp_ftw.biomesop.blocks.BlockRedRockBrick; +import tdwp_ftw.biomesop.blocks.BlockRedRockBrickSlab; +import tdwp_ftw.biomesop.blocks.BlockRedRockBrickStairs; +import tdwp_ftw.biomesop.blocks.BlockRedSapling; +import tdwp_ftw.biomesop.blocks.BlockRedwoodLeaves; +import tdwp_ftw.biomesop.blocks.BlockRedwoodLog; +import tdwp_ftw.biomesop.blocks.BlockRedwoodPlank; +import tdwp_ftw.biomesop.blocks.BlockRedwoodSapling; +import tdwp_ftw.biomesop.blocks.BlockRedwoodSlab; +import tdwp_ftw.biomesop.blocks.BlockRedwoodStairs; +import tdwp_ftw.biomesop.blocks.BlockShortGrass; +import tdwp_ftw.biomesop.blocks.BlockSmolderingGrass; +import tdwp_ftw.biomesop.blocks.BlockSprout; +import tdwp_ftw.biomesop.blocks.BlockThorn; +import tdwp_ftw.biomesop.blocks.BlockTinyFlower; +import tdwp_ftw.biomesop.blocks.BlockTinyCactus; +import tdwp_ftw.biomesop.blocks.BlockToadstool; +import tdwp_ftw.biomesop.blocks.BlockTreeMoss; +import tdwp_ftw.biomesop.blocks.BlockWhiteFlower; +import tdwp_ftw.biomesop.blocks.BlockWhiteLeaves; +import tdwp_ftw.biomesop.blocks.BlockWhiteSapling; +import tdwp_ftw.biomesop.blocks.BlockWillow; +import tdwp_ftw.biomesop.blocks.BlockWillowLeaves; +import tdwp_ftw.biomesop.blocks.BlockWillowLog; +import tdwp_ftw.biomesop.blocks.BlockWillowPlank; +import tdwp_ftw.biomesop.blocks.BlockWillowSapling; +import tdwp_ftw.biomesop.blocks.BlockWillowSlab; +import tdwp_ftw.biomesop.blocks.BlockWillowStairs; +import tdwp_ftw.biomesop.blocks.BlockYellowSapling; +import tdwp_ftw.biomesop.blocks.BlockViolet; +import tdwp_ftw.biomesop.helpers.AchievementPickup; +import tdwp_ftw.biomesop.helpers.WorldTypeSize; +import tdwp_ftw.biomesop.helpers.BonemealUse; +import tdwp_ftw.biomesop.helpers.WorldProviderPromised; +import tdwp_ftw.biomesop.helpers.WorldGeneratorPromisedLandPortal; +import tdwp_ftw.biomesop.helpers.CreativeTabsBOP; +import tdwp_ftw.biomesop.items.ItemBamboo; +import tdwp_ftw.biomesop.items.ItemBarley; +import tdwp_ftw.biomesop.items.ItemCattail; +import tdwp_ftw.biomesop.items.ItemAncientStaff; +import tdwp_ftw.biomesop.items.ItemEnderporter; +import tdwp_ftw.biomesop.items.ItemShortGrass; +import tdwp_ftw.biomesop.items.ItemMediumGrass; +import tdwp_ftw.biomesop.items.ItemBush; +import tdwp_ftw.biomesop.items.ItemSprout; +import tdwp_ftw.biomesop.items.ItemBOPRecord; +import tdwp_ftw.biomesop.items.ItemBOPRecordMud; +import tdwp_ftw.biomesop.mobs.EntityJungleSpider; +import tdwp_ftw.biomesop.mobs.EntityRosester; +import tdwp_ftw.biomesop.worldtype.WTBiomesOP; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.Init; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.Mod.PostInit; +import cpw.mods.fml.common.Mod.PreInit; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.network.NetworkMod; +import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.LanguageRegistry; + +@Mod(modid="BiomesOPlenty", name="Biomes O' Plenty", version="0.4.6") +@NetworkMod(clientSideRequired=true, serverSideRequired=false) +public class mod_BiomesOPlenty +{ + // The instance of your mod that Forge uses. + @Instance("BiomesOPlenty") + public static mod_BiomesOPlenty instance; + + // Says where the client and server 'proxy' code is loaded. + @SidedProxy(clientSide="tdwp_ftw.biomesop.ClientProxy", serverSide="tdwp_ftw.biomesop.CommonProxy") + public static CommonProxy proxy; + + public static int promisedLandDim = 20; + + @PreInit + public void preInit(FMLPreInitializationEvent event) + { + config = new Configuration(event.getSuggestedConfigurationFile()); + config.load(); + skyColors = true; + biomeSize = config.get("Biome Settings", "Biome Size", 4, null).getInt(); + addToDefault = config.get("Biome Settings", "Add Biomes To Default World", false).getBoolean(false); + vanillaEnhanced = config.get("Biome Settings", "Enhanced Vanilla Biomes", true).getBoolean(false); + promisedLandDimID = config.get("Dimension Settings", "Promised Land Dimension ID", 20, null).getInt(); + + alpsGen = config.get("Biomes To Generate", "Alps", true).getBoolean(false); + arcticGen = config.get("Biomes To Generate", "Arctic", true).getBoolean(false); + badlandsGen = config.get("Biomes To Generate", "Badlands", true).getBoolean(false); + bambooForestGen = config.get("Biomes To Generate", "BambooForest", true).getBoolean(false); + bayouGen = config.get("Biomes To Generate", "Bayou", true).getBoolean(false); + birchForestGen = config.get("Biomes To Generate", "BirchForest", true).getBoolean(false); + bogGen = config.get("Biomes To Generate", "Bog", true).getBoolean(false); + borealForestGen = config.get("Biomes To Generate", "BorealForest", true).getBoolean(false); + canyonGen = config.get("Biomes To Generate", "Canyon", true).getBoolean(false); + chaparralGen = config.get("Biomes To Generate", "Chaparral", true).getBoolean(false); + cherryBlossomGroveGen = config.get("Biomes To Generate", "CherryBlossomGrove", true).getBoolean(false); + coniferousForestGen = config.get("Biomes To Generate", "ConiferousForest", true).getBoolean(false); + cragGen = config.get("Biomes To Generate", "Crag", true).getBoolean(false); + deadForestGen = config.get("Biomes To Generate", "DeadForest", true).getBoolean(false); + deadSwampGen = config.get("Biomes To Generate", "DeadSwamp", true).getBoolean(false); + deadlandsGen = config.get("Biomes To Generate", "Deadlands", true).getBoolean(false); + deciduousForestGen = config.get("Biomes To Generate", "DeciduousForest", true).getBoolean(false); + desertGen = config.get("Biomes To Generate", "Desert", true).getBoolean(false); + drylandsGen = config.get("Biomes To Generate", "Drylands", true).getBoolean(false); + dunesGen = config.get("Biomes To Generate", "Dunes", true).getBoolean(false); + extremeHillsGen = config.get("Biomes To Generate", "ExtremeHills", true).getBoolean(false); + fenGen = config.get("Biomes To Generate", "Fen", true).getBoolean(false); + fieldGen = config.get("Biomes To Generate", "Field", true).getBoolean(false); + forestGen = config.get("Biomes To Generate", "Forest", true).getBoolean(false); + frostForestGen = config.get("Biomes To Generate", "FrostForest", true).getBoolean(false); + fungiForestGen = config.get("Biomes To Generate", "FungiForest", true).getBoolean(false); + gardenGen = config.get("Biomes To Generate", "Garden", true).getBoolean(false); + glacierGen = config.get("Biomes To Generate", "Glacier", true).getBoolean(false); + grasslandGen = config.get("Biomes To Generate", "Grassland", true).getBoolean(false); + groveGen = config.get("Biomes To Generate", "Grove", true).getBoolean(false); + heathlandGen = config.get("Biomes To Generate", "Heathland", true).getBoolean(false); + highlandGen = config.get("Biomes To Generate", "Highland", true).getBoolean(false); + iceSheetGen = config.get("Biomes To Generate", "IcySheet", true).getBoolean(false); + icyHillsGen = config.get("Biomes To Generate", "IcyHills", true).getBoolean(false); + jadeCliffsGen = config.get("Biomes To Generate", "JadeCliffs", true).getBoolean(false); + jungleGen = config.get("Biomes To Generate", "Jungle", true).getBoolean(false); + lushDesertGen = config.get("Biomes To Generate", "LushDesert", true).getBoolean(false); + lushSwampGen = config.get("Biomes To Generate", "LushSwamp", true).getBoolean(false); + mangroveGen = config.get("Biomes To Generate", "Mangrove", true).getBoolean(false); + mapleWoodsGen = config.get("Biomes To Generate", "MapleWoods", true).getBoolean(false); + marshGen = config.get("Biomes To Generate", "Marsh", true).getBoolean(false); + meadowGen = config.get("Biomes To Generate", "Meadow", true).getBoolean(false); + mesaGen = config.get("Biomes To Generate", "Mesa", true).getBoolean(false); + moorGen = config.get("Biomes To Generate", "Moor", true).getBoolean(false); + mountainGen = config.get("Biomes To Generate", "Mountain", true).getBoolean(false); + mushroomIslandGen = config.get("Biomes To Generate", "MushroomIsland", true).getBoolean(false); + mysticGroveGen = config.get("Biomes To Generate", "MysticGrove", true).getBoolean(false); + oasisGen = config.get("Biomes To Generate", "Oasis", true).getBoolean(false); + ominousWoodsGen = config.get("Biomes To Generate", "OminousWoods", true).getBoolean(false); + orchardGen = config.get("Biomes To Generate", "Orchard", true).getBoolean(false); + originValleyGen = config.get("Biomes To Generate", "OriginValley", true).getBoolean(false); + outbackGen = config.get("Biomes To Generate", "Outback", true).getBoolean(false); + pastureGen = config.get("Biomes To Generate", "Pasture", true).getBoolean(false); + plainsGen = config.get("Biomes To Generate", "Plains", true).getBoolean(false); + prairieGen = config.get("Biomes To Generate", "Prairie", true).getBoolean(false); + quagmireGen = config.get("Biomes To Generate", "Quagmire", true).getBoolean(false); + rainforestGen = config.get("Biomes To Generate", "Rainforest", true).getBoolean(false); + redwoodForestGen = config.get("Biomes To Generate", "RedwoodForest", true).getBoolean(false); + sacredSpringsGen = config.get("Biomes To Generate", "SacredSprings", true).getBoolean(false); + savannaGen = config.get("Biomes To Generate", "Savanna", true).getBoolean(false); + scrublandGen = config.get("Biomes To Generate", "Scrubland", true).getBoolean(false); + seasonalForestGen = config.get("Biomes To Generate", "SeasonalForest", true).getBoolean(false); + shieldGen = config.get("Biomes To Generate", "Shield", true).getBoolean(false); + shrublandGen = config.get("Biomes To Generate", "Shrubland", true).getBoolean(false); + snowyWoodsGen = config.get("Biomes To Generate", "SnowyWoods", true).getBoolean(false); + spruceWoodsGen = config.get("Biomes To Generate", "SpruceWoods", true).getBoolean(false); + steppeGen = config.get("Biomes To Generate", "Steppe", true).getBoolean(false); + swamplandGen = config.get("Biomes To Generate", "Swampland", true).getBoolean(false); + swampwoodsGen = config.get("Biomes To Generate", "Swampwoods", true).getBoolean(false); + taigaGen = config.get("Biomes To Generate", "Taiga", true).getBoolean(false); + temperateRainforestGen = config.get("Biomes To Generate", "TemperateRainforest", true).getBoolean(false); + thicketGen = config.get("Biomes To Generate", "Thicket", true).getBoolean(false); + tropicalRainforestGen = config.get("Biomes To Generate", "TropicalRainforest", true).getBoolean(false); + tropicsGen = config.get("Biomes To Generate", "Tropics", true).getBoolean(false); + tundraGen = config.get("Biomes To Generate", "Tundra", true).getBoolean(false); + volcanoGen = config.get("Biomes To Generate", "Volcano", true).getBoolean(false); + wastelandGen = config.get("Biomes To Generate", "Wasteland", true).getBoolean(false); + wetlandGen = config.get("Biomes To Generate", "Wetland", true).getBoolean(false); + woodlandGen = config.get("Biomes To Generate", "Woodland", true).getBoolean(false); + + // Get Terrain Block ID's + mudID = config.getTerrainBlock("Terrain Block IDs", "Mud ID", 160, null).getInt(); + driedDirtID = config.getTerrainBlock("Terrain Block IDs", "Dried Dirt ID", 161, null).getInt(); + redRockID = config.getTerrainBlock("Terrain Block IDs", "Red Rock ID", 162, null).getInt(); + ashID = config.getTerrainBlock("Terrain Block IDs", "Ash Block ID", 163, null).getInt(); + ashStoneID = config.getTerrainBlock("Terrain Block IDs", "Ash Stone ID", 164, null).getInt(); + hardIceID = config.getTerrainBlock("Terrain Block IDs", "Hard Ice ID", 165, null).getInt(); + originGrassID = config.getTerrainBlock("Terrain Block IDs", "Origin Grass ID", 166, null).getInt(); + 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(); + + // Get Crafted Block ID's + mudBrickBlockID = config.getBlock("Mud Bricks ID", 256, null).getInt(); + redwoodPlankID = config.getBlock("Redwood Plank ID", 257, null).getInt(); + redwoodDoubleSlabID = config.getBlock("Redwood Double Slab ID", 258, null).getInt(); + redwoodSingleSlabID = config.getBlock("Redwood Single Slab ID", 259, null).getInt(); + redwoodStairsID = config.getBlock("Redwood Stairs ID", 260, null).getInt(); + willowPlankID = config.getBlock("Willow Plank ID", 261, null).getInt(); + willowDoubleSlabID = config.getBlock("Willow Double Slab ID", 262, null).getInt(); + willowSingleSlabID = config.getBlock("Willow Single Slab ID", 263, null).getInt(); + willowStairsID = config.getBlock("Willow Stairs ID", 264, null).getInt(); + firPlankID = config.getBlock("Fir Plank ID", 265, null).getInt(); + firDoubleSlabID = config.getBlock("Fir Double Slab ID", 266, null).getInt(); + firSingleSlabID = config.getBlock("Fir Single Slab ID", 267, null).getInt(); + firStairsID = config.getBlock("Fir Stairs ID", 268, null).getInt(); + acaciaPlankID = config.getBlock("Acacia Plank ID", 269, null).getInt(); + acaciaDoubleSlabID = config.getBlock("Acacia Double Slab ID", 270, null).getInt(); + acaciaSingleSlabID = config.getBlock("Acacia Single Slab ID", 271, null).getInt(); + acaciaStairsID = config.getBlock("Acacia Stairs ID", 272, null).getInt(); + cherryPlankID = config.getBlock("Cherry Plank ID", 273, null).getInt(); + cherryDoubleSlabID = config.getBlock("Cherry Double Slab ID", 274, null).getInt(); + cherrySingleSlabID = config.getBlock("Cherry Single Slab ID", 275, null).getInt(); + cherryStairsID = config.getBlock("Cherry Stairs ID", 276, null).getInt(); + darkPlankID = config.getBlock("Dark Plank ID", 277, null).getInt(); + darkDoubleSlabID = config.getBlock("Dark Double Slab ID", 278, null).getInt(); + darkSingleSlabID = config.getBlock("Dark Single Slab ID", 279, null).getInt(); + darkStairsID = config.getBlock("Dark Stairs ID", 280, null).getInt(); + magicPlankID = config.getBlock("Magic Plank ID", 281, null).getInt(); + magicDoubleSlabID = config.getBlock("Magic Double Slab ID", 282, null).getInt(); + magicSingleSlabID = config.getBlock("Magic Single Slab ID", 283, null).getInt(); + magicStairsID = config.getBlock("Magic Stairs ID", 284, null).getInt(); + palmPlankID = config.getBlock("Palm Plank ID", 285, null).getInt(); + palmDoubleSlabID = config.getBlock("Palm Double Slab ID", 286, null).getInt(); + palmSingleSlabID = config.getBlock("Palm Single Slab ID", 287, null).getInt(); + palmStairsID = config.getBlock("Palm Stairs ID", 288, null).getInt(); + originLeavesID = config.getBlock("Origin Leaves ID", 289, null).getInt(); + redwoodWoodID = config.getBlock("Redwood Log ID", 290, null).getInt(); + redwoodLeavesID = config.getBlock("Redwood Leaves ID", 291, null).getInt(); + willowWoodID = config.getBlock("Willow Log ID", 292, null).getInt(); + willowLeavesID = config.getBlock("Willow Leaves ID", 293, null).getInt(); + firWoodID = config.getBlock("Fir Log ID", 294, null).getInt(); + firLeavesID = config.getBlock("Fir Leaves ID", 295, null).getInt(); + acaciaWoodID = config.getBlock("Acacia Log ID", 296, null).getInt(); + acaciaLeavesID = config.getBlock("Acacia Leaves ID", 297, null).getInt(); + cherryWoodID = config.getBlock("Cherry Log ID", 298, null).getInt(); + pinkFlowerID = config.getBlock("Pink Flower ID", 299, null).getInt(); + darkWoodID = config.getBlock("Dark Log ID", 300, null).getInt(); + darkLeavesID = config.getBlock("Dark Leaves ID", 301, null).getInt(); + treeMossID = config.getBlock("Tree Moss ID", 302, null).getInt(); + magicWoodID = config.getBlock("Magic Log ID", 303, null).getInt(); + deadWoodID = config.getBlock("Dead Log ID", 304, null).getInt(); + appleLeavesFruitlessID = config.getBlock("Fruitless Apple Leaves ID", 305, null).getInt(); + barleyID = config.getBlock("Barley ID", 306, null).getInt(); + palmWoodID = config.getBlock("Palm Log ID", 307, null).getInt(); + palmLeavesID = config.getBlock("Palm Leaves ID", 308, null).getInt(); + giantFlowerRedID = config.getBlock("Giant Red Flower ID", 309, null).getInt(); + giantFlowerStemID = config.getBlock("Giant Flower Stem ID", 310, null).getInt(); + giantFlowerYellowID = config.getBlock("Giant Yellow Flower ID", 311, null).getInt(); + redLeavesID = config.getBlock("Maple Leaves ID", 312, null).getInt(); + orangeLeavesID = config.getBlock("Orange Autumn Leaves ID", 313, null).getInt(); + pinkLeavesID = config.getBlock("Pink Cherry Leaves ID", 314, null).getInt(); + blueLeavesID = config.getBlock("Magic Leaves ID", 315, null).getInt(); + whiteLeavesID = config.getBlock("White Cherry Leaves ID", 316, null).getInt(); + deadLeavesID = config.getBlock("Dying Leaves ID", 317, null).getInt(); + shortGrassID = config.getBlock("Short Grass ID", 318, null).getInt(); + appleLeavesID = config.getBlock("Apple Leaves ID", 319, null).getInt(); + sproutID = config.getBlock("Sprout ID", 320, null).getInt(); + bushID = config.getBlock("Bush ID", 321, null).getInt(); + bambooID = config.getBlock("Bamboo ID", 322, null).getInt(); + bambooLeavesID = config.getBlock("Bamboo Leaves ID", 323, null).getInt(); + deadGrassID = config.getBlock("Dead Grass ID", 324, null).getInt(); + desertGrassID = config.getBlock("Desert Grass ID", 325, null).getInt(); + whiteFlowerID = config.getBlock("Anenome ID", 326, null).getInt(); + blueFlowerID = config.getBlock("Swampflower ID", 327, null).getInt(); + purpleFlowerID = config.getBlock("Wildflower ID", 328, null).getInt(); + orangeFlowerID = config.getBlock("Daisy ID", 329, null).getInt(); + tinyFlowerID = config.getBlock("Clover ID", 330, null).getInt(); + glowFlowerID = config.getBlock("Glowflower ID", 331, null).getInt(); + cattailID = config.getBlock("Cattail ID", 332, null).getInt(); + willowID = config.getBlock("Willow ID", 333, null).getInt(); + autumnLeavesID = config.getBlock("Yellow Autumn Leaves ID", 334, null).getInt(); + thornID = config.getBlock("Thorns ID", 335, null).getInt(); + toadstoolID = config.getBlock("Toadstool ID", 336, null).getInt(); + highGrassBottomID = config.getBlock("High Grass Bottom ID", 337, null).getInt(); + highGrassTopID = config.getBlock("High Grass Top ID", 338, null).getInt(); + tinyCactusID = config.getBlock("Tiny Cactus ID", 339, null).getInt(); + firSaplingID = config.getBlock("Fir Sapling ID", 340, null).getInt(); + redwoodSaplingID = config.getBlock("Redwood Sapling ID", 341, null).getInt(); + palmSaplingID = config.getBlock("Palm Sapling ID", 342, null).getInt(); + redSaplingID = config.getBlock("Maple Sapling ID", 343, null).getInt(); + orangeSaplingID = config.getBlock("Orange Autumn Sapling ID", 344, null).getInt(); + yellowSaplingID = config.getBlock("Yellow Autumn Sapling ID", 345, null).getInt(); + brownSaplingID = config.getBlock("Dying Sapling ID", 346, null).getInt(); + willowSaplingID = config.getBlock("Willow Sapling ID", 347, null).getInt(); + appleSaplingID = config.getBlock("Apple Sapling ID", 348, null).getInt(); + originSaplingID = config.getBlock("Origin Sapling ID", 349, null).getInt(); + pinkSaplingID = config.getBlock("Pink Cherry Sapling ID", 350, null).getInt(); + whiteSaplingID = config.getBlock("White Cherry Sapling ID", 351, null).getInt(); + darkSaplingID = config.getBlock("Dark Sapling ID", 352, null).getInt(); + magicSaplingID = config.getBlock("Magic Sapling ID", 353, null).getInt(); + deathbloomID = config.getBlock("Deathbloom ID", 354, null).getInt(); + redRockCobbleID = config.getBlock("Red Rock Cobblestone ID", 355, null).getInt(); + redRockBrickID = config.getBlock("Red Rock Bricks ID", 356, null).getInt(); + hydrangeaID = config.getBlock("Hydrangea ID", 357, null).getInt(); + violetID = config.getBlock("Violet ID", 358, null).getInt(); + mediumGrassID = config.getBlock("Medium Grass ID", 359, null).getInt(); + duneGrassID = config.getBlock("Dune Grass ID", 360, null).getInt(); + desertSproutsID = config.getBlock("Desert Sprouts ID", 361, null).getInt(); + redRockCobbleDoubleSlabID = config.getBlock("Red Rock Cobblestone Double Slab ID", 362, null).getInt(); + redRockCobbleSingleSlabID = config.getBlock("Red Rock Cobblestone Single Slab ID", 363, null).getInt(); + redRockCobbleStairsID = config.getBlock("Red Rock Cobblestone Stairs ID", 364, null).getInt(); + redRockBrickDoubleSlabID = config.getBlock("Red Rock Brick Double Slab ID", 365, null).getInt(); + redRockBrickSingleSlabID = config.getBlock("Red Rock Brick Single Slab ID", 366, null).getInt(); + redRockBrickStairsID = config.getBlock("Red Rock Brick Stairs ID", 367, null).getInt(); + mudBrickDoubleSlabID = config.getBlock("Mud Brick Double Slab ID", 368, null).getInt(); + mudBrickSingleSlabID = config.getBlock("Mud Brick Single Slab ID", 369, null).getInt(); + mudBrickStairsID = config.getBlock("Mud Brick Stairs ID", 370, null).getInt(); + mangroveWoodID = config.getBlock("Mangrove Log ID", 371, null).getInt(); + mangroveLeavesID = config.getBlock("Mangrove Leaves ID", 372, null).getInt(); + mangroveSaplingID = config.getBlock("Mangrove Sapling ID", 373, null).getInt(); + mangrovePlankID = config.getBlock("Mangrove Plank ID", 374, null).getInt(); + mangroveDoubleSlabID = config.getBlock("Mangrove Double Slab ID", 375, null).getInt(); + mangroveSingleSlabID = config.getBlock("Mangrove Single Slab ID", 376, null).getInt(); + mangroveStairsID = config.getBlock("Mangrove Stairs ID", 377, null).getInt(); + acaciaSaplingID = config.getBlock("Acacia Sapling ID", 378, null).getInt(); + holyTallGrassID = config.getBlock("Holy Tall Grass ID", 379, null).getInt(); + promisedLandPortalID = config.getBlock("Promised Land Portal ID", 380, null).getInt(); + holyWoodID = config.getBlock("Holy Log ID", 381, null).getInt(); + holyLeavesID = config.getBlock("Holy Leaves ID", 382, null).getInt(); + holySaplingID = config.getBlock("Holy Sapling ID", 383, null).getInt(); + holyPlankID = config.getBlock("Holy Plank ID", 384, null).getInt(); + holyDoubleSlabID = config.getBlock("Holy Double Slab ID", 385, null).getInt(); + holySingleSlabID = config.getBlock("Holy Single Slab ID", 386, null).getInt(); + holyStairsID = config.getBlock("Holy Stairs ID", 387, null).getInt(); + amethystOreID = config.getBlock("Amethyst Ore ID", 388, null).getInt(); + amethystBlockID = config.getBlock("Block of Amethyst ID", 389, null).getInt(); + bambooThatchingID = config.getBlock("Bamboo Thatching ID", 390, null).getInt(); + mossID = config.getBlock("Moss ID", 391, null).getInt(); + algaeID = config.getBlock("Algae ID", 392, null).getInt(); + smolderingGrassID = config.getBlock("Smoldering Grass ID", 393, null).getInt(); + quicksandID = config.getBlock("Quicksand ID", 394, null).getInt(); + + // Get Item ID's + shroomPowderID = config.getItem("Shroom Powder ID", 1001, null).getInt(); + mudBallID = config.getItem("Mud Ball ID", 1002, null).getInt(); + mudBrickID = config.getItem("Mud Brick ID", 1003, null).getInt(); + bambooItemID = config.getItem("Bamboo ID", 1004).getInt(); + cattailItemID = config.getItem("Cattail ID", 1005).getInt(); + ancientStaffID = config.getItem("Ancient Staff ID", 1006).getInt(); + enderporterID = config.getItem("Enderporter ID", 1007).getInt(); + ashesID = config.getItem("Pile of Ashes ID", 1008, null).getInt(); + barleyItemID = config.getItem("Barley ID", 1009).getInt(); + amethystID = config.getItem("Amethyst ID", 1010).getInt(); + ancientStaffHandleID = config.getItem("Ancient Staff Handle ID", 1011, null).getInt(); + ancientStaffPoleID = config.getItem("Ancient Staff Pole ID", 1012, null).getInt(); + ancientStaffTopperID = config.getItem("Ancient Staff Topper ID", 1013, null).getInt(); + shortGrassItemID = config.getItem("Short Grass (Item) ID", 1014, null).getInt(); + mediumGrassItemID = config.getItem("Medium Grass (Item) ID", 1015, null).getInt(); + bushItemID = config.getItem("Bush (Item) ID", 1016, null).getInt(); + sproutItemID = config.getItem("Sprout (Item) ID", 1017, null).getInt(); + mossItemID = config.getItem("Moss (Item) ID", 1018, null).getInt(); + bopDiscID = config.getItem("Traversia Music Disc ID", 1019, null).getInt(); + bopDiscMudID = config.getItem("Muddy Music Disc ID", 1020, null).getInt(); + swordMudID = config.getItem("Muddy Sword ID", 1060, null).getInt(); + shovelMudID = config.getItem("Muddy Shovel ID", 1061, null).getInt(); + pickaxeMudID = config.getItem("Muddy Pickaxe ID", 1062, null).getInt(); + axeMudID = config.getItem("Muddy Axe ID", 1063, null).getInt(); + hoeMudID = config.getItem("Muddy Hoe ID", 1064, null).getInt(); + helmetMudID = config.getItem("Muddy Helmet ID", 1065, null).getInt(); + chestplateMudID = config.getItem("Muddy Chestplate ID", 1066, null).getInt(); + leggingsMudID = config.getItem("Muddy Leggings ID", 1067, null).getInt(); + bootsMudID = config.getItem("Muddy Boots ID", 1068, null).getInt(); + swordAmethystID = config.getItem("Amethyst Sword ID", 1069, null).getInt(); + shovelAmethystID = config.getItem("Amethyst Shovel ID", 1070, null).getInt(); + pickaxeAmethystID = config.getItem("Amethyst Pickaxe ID", 1071, null).getInt(); + axeAmethystID = config.getItem("Amethyst Axe ID", 1072, null).getInt(); + hoeAmethystID = config.getItem("Amethyst Hoe ID", 1073, null).getInt(); + helmetAmethystID = config.getItem("Amethyst Helmet ID", 1074, null).getInt(); + chestplateAmethystID = config.getItem("Amethyst Chestplate ID", 1075, null).getInt(); + leggingsAmethystID = config.getItem("Amethyst Leggings ID", 1076, null).getInt(); + bootsAmethystID = config.getItem("Amethyst Boots ID", 1077, null).getInt(); + + //Mob IDs + jungleSpiderID = config.get("Mob IDs", "Jungle Spider ID", 101, null).getInt(); + rosesterID = config.get("Mob IDs", "Rosester ID", 102, null).getInt(); + + System.out.println("Generating Biome ID's"); + alpsID = config.get("Biome IDs", "Alps ID", 23).getInt(); + arcticID = config.get("Biome IDs", "Arctic ID", 24).getInt(); + badlandsID = config.get("Biome IDs", "Badlands ID", 25).getInt(); + bambooForestID = config.get("Biome IDs", "Bamboo Forest ID", 26).getInt(); + bayouID = config.get("Biome IDs", "Bayou ID", 27).getInt(); + birchForestID = config.get("Biome IDs", "Birch Forest ID", 28).getInt(); + bogID = config.get("Biome IDs", "Bog ID", 29).getInt(); + borealForestID = config.get("Biome IDs", "Boreal Forest ID", 30).getInt(); + canyonID = config.get("Biome IDs", "Canyon ID", 31).getInt(); + chaparralID = config.get("Biome IDs", "Chaparral ID", 32).getInt(); + cherryBlossomGroveID = config.get("Biome IDs", "Cherry Blossom Grove ID", 33).getInt(); + coniferousForestID = config.get("Biome IDs", "Coniferous Forest ID", 34).getInt(); + cragID = config.get("Biome IDs", "Crag ID", 35).getInt(); + deadForestID = config.get("Biome IDs", "Dead Forest ID", 36).getInt(); + deadSwampID = config.get("Biome IDs", "Dead Swamp ID", 37).getInt(); + deadlandsID = config.get("Biome IDs", "Deadlands ID", 38).getInt(); + deciduousForestID = config.get("Biome IDs", "Deciduous Forest ID", 39).getInt(); + drylandsID = config.get("Biome IDs", "Drylands ID", 40).getInt(); + dunesID = config.get("Biome IDs", "Dunes ID", 41).getInt(); + fenID = config.get("Biome IDs", "Fen ID", 42).getInt(); + fieldID = config.get("Biome IDs", "Field ID", 43).getInt(); + frostForestID = config.get("Biome IDs", "Frost Forest ID", 44).getInt(); + fungiForestID = config.get("Biome IDs", "Fungi Forest ID", 45).getInt(); + gardenID = config.get("Biome IDs", "Garden ID", 46).getInt(); + glacierID = config.get("Biome IDs", "Glacier ID", 47).getInt(); + grasslandID = config.get("Biome IDs", "Grassland ID", 48).getInt(); + groveID = config.get("Biome IDs", "Grove ID", 49).getInt(); + heathlandID = config.get("Biome IDs", "Heathland ID", 50).getInt(); + highlandID = config.get("Biome IDs", "Highland ID", 51).getInt(); + iceSheetID = config.get("Biome IDs", "Ice Sheet ID", 52).getInt(); + icyHillsID = config.get("Biome IDs", "Icy Hills ID", 53).getInt(); + jadeCliffsID = config.get("Biome IDs", "Jade Cliffs ID", 54).getInt(); + lushDesertID = config.get("Biome IDs", "Lush Desert ID", 55).getInt(); + lushSwampID = config.get("Biome IDs", "Lush Swamp ID", 56).getInt(); + mangroveID = config.get("Biome IDs", "Mangrove ID", 57).getInt(); + mapleWoodsID = config.get("Biome IDs", "Maple Woods ID", 58).getInt(); + marshID = config.get("Biome IDs", "Marsh ID", 59).getInt(); + meadowID = config.get("Biome IDs", "Meadow ID", 60).getInt(); + mesaID = config.get("Biome IDs", "Mesa ID", 61).getInt(); + moorID = config.get("Biome IDs", "Moor ID", 62).getInt(); + mountainID = config.get("Biome IDs", "Mountain ID", 63).getInt(); + mysticGroveID = config.get("Biome IDs", "Mystic Grove ID", 64).getInt(); + oasisID = config.get("Biome IDs", "Oasis ID", 65).getInt(); + ominousWoodsID = config.get("Biome IDs", "Ominous Woods ID", 66).getInt(); + orchardID = config.get("Biome IDs", "Orchard ID", 67).getInt(); + originValleyID = config.get("Biome IDs", "Origin Valley ID", 68).getInt(); + outbackID = config.get("Biome IDs", "Outback ID", 69).getInt(); + pastureID = config.get("Biome IDs", "Pasture ID", 70).getInt(); + prairieID = config.get("Biome IDs", "Prairie ID", 71).getInt(); + promisedLandID = config.get("Biome IDs", "Promised Land ID", 72).getInt(); + quagmireID = config.get("Biome IDs", "Quagmire ID", 73).getInt(); + rainforestID = config.get("Biome IDs", "Rainforest ID", 74).getInt(); + redwoodForestID = config.get("Biome IDs", "Redwood Forest ID", 75).getInt(); + sacredSpringsID = config.get("Biome IDs", "Sacred Springs ID", 76).getInt(); + savannaID = config.get("Biome IDs", "Savanna ID", 77).getInt(); + scrublandID = config.get("Biome IDs", "Scrubland ID", 78).getInt(); + seasonalForestID = config.get("Biome IDs", "Seasonal Forest ID", 79).getInt(); + shieldID = config.get("Biome IDs", "Shield ID", 80).getInt(); + shoreID = config.get("Biome IDs", "Shore ID", 81).getInt(); + shrublandID = config.get("Biome IDs", "Shrubland ID", 82).getInt(); + snowyWoodsID = config.get("Biome IDs", "Snowy Woods ID", 83).getInt(); + spruceWoodsID = config.get("Biome IDs", "Spruce Woods ID", 84).getInt(); + steppeID = config.get("Biome IDs", "Steppe ID", 85).getInt(); + swampwoodsID = config.get("Biome IDs", "Swampwoods ID", 86).getInt(); + temperateRainforestID = config.get("Biome IDs", "Temperate Rainforest ID", 87).getInt(); + thicketID = config.get("Biome IDs", "Thicket ID", 88).getInt(); + tropicalRainforestID = config.get("Biome IDs", "Tropical Rainforest ID", 89).getInt(); + tropicsID = config.get("Biome IDs", "Tropics ID", 90).getInt(); + tundraID = config.get("Biome IDs", "Tundra ID", 91).getInt(); + volcanoID = config.get("Biome IDs", "Volcano ID", 92).getInt(); + wastelandID = config.get("Biome IDs", "Wasteland ID", 93).getInt(); + wetlandID = config.get("Biome IDs", "Wetland ID", 94).getInt(); + woodlandID = config.get("Biome IDs", "Woodland ID", 95).getInt(); + + plainsNewID = config.get("Biome IDs", "Plains (New) ID", 96).getInt(); + desertNewID = config.get("Biome IDs", "Desert (New) ID", 97).getInt(); + forestNewID = config.get("Biome IDs", "Forest (New) ID", 98).getInt(); + taigaNewID = config.get("Biome IDs", "Taiga (New) ID", 99).getInt(); + swamplandNewID = config.get("Biome IDs", "Swampland (New) ID", 100).getInt(); + extremeHillsNewID = config.get("Biome IDs", "Extreme Hills (New) ID", 101).getInt(); + jungleNewID = config.get("Biome IDs", "Jungle (New) ID", 102).getInt(); + + System.out.println("Generated!"); + config.save(); + } + + @Init + public void load(FMLInitializationEvent event) + { + tabBiomesOPlenty = new CreativeTabsBOP(CreativeTabs.getNextID(),"tabBiomesOPlenty"); + + // Block declaration + mud = (new BlockMud(mudID)).setHardness(0.6F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("mud"); + driedDirt = (new BlockDriedDirt(driedDirtID)).setHardness(0.1F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("driedDirt"); + redRock = (new BlockRedRock(redRockID)).setHardness(1.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("redRock"); + ash = (new BlockAsh(ashID)).setHardness(0.4F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("ash"); + deadGrass = (new BlockDeadGrass(deadGrassID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("deadGrass"); + desertGrass = (new BlockDesertGrass(desertGrassID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("desertGrass"); + whiteFlower = (new BlockWhiteFlower(whiteFlowerID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("whiteFlower"); + blueFlower = (new BlockBlueFlower(blueFlowerID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("blueFlower"); + purpleFlower = (new BlockPurpleFlower(purpleFlowerID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("purpleFlower"); + orangeFlower = (new BlockOrangeFlower(orangeFlowerID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("orangeFlower"); + tinyFlower = (new BlockTinyFlower(tinyFlowerID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("tinyFlower"); + glowFlower = (new BlockGlowFlower(glowFlowerID)).setHardness(0.0F).setLightValue(0.65F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("glowFlower"); + cattail = (new BlockCattail(cattailID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("cattail"); + willow = (new BlockWillow(willowID)).setHardness(0.2F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("willow"); + autumnLeaves = (BlockAutumnLeaves)(new BlockAutumnLeaves(autumnLeavesID, 64)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("autumnLeaves"); + thorn = (new BlockThorn(thornID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("thorn"); + toadstool = (new BlockToadstool(toadstoolID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("toadstool"); + highGrassBottom = (BlockHighGrassBottom)(new BlockHighGrassBottom(highGrassBottomID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("highGrassBottom"); + highGrassTop = (BlockHighGrassTop)(new BlockHighGrassTop(highGrassTopID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("highGrassTop"); + ashStone = (new BlockAshStone(ashStoneID)).setHardness(1.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("ashStone"); + hardIce = (new BlockHardIce(hardIceID)).setHardness(0.75F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("hardIce"); + redLeaves = (BlockRedLeaves)(new BlockRedLeaves(redLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("redLeaves"); + orangeLeaves = (BlockOrangeLeaves)(new BlockOrangeLeaves(orangeLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("orangeLeaves"); + pinkLeaves = (BlockPinkLeaves)(new BlockPinkLeaves(pinkLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("pinkLeaves"); + blueLeaves = (BlockBlueLeaves)(new BlockBlueLeaves(blueLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("blueLeaves"); + whiteLeaves = (BlockWhiteLeaves)(new BlockWhiteLeaves(whiteLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("whiteLeaves"); + deadLeaves = (BlockDeadLeaves)(new BlockDeadLeaves(deadLeavesID)).setHardness(0.1F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("deadLeaves"); + shortGrass = (BlockShortGrass)(new BlockShortGrass(shortGrassID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("shortGrass"); + appleLeaves = (BlockAppleLeaves)(new BlockAppleLeaves(appleLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("appleLeaves"); + sprout = (BlockSprout)(new BlockSprout(sproutID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("sprout"); + bush = (BlockBush)(new BlockBush(bushID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("bush"); + bamboo = new BlockBamboo(bambooID).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("bamboo"); + bambooLeaves = (BlockBambooLeaves)(new BlockBambooLeaves(bambooLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("bambooLeaves"); + mudBrickBlock = (new BlockMudBrick(mudBrickBlockID)).setHardness(1.0F).setResistance(2.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("mudBrickBlock"); + originGrass = (BlockOriginGrass)(new BlockOriginGrass(originGrassID)).setHardness(0.6F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("originGrass"); + originLeaves = (BlockOriginLeaves)(new BlockOriginLeaves(originLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("originLeaves"); + pinkFlower = (new BlockPinkFlower(pinkFlowerID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("pinkFlower"); + treeMoss = (new BlockTreeMoss(treeMossID)).setHardness(0.2F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("treeMoss"); + deadWood = (new BlockDeadLog(deadWoodID)).setHardness(0.8F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("deadWood"); + appleLeavesFruitless = (BlockAppleLeavesFruitless)(new BlockAppleLeavesFruitless(appleLeavesFruitlessID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("appleLeavesFruitless"); + barley = (new BlockBarley(barleyID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("barley"); + giantFlowerStem = (new BlockGiantFlowerStem(giantFlowerStemID)).setHardness(0.5F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("giantFlowerStem"); + giantFlowerRed = (BlockGiantFlowerRed)(new BlockGiantFlowerRed(giantFlowerRedID)).setHardness(0.5F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("giantFlowerRed"); + giantFlowerYellow = (BlockGiantFlowerYellow)(new BlockGiantFlowerYellow(giantFlowerYellowID)).setHardness(0.5F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("giantFlowerYellow"); + tinyCactus = (new BlockTinyCactus(tinyCactusID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("tinyCactus"); + firSapling = (new BlockFirSapling(firSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("firSapling"); + redwoodSapling = (new BlockRedwoodSapling(redwoodSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("redwoodSapling"); + palmSapling = (new BlockPalmSapling(palmSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("palmSapling"); + redSapling = (new BlockRedSapling(redSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("redSapling"); + orangeSapling = (new BlockOrangeSapling(orangeSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("orangeSapling"); + yellowSapling = (new BlockYellowSapling(yellowSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("yellowSapling"); + brownSapling = (new BlockBrownSapling(brownSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("brownSapling"); + willowSapling = (new BlockWillowSapling(willowSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("willowSapling"); + appleSapling = (new BlockAppleSapling(appleSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("appleSapling"); + originSapling = (new BlockOriginSapling(originSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("originSapling"); + pinkSapling = (new BlockPinkSapling(pinkSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("pinkSapling"); + whiteSapling = (new BlockWhiteSapling(whiteSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("whiteSapling"); + darkSapling = (new BlockDarkSapling(darkSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("darkSapling"); + magicSapling = (new BlockMagicSapling(magicSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("magicSapling"); + deathbloom = (new BlockDeathbloom(deathbloomID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("deathbloom"); + redRockCobble = (new BlockRedRockCobble(redRockCobbleID)).setHardness(1.6F).setResistance(7.5F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("redRockCobble"); + redRockBrick = (new BlockRedRockBrick(redRockBrickID)).setHardness(1.1F).setResistance(7.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("redRockBrick"); + hydrangea = (new BlockHydrangea(hydrangeaID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("hydrangea"); + violet = (new BlockViolet(violetID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("violet"); + mediumGrass = (BlockMediumGrass)(new BlockMediumGrass(mediumGrassID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("mediumGrass"); + duneGrass = (new BlockDuneGrass(duneGrassID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("duneGrass"); + desertSprouts = (new BlockDesertSprouts(desertSproutsID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("desertSprouts"); + redRockCobbleDoubleSlab = (BlockHalfSlab)(new BlockRedRockCobbleSlab(redRockCobbleDoubleSlabID, true)).setHardness(1.6F).setResistance(7.5F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redRockCobbleSlab"); + redRockCobbleSingleSlab = (BlockHalfSlab)(new BlockRedRockCobbleSlab(redRockCobbleSingleSlabID, false)).setHardness(1.6F).setResistance(7.5F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redRockCobbleSlab"); + redRockCobbleStairs = (new BlockRedRockCobbleStairs(redRockCobbleStairsID, redRockCobble)).setUnlocalizedName("redRockCobbleStairs"); + redRockBrickDoubleSlab = (BlockHalfSlab)(new BlockRedRockBrickSlab(redRockBrickDoubleSlabID, true)).setHardness(1.1F).setResistance(7.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redRockBrickSlab"); + redRockBrickSingleSlab = (BlockHalfSlab)(new BlockRedRockBrickSlab(redRockBrickSingleSlabID, false)).setHardness(1.1F).setResistance(7.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redRockBrickSlab"); + redRockBrickStairs = (new BlockRedRockBrickStairs(redRockBrickStairsID, redRockBrick)).setUnlocalizedName("redRockBrickStairs"); + mudBrickDoubleSlab = (BlockHalfSlab)(new BlockMudBrickSlab(mudBrickDoubleSlabID, true)).setHardness(1.0F).setResistance(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("mudBrickSlab"); + mudBrickSingleSlab = (BlockHalfSlab)(new BlockMudBrickSlab(mudBrickSingleSlabID, false)).setHardness(1.0F).setResistance(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("mudBrickSlab"); + mudBrickStairs = (new BlockMudBrickStairs(mudBrickStairsID, mudBrickBlock)).setUnlocalizedName("mudBrickStairs"); + mangroveSapling = (new BlockMangroveSapling(mangroveSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("mangroveSapling"); + hardSand = (new BlockHardSand(hardSandID)).setHardness(0.7F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("hardSand"); + acaciaSapling = (new BlockAcaciaSapling(acaciaSaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("acaciaSapling"); + hardDirt = (new BlockHardDirt(hardDirtID)).setHardness(0.9F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("hardDirt"); + holyGrass = (BlockHolyGrass)(new BlockHolyGrass(holyGrassID)).setHardness(1.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("holyGrass"); + holyStone = (new BlockHolyStone(holyStoneID)).setHardness(1.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("holyStone"); + holyTallGrass = (new BlockHolyTallGrass(holyTallGrassID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("holyTallGrass"); + promisedPortal = new BlockPromisedPortal(promisedLandPortalID, 1).setUnlocalizedName("promisedPortal").setBlockUnbreakable().setResistance(6000000.0F).setLightValue(1.0F); + holySapling = (new BlockHolySapling(holySaplingID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("holySapling"); + amethystOre = (new BlockAmethystOre(amethystOreID)).setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("amethystOre"); + amethystBlock = (new BlockAmethystBlock(amethystBlockID)).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundMetalFootstep).setUnlocalizedName("amethystBlock"); + bambooThatching = (new BlockBambooThatching(bambooThatchingID)).setHardness(1.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("bambooThatching"); + moss = (new BlockMoss(mossID)).setHardness(0.2F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("moss"); + algae = (new BlockAlgae(algaeID)).setHardness(0.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("algae"); + smolderingGrass = (BlockSmolderingGrass)(new BlockSmolderingGrass(smolderingGrassID)).setHardness(0.6F).setLightValue(0.25F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("smolderingGrass"); + cragRock = (new BlockCragRock(cragRockID)).setHardness(1.0F).setStepSound(Block.soundGravelFootstep).setUnlocalizedName("cragRock"); + quicksand = (new BlockQuicksand(quicksandID)).setHardness(0.3F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("quicksand"); + + //Redwood + redwoodPlank = (new BlockRedwoodPlank(redwoodPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redwoodPlank"); + redwoodWood = (new BlockRedwoodLog(redwoodWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redwoodWood"); + redwoodLeaves = (BlockRedwoodLeaves)(new BlockRedwoodLeaves(redwoodLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("redwoodLeaves"); + redwoodDoubleSlab = (BlockHalfSlab)(new BlockRedwoodSlab(redwoodDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redwoodSlab"); + redwoodSingleSlab = (BlockHalfSlab)(new BlockRedwoodSlab(redwoodSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("redwoodSlab"); + redwoodStairs = (new BlockRedwoodStairs(redwoodStairsID, redwoodPlank)).setUnlocalizedName("redwoodStairs"); + + //Willow + willowPlank = (new BlockWillowPlank(willowPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("willowPlank"); + willowWood = (new BlockWillowLog(willowWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("willowWood"); + willowLeaves = (BlockWillowLeaves)(new BlockWillowLeaves(willowLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("willowLeaves"); + willowDoubleSlab = (BlockHalfSlab)(new BlockWillowSlab(willowDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("willowSlab"); + willowSingleSlab = (BlockHalfSlab)(new BlockWillowSlab(willowSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("willowSlab"); + willowStairs = (new BlockWillowStairs(willowStairsID, willowPlank)).setUnlocalizedName("willowStairs"); + + //Fir + firPlank = (new BlockFirPlank(firPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("firPlank"); + firWood = (new BlockFirLog(firWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("firWood"); + firLeaves = (BlockFirLeaves)(new BlockFirLeaves(firLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("firLeaves"); + firDoubleSlab = (BlockHalfSlab)(new BlockFirSlab(firDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("firSlab"); + firSingleSlab = (BlockHalfSlab)(new BlockFirSlab(firSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("firSlab"); + firStairs = (new BlockFirStairs(firStairsID, firPlank)).setUnlocalizedName("firStairs"); + + //Acacia + acaciaPlank = (new BlockAcaciaPlank(acaciaPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("acaciaPlank"); + acaciaWood = (new BlockAcaciaLog(acaciaWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("acaciaWood"); + acaciaLeaves = (BlockAcaciaLeaves)(new BlockAcaciaLeaves(acaciaLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("acaciaLeaves"); + acaciaDoubleSlab = (BlockHalfSlab)(new BlockAcaciaSlab(acaciaDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("acaciaSlab"); + acaciaSingleSlab = (BlockHalfSlab)(new BlockAcaciaSlab(acaciaSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("acaciaSlab"); + acaciaStairs = (new BlockAcaciaStairs(acaciaStairsID, acaciaPlank)).setUnlocalizedName("acaciaStairs"); + + //Cherry + cherryPlank = (new BlockCherryPlank(cherryPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("cherryPlank"); + cherryWood = (new BlockCherryLog(cherryWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("cherryWood"); + cherryDoubleSlab = (BlockHalfSlab)(new BlockCherrySlab(cherryDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("cherrySlab"); + cherrySingleSlab = (BlockHalfSlab)(new BlockCherrySlab(cherrySingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("cherrySlab"); + cherryStairs = (new BlockCherryStairs(cherryStairsID, cherryPlank)).setUnlocalizedName("cherryStairs"); + + //Dark + darkPlank = (new BlockDarkPlank(darkPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("darkPlank"); + darkWood = (new BlockDarkLog(darkWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("darkWood"); + darkLeaves = (BlockDarkLeaves)(new BlockDarkLeaves(darkLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("darkLeaves"); + darkDoubleSlab = (BlockHalfSlab)(new BlockDarkSlab(darkDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("darkSlab"); + darkSingleSlab = (BlockHalfSlab)(new BlockDarkSlab(darkSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("darkSlab"); + darkStairs = (new BlockDarkStairs(darkStairsID, darkPlank)).setUnlocalizedName("darkStairs"); + + //Magic + magicPlank = (new BlockMagicPlank(magicPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("magicPlank"); + magicWood = (new BlockMagicLog(magicWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("magicWood"); + magicDoubleSlab = (BlockHalfSlab)(new BlockMagicSlab(magicDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("magicSlab"); + magicSingleSlab = (BlockHalfSlab)(new BlockMagicSlab(magicSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("magicSlab"); + magicStairs = (new BlockMagicStairs(magicStairsID, magicPlank)).setUnlocalizedName("magicStairs"); + + //Palm + palmPlank = (new BlockPalmPlank(palmPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("palmPlank"); + palmWood = (new BlockPalmLog(palmWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("palmWood"); + palmLeaves = (BlockPalmLeaves)(new BlockPalmLeaves(palmLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("palmLeaves"); + palmDoubleSlab = (BlockHalfSlab)(new BlockPalmSlab(palmDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("palmSlab"); + palmSingleSlab = (BlockHalfSlab)(new BlockPalmSlab(palmSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("palmSlab"); + palmStairs = (new BlockPalmStairs(palmStairsID, palmPlank)).setUnlocalizedName("palmStairs"); + + //Mangrove + mangrovePlank = (new BlockMangrovePlank(mangrovePlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("mangrovePlank"); + mangroveWood = (new BlockMangroveLog(mangroveWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("mangroveWood"); + mangroveLeaves = (BlockMangroveLeaves)(new BlockMangroveLeaves(mangroveLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("mangroveLeaves"); + mangroveDoubleSlab = (BlockHalfSlab)(new BlockMangroveSlab(mangroveDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("mangroveSlab"); + mangroveSingleSlab = (BlockHalfSlab)(new BlockMangroveSlab(mangroveSingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("mangroveSlab"); + mangroveStairs = (new BlockMangroveStairs(mangroveStairsID, mangrovePlank)).setUnlocalizedName("mangroveStairs"); + + //Holy + holyPlank = (new BlockHolyPlank(holyPlankID)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("holyPlank"); + holyWood = (new BlockHolyLog(holyWoodID)).setHardness(2.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("holyWood"); + holyLeaves = (BlockHolyLeaves)(new BlockHolyLeaves(holyLeavesID)).setHardness(0.2F).setLightOpacity(1).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("holyLeaves"); + holyDoubleSlab = (BlockHalfSlab)(new BlockHolySlab(holyDoubleSlabID, true)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("holySlab"); + holySingleSlab = (BlockHalfSlab)(new BlockHolySlab(holySingleSlabID, false)).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("holySlab"); + holyStairs = (new BlockHolyStairs(holyStairsID, holyPlank)).setUnlocalizedName("holyStairs"); + + // Material declaration + EnumArmorMaterialMud = EnumHelper.addArmorMaterial("MUD", 2, new int[]{1, 1, 1, 1}, 5); + EnumToolMaterialMud = EnumHelper.addToolMaterial("MUD", 0, 32, 0.5F, 0, 1); + EnumArmorMaterialAmethyst = EnumHelper.addArmorMaterial("AMETHYST", 40, new int[]{6, 12, 10, 6}, 20); + EnumToolMaterialAmethyst = EnumHelper.addToolMaterial("AMETHYST", 4, 2013, 15.0F, 5, 16); + + // Item declaration + shroomPowder = (new ItemFood(shroomPowderID, 1, 0.5F, false)).setPotionEffect(Potion.confusion.id, 30, 0, 0.6F).setAlwaysEdible().setUnlocalizedName("shroomPowder").setCreativeTab(tabBiomesOPlenty); + mudBall = (new Item(mudBallID)).setUnlocalizedName("mudBall").setCreativeTab(tabBiomesOPlenty); + mudBrick = (new Item(mudBrickID)).setUnlocalizedName("mudBrick").setCreativeTab(tabBiomesOPlenty); + bambooItem = (new ItemBamboo(bambooItemID, bamboo)).setUnlocalizedName("bambooItem").setCreativeTab(tabBiomesOPlenty); + cattailItem = (new ItemCattail(cattailItemID, cattail)).setUnlocalizedName("cattailItem").setCreativeTab(tabBiomesOPlenty); + barleyItem = (new ItemBarley(barleyItemID, barley)).setUnlocalizedName("barleyItem").setCreativeTab(tabBiomesOPlenty); + shortGrassItem = (new ItemShortGrass(shortGrassItemID, shortGrass)).setUnlocalizedName("shortGrassItem").setCreativeTab(tabBiomesOPlenty); + mediumGrassItem = (new ItemMediumGrass(mediumGrassItemID, mediumGrass)).setUnlocalizedName("mediumGrassItem").setCreativeTab(tabBiomesOPlenty); + bushItem = (new ItemBush(bushItemID, bush)).setUnlocalizedName("bushItem").setCreativeTab(tabBiomesOPlenty); + sproutItem = (new ItemSprout(sproutItemID, sprout)).setUnlocalizedName("sproutItem").setCreativeTab(tabBiomesOPlenty); + mossItem = (new Item(mossItemID)).setUnlocalizedName("mossItem").setCreativeTab(tabBiomesOPlenty); + ancientStaff = new ItemAncientStaff(ancientStaffID).setUnlocalizedName("ancientStaff").setCreativeTab(tabBiomesOPlenty); + enderporter = new ItemEnderporter(enderporterID).setUnlocalizedName("enderporter").setCreativeTab(tabBiomesOPlenty); + ashes = (new Item(ashesID)).setUnlocalizedName("ashes").setCreativeTab(tabBiomesOPlenty); + amethyst = (new Item(amethystID)).setUnlocalizedName("amethyst").setCreativeTab(tabBiomesOPlenty); + ancientStaffHandle = (new Item(ancientStaffHandleID)).setUnlocalizedName("ancientStaffHandle").setCreativeTab(tabBiomesOPlenty); + ancientStaffPole = (new Item(ancientStaffPoleID)).setUnlocalizedName("ancientStaffPole").setCreativeTab(tabBiomesOPlenty); + ancientStaffTopper = (new Item(ancientStaffTopperID)).setUnlocalizedName("ancientStaffTopper").setCreativeTab(tabBiomesOPlenty); + bopDisc = (new ItemBOPRecord(bopDiscID, "bopdisc")).setUnlocalizedName("bopDisc").setCreativeTab(tabBiomesOPlenty); + bopDiscMud = (new ItemBOPRecordMud(bopDiscMudID, "bopdiscmud")).setUnlocalizedName("bopDiscMud").setCreativeTab(tabBiomesOPlenty); + + swordMud = (new ItemSword(swordMudID, EnumToolMaterialMud)).setUnlocalizedName("swordMud").setCreativeTab(tabBiomesOPlenty); + shovelMud = (new ItemSpade(shovelMudID, EnumToolMaterialMud)).setUnlocalizedName("shovelMud").setCreativeTab(tabBiomesOPlenty); + pickaxeMud = (new ItemPickaxe(pickaxeMudID, EnumToolMaterialMud)).setUnlocalizedName("pickaxeMud").setCreativeTab(tabBiomesOPlenty); + axeMud = (new ItemAxe(axeMudID, EnumToolMaterialMud)).setUnlocalizedName("hatchetMud").setCreativeTab(tabBiomesOPlenty); + hoeMud = (new ItemHoe(hoeMudID, EnumToolMaterialMud)).setUnlocalizedName("hoeMud").setCreativeTab(tabBiomesOPlenty); + helmetMud = (new ArmorMuddy(helmetMudID, EnumArmorMaterialMud, proxy.addArmor("mud"), 0)).setUnlocalizedName("helmetMud").setCreativeTab(tabBiomesOPlenty); + chestplateMud = (new ArmorMuddy(chestplateMudID, EnumArmorMaterialMud, proxy.addArmor("mud"), 1)).setUnlocalizedName("chestplateMud").setCreativeTab(tabBiomesOPlenty); + leggingsMud = (new ArmorMuddy(leggingsMudID, EnumArmorMaterialMud, proxy.addArmor("mud"), 2)).setUnlocalizedName("leggingsMud").setCreativeTab(tabBiomesOPlenty); + bootsMud = (new ArmorMuddy(bootsMudID, EnumArmorMaterialMud, proxy.addArmor("mud"), 3)).setUnlocalizedName("bootsMud").setCreativeTab(tabBiomesOPlenty); + + swordAmethyst = (new ItemSword(swordAmethystID, EnumToolMaterialAmethyst)).setUnlocalizedName("swordAmethyst").setCreativeTab(tabBiomesOPlenty); + shovelAmethyst = (new ItemSpade(shovelAmethystID, EnumToolMaterialAmethyst)).setUnlocalizedName("shovelAmethyst").setCreativeTab(tabBiomesOPlenty); + pickaxeAmethyst = (new ItemPickaxe(pickaxeAmethystID, EnumToolMaterialAmethyst)).setUnlocalizedName("pickaxeAmethyst").setCreativeTab(tabBiomesOPlenty); + axeAmethyst = (new ItemAxe(axeAmethystID, EnumToolMaterialAmethyst)).setUnlocalizedName("hatchetAmethyst").setCreativeTab(tabBiomesOPlenty); + hoeAmethyst = (new ItemHoe(hoeAmethystID, EnumToolMaterialAmethyst)).setUnlocalizedName("hoeAmethyst").setCreativeTab(tabBiomesOPlenty); + helmetAmethyst = (new ArmorAmethyst(helmetAmethystID, EnumArmorMaterialAmethyst, proxy.addArmor("amethyst"), 0)).setCreativeTab(tabBiomesOPlenty).setUnlocalizedName("helmetAmethyst"); + chestplateAmethyst = (new ArmorAmethyst(chestplateAmethystID, EnumArmorMaterialAmethyst, proxy.addArmor("amethyst"), 1)).setCreativeTab(tabBiomesOPlenty).setUnlocalizedName("chestplateAmethyst"); + leggingsAmethyst = (new ArmorAmethyst(leggingsAmethystID, EnumArmorMaterialAmethyst, proxy.addArmor("amethyst"), 2)).setCreativeTab(tabBiomesOPlenty).setUnlocalizedName("leggingsAmethyst"); + bootsAmethyst = (new ArmorAmethyst(bootsAmethystID, EnumArmorMaterialAmethyst, proxy.addArmor("amethyst"), 3)).setCreativeTab(tabBiomesOPlenty).setUnlocalizedName("bootsAmethyst"); + + // Achievement declaration + achFlower = (new Achievement(3047, "achFlower", 0, 0, Block.plantRed, (Achievement)null)).registerAchievement(); + achRedRock = (new Achievement(3048, "achRedRock", -1, 2, redRock, achFlower)).registerAchievement(); + achThorn = (new Achievement(3049, "achThorn", 2, 1, thorn, achFlower)).registerAchievement(); + achAsh = (new Achievement(3050, "achAsh", 1, 3, ashes, achFlower)).registerAchievement(); + achOrigin = (new Achievement(3051, "achOrigin", 0, 5, originGrass, achFlower)).setSpecial().registerAchievement(); + achPromised = (new Achievement(3052, "achPromised", 0, -5, holyGrass, achFlower)).setSpecial().registerAchievement(); + achMud = (new Achievement(3053, "achMud", -2, -1, mudBall, achFlower)).registerAchievement(); + achShroom = (new Achievement(3054, "achShroom", 1, -2, toadstool, achFlower)).registerAchievement(); + achBarley = (new Achievement(3055, "achBarley", -2, 4, barleyItem, achFlower)).registerAchievement(); + achMoss = (new Achievement(3056, "achMoss", -1, -3, mossItem, achFlower)).registerAchievement(); + + pageBOP = new AchievementPage("Biomes O\' Plenty", achFlower, achRedRock, achThorn, achAsh, achOrigin, achPromised, achMud, achShroom, achBarley, achMoss); + AchievementPage.registerAchievementPage(pageBOP); + + // Add block names + LanguageRegistry.addName(mud, "Mud"); + LanguageRegistry.addName(driedDirt, "Dried Dirt"); + LanguageRegistry.addName(redRock, "Red Rock"); + LanguageRegistry.addName(ash, "Ash Block"); + LanguageRegistry.addName(deadGrass, "Dead Grass"); + LanguageRegistry.addName(desertGrass, "Desert Grass"); + LanguageRegistry.addName(whiteFlower, "Anenome"); + LanguageRegistry.addName(blueFlower, "Swampflower"); + LanguageRegistry.addName(purpleFlower, "Wildflower"); + LanguageRegistry.addName(orangeFlower, "Daisy"); + LanguageRegistry.addName(tinyFlower, "Clover"); + LanguageRegistry.addName(glowFlower, "Glowflower"); + LanguageRegistry.addName(cattail, "Cattail"); + LanguageRegistry.addName(willow, "Willow"); + LanguageRegistry.addName(autumnLeaves, "Autumn Leaves"); + LanguageRegistry.addName(thorn, "Thorns"); + LanguageRegistry.addName(toadstool, "Toadstool"); + LanguageRegistry.addName(highGrassBottom, "High Grass"); + LanguageRegistry.addName(highGrassTop, "High Grass"); + LanguageRegistry.addName(ashStone, "Ashy Stone"); + LanguageRegistry.addName(hardIce, "Hard Ice"); + LanguageRegistry.addName(redLeaves, "Maple Leaves"); + LanguageRegistry.addName(orangeLeaves, "Autumn Leaves"); + LanguageRegistry.addName(pinkLeaves, "Cherry Leaves"); + LanguageRegistry.addName(blueLeaves, "Magic Leaves"); + LanguageRegistry.addName(whiteLeaves, "Cherry Leaves"); + LanguageRegistry.addName(deadLeaves, "Dying Leaves"); + LanguageRegistry.addName(shortGrass, "Short Grass"); + LanguageRegistry.addName(appleLeaves, "Apple Leaves"); + LanguageRegistry.addName(sprout, "Sprout"); + LanguageRegistry.addName(bush, "Bush"); + LanguageRegistry.addName(bamboo, "Bamboo"); + LanguageRegistry.addName(bambooLeaves, "Bamboo Leaves"); + LanguageRegistry.addName(mudBrickBlock, "Mud Bricks"); + LanguageRegistry.addName(mudBrickSingleSlab, "Mud Bricks Slab"); + LanguageRegistry.addName(mudBrickDoubleSlab, "Mud Bricks Slab"); + LanguageRegistry.addName(mudBrickStairs, "Mud Brick Stairs"); + LanguageRegistry.addName(originGrass, "Origin Grass"); + LanguageRegistry.addName(originLeaves, "Origin Leaves"); + LanguageRegistry.addName(pinkFlower, "Tulip"); + LanguageRegistry.addName(treeMoss, "Tree Moss"); + LanguageRegistry.addName(deadWood, "Dead Wood"); + LanguageRegistry.addName(appleLeavesFruitless, "Apple Leaves"); + LanguageRegistry.addName(barley, "Barley"); + LanguageRegistry.addName(giantFlowerStem, "Giant Flower Stem"); + LanguageRegistry.addName(giantFlowerRed, "Giant Red Flower"); + LanguageRegistry.addName(giantFlowerYellow, "Giant Yellow Flower"); + LanguageRegistry.addName(tinyCactus, "Tiny Cactus"); + LanguageRegistry.addName(firSapling, "Fir Sapling"); + LanguageRegistry.addName(redwoodSapling, "Redwood Sapling"); + LanguageRegistry.addName(palmSapling, "Palm Sapling"); + LanguageRegistry.addName(redSapling, "Maple Sapling"); + LanguageRegistry.addName(orangeSapling, "Autumn Sapling"); + LanguageRegistry.addName(yellowSapling, "Autumn Sapling"); + LanguageRegistry.addName(brownSapling, "Dying Sapling"); + LanguageRegistry.addName(willowSapling, "Willow Sapling"); + LanguageRegistry.addName(appleSapling, "Apple Sapling"); + LanguageRegistry.addName(originSapling, "Origin Sapling"); + LanguageRegistry.addName(pinkSapling, "Cherry Sapling"); + LanguageRegistry.addName(whiteSapling, "Cherry Sapling"); + LanguageRegistry.addName(darkSapling, "Dark Sapling"); + LanguageRegistry.addName(magicSapling, "Magic Sapling"); + LanguageRegistry.addName(deathbloom, "Deathbloom"); + LanguageRegistry.addName(redRockCobble, "Red Rock Cobblestone"); + LanguageRegistry.addName(redRockCobbleSingleSlab, "Red Rock Cobblestone Slab"); + LanguageRegistry.addName(redRockCobbleDoubleSlab, "Red Rock Cobblestone Slab"); + LanguageRegistry.addName(redRockCobbleStairs, "Red Rock Cobblestone Stairs"); + LanguageRegistry.addName(redRockBrick, "Red Rock Bricks"); + LanguageRegistry.addName(redRockBrickSingleSlab, "Red Rock Bricks Slab"); + LanguageRegistry.addName(redRockBrickDoubleSlab, "Red Rock Bricks Slab"); + LanguageRegistry.addName(redRockBrickStairs, "Red Rock Brick Stairs"); + LanguageRegistry.addName(hydrangea, "Hydrangea"); + LanguageRegistry.addName(violet, "Violet"); + LanguageRegistry.addName(mediumGrass, "Medium Grass"); + LanguageRegistry.addName(duneGrass, "Dune Grass"); + LanguageRegistry.addName(desertSprouts, "Desert Sprouts"); + LanguageRegistry.addName(mangroveSapling, "Mangrove Sapling"); + LanguageRegistry.addName(hardSand, "Hard Sand"); + LanguageRegistry.addName(acaciaSapling, "Acacia Sapling"); + LanguageRegistry.addName(hardDirt, "Hard Dirt"); + LanguageRegistry.addName(holyGrass, "Holy Grass"); + LanguageRegistry.addName(holyStone, "Holy Stone"); + LanguageRegistry.addName(holyTallGrass, "Holy Tall Grass"); + LanguageRegistry.addName(promisedPortal, "Promised Land Portal"); + LanguageRegistry.addName(holySapling, "Holy Sapling"); + LanguageRegistry.addName(amethystOre, "Amethyst Ore"); + LanguageRegistry.addName(amethystBlock, "Block of Amethyst"); + LanguageRegistry.addName(bambooThatching, "Bamboo Thatching"); + LanguageRegistry.addName(moss, "Moss"); + LanguageRegistry.addName(algae, "Algae"); + LanguageRegistry.addName(smolderingGrass, "Smoldering Grass"); + LanguageRegistry.addName(cragRock, "Crag Rock"); + LanguageRegistry.addName(quicksand, "Quicksand"); + + LanguageRegistry.addName(redwoodPlank, "Redwood Wood Planks"); + LanguageRegistry.addName(redwoodWood, "Redwood Wood"); + LanguageRegistry.addName(redwoodLeaves, "Redwood Leaves"); + LanguageRegistry.addName(redwoodSingleSlab, "Redwood Wood Slab"); + LanguageRegistry.addName(redwoodDoubleSlab, "Redwood Wood Slab"); + LanguageRegistry.addName(redwoodStairs, "Redwood Wood Stairs"); + LanguageRegistry.addName(willowPlank, "Willow Wood Planks"); + LanguageRegistry.addName(willowWood, "Willow Wood"); + LanguageRegistry.addName(willowLeaves, "Willow Leaves"); + LanguageRegistry.addName(willowSingleSlab, "Willow Wood Slab"); + LanguageRegistry.addName(willowDoubleSlab, "Willow Wood Slab"); + LanguageRegistry.addName(willowStairs, "Willow Wood Stairs"); + LanguageRegistry.addName(firPlank, "Fir Wood Planks"); + LanguageRegistry.addName(firWood, "Fir Wood"); + LanguageRegistry.addName(firLeaves, "Fir Leaves"); + LanguageRegistry.addName(firSingleSlab, "Fir Wood Slab"); + LanguageRegistry.addName(firDoubleSlab, "Fir Wood Slab"); + LanguageRegistry.addName(firStairs, "Fir Wood Stairs"); + LanguageRegistry.addName(acaciaPlank, "Acacia Wood Planks"); + LanguageRegistry.addName(acaciaWood, "Acacia Wood"); + LanguageRegistry.addName(acaciaLeaves, "Acacia Leaves"); + LanguageRegistry.addName(acaciaSingleSlab, "Acacia Wood Slab"); + LanguageRegistry.addName(acaciaDoubleSlab, "Acacia Wood Slab"); + LanguageRegistry.addName(acaciaStairs, "Acacia Wood Stairs"); + LanguageRegistry.addName(cherryPlank, "Cherry Wood Planks"); + LanguageRegistry.addName(cherryWood, "Cherry Wood"); + LanguageRegistry.addName(cherrySingleSlab, "Cherry Wood Slab"); + LanguageRegistry.addName(cherryDoubleSlab, "Cherry Wood Slab"); + LanguageRegistry.addName(cherryStairs, "Cherry Wood Stairs"); + LanguageRegistry.addName(darkPlank, "Dark Wood Planks"); + LanguageRegistry.addName(darkWood, "Dark Wood"); + LanguageRegistry.addName(darkLeaves, "Dark Leaves"); + LanguageRegistry.addName(darkSingleSlab, "Dark Wood Slab"); + LanguageRegistry.addName(darkDoubleSlab, "Dark Wood Slab"); + LanguageRegistry.addName(darkStairs, "Dark Wood Stairs"); + LanguageRegistry.addName(magicPlank, "Magic Wood Planks"); + LanguageRegistry.addName(magicWood, "Magic Wood"); + LanguageRegistry.addName(magicSingleSlab, "Magic Wood Slab"); + LanguageRegistry.addName(magicDoubleSlab, "Magic Wood Slab"); + LanguageRegistry.addName(magicStairs, "Magic Wood Stairs"); + LanguageRegistry.addName(palmPlank, "Palm Wood Planks"); + LanguageRegistry.addName(palmWood, "Palm Wood"); + LanguageRegistry.addName(palmLeaves, "Palm Leaves"); + LanguageRegistry.addName(palmSingleSlab, "Palm Wood Slab"); + LanguageRegistry.addName(palmDoubleSlab, "Palm Wood Slab"); + LanguageRegistry.addName(palmStairs, "Palm Wood Stairs"); + LanguageRegistry.addName(mangrovePlank, "Mangrove Wood Planks"); + LanguageRegistry.addName(mangroveWood, "Mangrove Wood"); + LanguageRegistry.addName(mangroveLeaves, "Mangrove Leaves"); + LanguageRegistry.addName(mangroveSingleSlab, "Mangrove Wood Slab"); + LanguageRegistry.addName(mangroveDoubleSlab, "Mangrove Wood Slab"); + LanguageRegistry.addName(mangroveStairs, "Mangrove Wood Stairs"); + LanguageRegistry.addName(holyPlank, "Holy Wood Planks"); + LanguageRegistry.addName(holyWood, "Holy Wood"); + LanguageRegistry.addName(holyLeaves, "Holy Leaves"); + LanguageRegistry.addName(holySingleSlab, "Holy Wood Slab"); + LanguageRegistry.addName(holyDoubleSlab, "Holy Wood Slab"); + LanguageRegistry.addName(holyStairs, "Holy Wood Stairs"); + + LanguageRegistry.addName(shroomPowder, "Shroom Powder"); + LanguageRegistry.addName(mudBall, "Mud Ball"); + LanguageRegistry.addName(mudBrick, "Mud Brick"); + LanguageRegistry.addName(bambooItem, "Bamboo"); + LanguageRegistry.addName(cattailItem, "Cattail"); + LanguageRegistry.addName(shortGrassItem, "Short Grass"); + LanguageRegistry.addName(mediumGrassItem, "Medium Grass"); + LanguageRegistry.addName(bushItem, "Bush"); + LanguageRegistry.addName(sproutItem, "Sprout"); + LanguageRegistry.addName(mossItem, "Moss"); + LanguageRegistry.addName(barleyItem, "Barley"); + LanguageRegistry.addName(ashes, "Pile of Ashes"); + LanguageRegistry.addName(pickaxeMud, "Muddy Pickaxe"); + LanguageRegistry.addName(axeMud, "Muddy Axe"); + LanguageRegistry.addName(shovelMud, "Muddy Shovel"); + LanguageRegistry.addName(swordMud, "Muddy Sword"); + LanguageRegistry.addName(hoeMud, "Muddy Hoe"); + LanguageRegistry.addName(helmetMud, "Muddy Helmet"); + LanguageRegistry.addName(chestplateMud, "Muddy Chestplate"); + LanguageRegistry.addName(leggingsMud, "Muddy Leggings"); + LanguageRegistry.addName(bootsMud, "Muddy Boots"); + LanguageRegistry.addName(ancientStaff, "Ancient Staff"); + LanguageRegistry.addName(ancientStaffHandle, "Ancient Staff Handle"); + LanguageRegistry.addName(ancientStaffPole, "Ancient Staff Pole"); + LanguageRegistry.addName(ancientStaffTopper, "Ancient Staff Topper"); + LanguageRegistry.addName(enderporter, "Enderporter"); + LanguageRegistry.addName(amethyst, "Amethyst"); + LanguageRegistry.addName(bopDisc, "Music Disc"); + LanguageRegistry.addName(bopDiscMud, "Music Disc"); + LanguageRegistry.addName(pickaxeAmethyst, "Amethyst Pickaxe"); + LanguageRegistry.addName(axeAmethyst, "Amethyst Axe"); + LanguageRegistry.addName(shovelAmethyst, "Amethyst Shovel"); + LanguageRegistry.addName(swordAmethyst, "Amethyst Sword"); + LanguageRegistry.addName(hoeAmethyst, "Amethyst Hoe"); + LanguageRegistry.addName(helmetAmethyst, "Amethyst Helmet"); + LanguageRegistry.addName(chestplateAmethyst, "Amethyst Chestplate"); + LanguageRegistry.addName(leggingsAmethyst, "Amethyst Leggings"); + LanguageRegistry.addName(bootsAmethyst, "Amethyst Boots"); + + LanguageRegistry.instance().addStringLocalization("itemGroup.tabBiomesOPlenty", "en_US", "Biomes O\' Plenty"); + + // Add block registration + GameRegistry.registerBlock(mud); + GameRegistry.registerBlock(driedDirt); + GameRegistry.registerBlock(redRock); + GameRegistry.registerBlock(ash); + GameRegistry.registerBlock(deadGrass); + GameRegistry.registerBlock(desertGrass); + GameRegistry.registerBlock(whiteFlower); + GameRegistry.registerBlock(blueFlower); + GameRegistry.registerBlock(purpleFlower); + GameRegistry.registerBlock(orangeFlower); + GameRegistry.registerBlock(tinyFlower); + GameRegistry.registerBlock(glowFlower); + GameRegistry.registerBlock(cattail); + GameRegistry.registerBlock(willow); + GameRegistry.registerBlock(autumnLeaves); + GameRegistry.registerBlock(thorn); + GameRegistry.registerBlock(toadstool); + GameRegistry.registerBlock(highGrassBottom); + GameRegistry.registerBlock(highGrassTop); + GameRegistry.registerBlock(ashStone); + GameRegistry.registerBlock(hardIce); + GameRegistry.registerBlock(redLeaves); + GameRegistry.registerBlock(orangeLeaves); + GameRegistry.registerBlock(pinkLeaves); + GameRegistry.registerBlock(blueLeaves); + GameRegistry.registerBlock(whiteLeaves); + GameRegistry.registerBlock(deadLeaves); + GameRegistry.registerBlock(shortGrass); + GameRegistry.registerBlock(appleLeaves); + GameRegistry.registerBlock(sprout); + GameRegistry.registerBlock(bush); + GameRegistry.registerBlock(bamboo); + GameRegistry.registerBlock(bambooLeaves); + GameRegistry.registerBlock(mudBrickBlock); + GameRegistry.registerBlock(mudBrickDoubleSlab); + GameRegistry.registerBlock(mudBrickSingleSlab); + GameRegistry.registerBlock(mudBrickStairs); + GameRegistry.registerBlock(originGrass); + GameRegistry.registerBlock(originLeaves); + GameRegistry.registerBlock(pinkFlower); + GameRegistry.registerBlock(treeMoss); + GameRegistry.registerBlock(deadWood); + GameRegistry.registerBlock(appleLeavesFruitless); + GameRegistry.registerBlock(barley); + GameRegistry.registerBlock(giantFlowerStem); + GameRegistry.registerBlock(giantFlowerRed); + GameRegistry.registerBlock(giantFlowerYellow); + GameRegistry.registerBlock(tinyCactus); + GameRegistry.registerBlock(firSapling); + GameRegistry.registerBlock(redwoodSapling); + GameRegistry.registerBlock(palmSapling); + GameRegistry.registerBlock(redSapling); + GameRegistry.registerBlock(orangeSapling); + GameRegistry.registerBlock(yellowSapling); + GameRegistry.registerBlock(brownSapling); + GameRegistry.registerBlock(willowSapling); + GameRegistry.registerBlock(appleSapling); + GameRegistry.registerBlock(originSapling); + GameRegistry.registerBlock(pinkSapling); + GameRegistry.registerBlock(whiteSapling); + GameRegistry.registerBlock(darkSapling); + GameRegistry.registerBlock(magicSapling); + GameRegistry.registerBlock(deathbloom); + GameRegistry.registerBlock(redRockCobble); + GameRegistry.registerBlock(redRockCobbleDoubleSlab); + GameRegistry.registerBlock(redRockCobbleSingleSlab); + GameRegistry.registerBlock(redRockCobbleStairs); + GameRegistry.registerBlock(redRockBrick); + GameRegistry.registerBlock(redRockBrickDoubleSlab); + GameRegistry.registerBlock(redRockBrickSingleSlab); + GameRegistry.registerBlock(redRockBrickStairs); + GameRegistry.registerBlock(hydrangea); + GameRegistry.registerBlock(violet); + GameRegistry.registerBlock(mediumGrass); + GameRegistry.registerBlock(duneGrass); + GameRegistry.registerBlock(desertSprouts); + GameRegistry.registerBlock(mangroveSapling); + GameRegistry.registerBlock(hardSand); + GameRegistry.registerBlock(acaciaSapling); + GameRegistry.registerBlock(hardDirt); + GameRegistry.registerBlock(holyGrass); + GameRegistry.registerBlock(holyStone); + GameRegistry.registerBlock(holyTallGrass); + GameRegistry.registerBlock(promisedPortal); + GameRegistry.registerBlock(holySapling); + GameRegistry.registerBlock(amethystOre); + GameRegistry.registerBlock(amethystBlock); + GameRegistry.registerBlock(bambooThatching); + GameRegistry.registerBlock(moss); + GameRegistry.registerBlock(algae); + GameRegistry.registerBlock(smolderingGrass); + GameRegistry.registerBlock(cragRock); + GameRegistry.registerBlock(quicksand); + + GameRegistry.registerBlock(redwoodPlank); + GameRegistry.registerBlock(redwoodWood); + GameRegistry.registerBlock(redwoodLeaves); + GameRegistry.registerBlock(redwoodDoubleSlab); + GameRegistry.registerBlock(redwoodSingleSlab); + GameRegistry.registerBlock(redwoodStairs); + + GameRegistry.registerBlock(willowPlank); + GameRegistry.registerBlock(willowWood); + GameRegistry.registerBlock(willowLeaves); + GameRegistry.registerBlock(willowDoubleSlab); + GameRegistry.registerBlock(willowSingleSlab); + GameRegistry.registerBlock(willowStairs); + + GameRegistry.registerBlock(firPlank); + GameRegistry.registerBlock(firWood); + GameRegistry.registerBlock(firLeaves); + GameRegistry.registerBlock(firDoubleSlab); + GameRegistry.registerBlock(firSingleSlab); + GameRegistry.registerBlock(firStairs); + + GameRegistry.registerBlock(acaciaPlank); + GameRegistry.registerBlock(acaciaWood); + GameRegistry.registerBlock(acaciaLeaves); + GameRegistry.registerBlock(acaciaDoubleSlab); + GameRegistry.registerBlock(acaciaSingleSlab); + GameRegistry.registerBlock(acaciaStairs); + + GameRegistry.registerBlock(cherryPlank); + GameRegistry.registerBlock(cherryWood); + GameRegistry.registerBlock(cherryDoubleSlab); + GameRegistry.registerBlock(cherrySingleSlab); + GameRegistry.registerBlock(cherryStairs); + + GameRegistry.registerBlock(darkPlank); + GameRegistry.registerBlock(darkWood); + GameRegistry.registerBlock(darkLeaves); + GameRegistry.registerBlock(darkDoubleSlab); + GameRegistry.registerBlock(darkSingleSlab); + GameRegistry.registerBlock(darkStairs); + + GameRegistry.registerBlock(magicPlank); + GameRegistry.registerBlock(magicWood); + GameRegistry.registerBlock(magicDoubleSlab); + GameRegistry.registerBlock(magicSingleSlab); + GameRegistry.registerBlock(magicStairs); + + GameRegistry.registerBlock(palmPlank); + GameRegistry.registerBlock(palmWood); + GameRegistry.registerBlock(palmLeaves); + GameRegistry.registerBlock(palmDoubleSlab); + GameRegistry.registerBlock(palmSingleSlab); + GameRegistry.registerBlock(palmStairs); + + GameRegistry.registerBlock(mangrovePlank); + GameRegistry.registerBlock(mangroveWood); + GameRegistry.registerBlock(mangroveLeaves); + GameRegistry.registerBlock(mangroveDoubleSlab); + GameRegistry.registerBlock(mangroveSingleSlab); + GameRegistry.registerBlock(mangroveStairs); + + GameRegistry.registerBlock(holyPlank); + GameRegistry.registerBlock(holyWood); + GameRegistry.registerBlock(holyLeaves); + GameRegistry.registerBlock(holyDoubleSlab); + GameRegistry.registerBlock(holySingleSlab); + GameRegistry.registerBlock(holyStairs); + + MinecraftForge.setBlockHarvestLevel(amethystOre, "pickaxe", 3); + + // Add crafting recipes. + + //Plants + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 6), new Object[] {blueFlower}); + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 13), new Object[] {purpleFlower}); + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 14), new Object[] {orangeFlower}); + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 9), new Object[] {pinkFlower}); + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 8), new Object[] {ashes}); + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 7), new Object[] {whiteFlower}); + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 12), new Object[] {hydrangea}); + GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder, 2, 5), new Object[] {violet}); + GameRegistry.addShapelessRecipe(new ItemStack(shroomPowder, 2), new Object[] {toadstool}); + + //Brick stairs and slabs + GameRegistry.addRecipe(new ItemStack(redRockCobbleSingleSlab, 6), new Object[] {"RRR", 'R', redRockCobble}); + GameRegistry.addRecipe(new ItemStack(redRockCobbleStairs, 4), new Object[] {" R", " RR", "RRR", 'R', redRockCobble}); + GameRegistry.addRecipe(new ItemStack(redRockCobbleStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', redRockCobble}); + GameRegistry.addRecipe(new ItemStack(redRockBrickSingleSlab, 6), new Object[] {"RRR", 'R', redRockBrick}); + GameRegistry.addRecipe(new ItemStack(redRockBrickStairs, 4), new Object[] {" R", " RR", "RRR", 'R', redRockBrick}); + GameRegistry.addRecipe(new ItemStack(redRockBrickStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', redRockBrick}); + GameRegistry.addRecipe(new ItemStack(mudBrickSingleSlab, 6), new Object[] {"RRR", 'R', mudBrickBlock}); + GameRegistry.addRecipe(new ItemStack(mudBrickStairs, 4), new Object[] {" R", " RR", "RRR", 'R', mudBrickBlock}); + GameRegistry.addRecipe(new ItemStack(mudBrickStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', mudBrickBlock}); + + //Redwood + GameRegistry.addShapelessRecipe(new ItemStack(redwoodPlank, 4), new Object[] {redwoodWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', redwoodPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', redwoodPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', redwoodPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', redwoodPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', redwoodPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', redwoodPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(redwoodSingleSlab, 6), new Object[] {"RRR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(redwoodStairs, 4), new Object[] {" R", " RR", "RRR", 'R', redwoodPlank}); + GameRegistry.addRecipe(new ItemStack(redwoodStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', redwoodPlank}); + + //Willow + GameRegistry.addShapelessRecipe(new ItemStack(willowPlank, 4), new Object[] {willowWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', willowPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', willowPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', willowPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', willowPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', willowPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', willowPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(willowSingleSlab, 6), new Object[] {"RRR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(willowStairs, 4), new Object[] {" R", " RR", "RRR", 'R', willowPlank}); + GameRegistry.addRecipe(new ItemStack(willowStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', willowPlank}); + + //Acacia + GameRegistry.addShapelessRecipe(new ItemStack(acaciaPlank, 4), new Object[] {acaciaWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', acaciaPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', acaciaPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', acaciaPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', acaciaPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', acaciaPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', acaciaPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(acaciaSingleSlab, 6), new Object[] {"RRR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(acaciaStairs, 4), new Object[] {" R", " RR", "RRR", 'R', acaciaPlank}); + GameRegistry.addRecipe(new ItemStack(acaciaStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', acaciaPlank}); + + //Fir + GameRegistry.addShapelessRecipe(new ItemStack(firPlank, 4), new Object[] {firWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', firPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', firPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', firPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', firPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', firPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', firPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(firSingleSlab, 6), new Object[] {"RRR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(firStairs, 4), new Object[] {" R", " RR", "RRR", 'R', firPlank}); + GameRegistry.addRecipe(new ItemStack(firStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', firPlank}); + + //Cherry + GameRegistry.addShapelessRecipe(new ItemStack(cherryPlank, 4), new Object[] {cherryWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', cherryPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', cherryPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', cherryPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', cherryPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', cherryPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', cherryPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(cherrySingleSlab, 6), new Object[] {"RRR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(cherryStairs, 4), new Object[] {" R", " RR", "RRR", 'R', cherryPlank}); + GameRegistry.addRecipe(new ItemStack(cherryStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', cherryPlank}); + + //Dark + GameRegistry.addShapelessRecipe(new ItemStack(darkPlank, 4), new Object[] {darkWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', darkPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', darkPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', darkPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', darkPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', darkPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', darkPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(darkSingleSlab, 6), new Object[] {"RRR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(darkStairs, 4), new Object[] {" R", " RR", "RRR", 'R', darkPlank}); + GameRegistry.addRecipe(new ItemStack(darkStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', darkPlank}); + + //Magic + GameRegistry.addShapelessRecipe(new ItemStack(magicPlank, 4), new Object[] {magicWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', magicPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', magicPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', magicPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', magicPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', magicPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', magicPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(magicSingleSlab, 6), new Object[] {"RRR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(magicStairs, 4), new Object[] {" R", " RR", "RRR", 'R', magicPlank}); + GameRegistry.addRecipe(new ItemStack(magicStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', magicPlank}); + + //Palm + GameRegistry.addShapelessRecipe(new ItemStack(palmPlank, 4), new Object[] {palmWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', palmPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', palmPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', palmPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', palmPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', palmPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', palmPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(palmSingleSlab, 6), new Object[] {"RRR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(palmStairs, 4), new Object[] {" R", " RR", "RRR", 'R', palmPlank}); + GameRegistry.addRecipe(new ItemStack(palmStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', palmPlank}); + + //Mangrove + GameRegistry.addShapelessRecipe(new ItemStack(mangrovePlank, 4), new Object[] {mangroveWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', mangrovePlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', mangrovePlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', mangrovePlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', mangrovePlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', mangrovePlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', mangrovePlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(mangroveSingleSlab, 6), new Object[] {"RRR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(mangroveStairs, 4), new Object[] {" R", " RR", "RRR", 'R', mangrovePlank}); + GameRegistry.addRecipe(new ItemStack(mangroveStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', mangrovePlank}); + + //Holy + GameRegistry.addShapelessRecipe(new ItemStack(holyPlank, 4), new Object[] {holyWood}); + GameRegistry.addRecipe(new ItemStack(Block.workbench, 1), new Object[] {"RR", "RR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Item.doorWood, 1), new Object[] {"RR", "RR", "RR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Item.stick, 4), new Object[] {"R", "R", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Item.bowlEmpty, 4), new Object[] {"R R", " R ", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Item.boat, 1), new Object[] {"R R", "RRR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Block.pressurePlatePlanks, 1), new Object[] {"RR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Block.trapdoor, 2), new Object[] {"RRR", "RRR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Block.chest, 1), new Object[] {"RRR", "R R", "RRR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(Item.swordWood, 1), new Object[] {"R", "R", "X", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.pickaxeWood, 1), new Object[] {"RRR", " X ", " X ", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "RX ", " X", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.axeWood, 1), new Object[] {"RR", "XR", "X ", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.shovelWood, 1), new Object[] {"R", "X", "X", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", "X ", "X ", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.hoeWood, 1), new Object[] {"RR", " X", " X", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.sign, 3), new Object[] {"RRR", "RRR", " X ", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Block.fenceGate, 1), new Object[] {"XRX", "XRX", 'R', holyPlank, 'X', Item.stick}); + GameRegistry.addRecipe(new ItemStack(Item.bed, 1), new Object[] {"WWW", "RRR", 'R', holyPlank, 'W', Block.cloth}); + GameRegistry.addRecipe(new ItemStack(Block.jukebox, 1), new Object[] {"RRR", "RDR", "RRR", 'R', holyPlank, 'D', Item.diamond}); + GameRegistry.addRecipe(new ItemStack(Block.music, 1), new Object[] {"RRR", "RPR", "RRR", 'R', holyPlank, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.pistonBase, 1), new Object[] {"RRR", "CIC", "CPC", 'R', holyPlank, 'C', Block.cobblestone, 'I', Item.ingotIron, 'P', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(Block.bookShelf, 1), new Object[] {"RRR", "BBB", "RRR", 'R', holyPlank, 'B', Item.book}); + GameRegistry.addRecipe(new ItemStack(holySingleSlab, 6), new Object[] {"RRR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(holyStairs, 4), new Object[] {" R", " RR", "RRR", 'R', holyPlank}); + GameRegistry.addRecipe(new ItemStack(holyStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', holyPlank}); + + //Mud Tools and Armor + GameRegistry.addRecipe(new ItemStack(pickaxeMud, 1), new Object [] {"###", " X ", " X ", Character.valueOf('#'), mudBall, Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(shovelMud, 1), new Object [] {"#", "X", "X", Character.valueOf('#'), mudBall, Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(swordMud, 1), new Object [] {"#", "#", "X", Character.valueOf('#'), mudBall, Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(axeMud, 1), new Object [] {"##", "#X ", " X", Character.valueOf('#'), mudBall, Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(axeMud, 1), new Object [] {"##", "X#", "X ", Character.valueOf('#'), mudBall, Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(hoeMud, 1), new Object [] {"##", " X", " X", Character.valueOf('#'), mudBall, Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(hoeMud, 1), new Object [] {"##", "X ", "X ", Character.valueOf('#'), mudBall, Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(helmetMud, 1), new Object [] {"###", "# #", Character.valueOf('#'), mudBall}); + GameRegistry.addRecipe(new ItemStack(chestplateMud, 1), new Object [] {"# #", "###", "###", Character.valueOf('#'), mudBall}); + GameRegistry.addRecipe(new ItemStack(leggingsMud, 1), new Object [] {"###", "# #", "# #", Character.valueOf('#'), mudBall}); + GameRegistry.addRecipe(new ItemStack(bootsMud, 1), new Object [] {"# #", "# #", Character.valueOf('#'), mudBall}); + + //Amethyst Tools and Armor + GameRegistry.addRecipe(new ItemStack(pickaxeAmethyst, 1), new Object [] {"###", " X ", " X ", Character.valueOf('#'), amethyst, Character.valueOf('X'), Item.ingotIron}); + GameRegistry.addRecipe(new ItemStack(shovelAmethyst, 1), new Object [] {"#", "X", "X", Character.valueOf('#'), amethyst, Character.valueOf('X'), Item.ingotIron}); + GameRegistry.addRecipe(new ItemStack(swordAmethyst, 1), new Object [] {"#", "#", "X", Character.valueOf('#'), amethyst, Character.valueOf('X'), Item.ingotIron}); + GameRegistry.addRecipe(new ItemStack(axeAmethyst, 1), new Object [] {"##", "#X ", " X", Character.valueOf('#'), amethyst, Character.valueOf('X'), Item.ingotIron}); + GameRegistry.addRecipe(new ItemStack(axeAmethyst, 1), new Object [] {"##", "X#", "X ", Character.valueOf('#'), amethyst, Character.valueOf('X'), Item.ingotIron}); + GameRegistry.addRecipe(new ItemStack(hoeAmethyst, 1), new Object [] {"##", " X", " X", Character.valueOf('#'), amethyst, Character.valueOf('X'), Item.ingotIron}); + GameRegistry.addRecipe(new ItemStack(hoeAmethyst, 1), new Object [] {"##", "X ", "X ", Character.valueOf('#'), amethyst, Character.valueOf('X'), Item.ingotIron}); + GameRegistry.addRecipe(new ItemStack(helmetAmethyst, 1), new Object [] {"###", "# #", Character.valueOf('#'), amethyst}); + GameRegistry.addRecipe(new ItemStack(chestplateAmethyst, 1), new Object [] {"# #", "###", "###", Character.valueOf('#'), amethyst}); + GameRegistry.addRecipe(new ItemStack(leggingsAmethyst, 1), new Object [] {"###", "# #", "# #", Character.valueOf('#'), amethyst}); + GameRegistry.addRecipe(new ItemStack(bootsAmethyst, 1), new Object [] {"# #", "# #", Character.valueOf('#'), amethyst}); + + //Other + GameRegistry.addRecipe(new ItemStack(Block.cloth, 1, 0), new Object[] {"CCC", "CCC", "CCC", 'C', cattailItem}); + GameRegistry.addRecipe(new ItemStack(Item.coal, 1), new Object[] {"AAA", "AAA", "AAA", 'A', ashes}); + GameRegistry.addRecipe(new ItemStack(mud, 1), new Object[] {"MM", "MM", 'M', mudBall}); + GameRegistry.addRecipe(new ItemStack(amethystBlock, 1), new Object[] {"AAA", "AAA", "AAA", 'A', amethyst}); + GameRegistry.addShapelessRecipe(new ItemStack(amethyst, 9), new Object[] {amethystBlock}); + GameRegistry.addRecipe(new ItemStack(ash, 1), new Object[] {"AA", "AA", 'A', ashes}); + GameRegistry.addRecipe(new ItemStack(mudBrickBlock, 1), new Object[] {"MM", "MM", 'M', mudBrick}); + GameRegistry.addRecipe(new ItemStack(redRockBrick, 4), new Object[] {"RR", "RR", 'R', redRock}); + GameRegistry.addRecipe(new ItemStack(ancientStaff, 1, 0), new Object[] {"T", "P", "H", 'T', ancientStaffTopper, 'P', ancientStaffPole, 'H', ancientStaffHandle}); + GameRegistry.addRecipe(new ItemStack(ancientStaffHandle, 1, 0), new Object[] {"ISI", "ISI", " E ", 'I', Item.ingotIron, 'S', Block.whiteStone, 'E', Item.emerald}); + GameRegistry.addRecipe(new ItemStack(ancientStaffPole, 1, 0), new Object[] {"ISI", "IRI", "ISI", 'I', Item.ingotIron, 'S', Block.whiteStone, 'R', Item.redstone}); + GameRegistry.addRecipe(new ItemStack(ancientStaffTopper, 1, 0), new Object[] {" N ", "IDI", "ISI", 'I', Item.ingotIron, 'S', Block.whiteStone, 'D', Item.diamond, 'N', Item.netherStar}); + GameRegistry.addRecipe(new ItemStack(enderporter, 1, 0), new Object[] {"IOI", "OAO", "IOI", 'I', Item.eyeOfEnder, 'O', Block.obsidian, 'A', amethystBlock}); + GameRegistry.addRecipe(new ItemStack(Item.wheat, 1), new Object[] {"###", '#', barleyItem}); + GameRegistry.addRecipe(new ItemStack(bambooThatching, 1), new Object[] {"###", "###", "###", '#', bambooItem}); + GameRegistry.addRecipe(new ItemStack(bopDiscMud, 1), new Object[] {" M ", "MDM", " M ", 'M', mudBall, 'D', bopDisc}); + GameRegistry.addShapelessRecipe(new ItemStack(bambooItem, 9), new Object[] {bambooThatching}); + GameRegistry.addShapelessRecipe(new ItemStack(Block.cobblestoneMossy, 1), new Object[] {Block.cobblestone, mossItem}); + GameRegistry.addRecipe(new ItemStack(Block.cobblestoneMossy, 1, 0), new Object[] {"MMM", "MCM", "MMM", 'M', mossItem, 'C', Block.cobblestone}); + GameRegistry.addRecipe(new ItemStack(Block.stoneBrick, 1, 1), new Object[] {"MMM", "MSM", "MMM", 'M', mossItem, 'S', Block.stoneBrick}); + + GameRegistry.addSmelting(Block.dirt.blockID, new ItemStack(driedDirt, 1), 0F); + GameRegistry.addSmelting(mudBall.itemID, new ItemStack(mudBrick, 1), 0F); + GameRegistry.addSmelting(redRockCobble.blockID, new ItemStack(redRock, 1), 0.1F); + GameRegistry.addSmelting(tinyCactus.blockID, new ItemStack(Item.dyePowder, 1, 2), 0.2F); + + GameRegistry.addSmelting(redwoodWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(willowWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(firWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(acaciaWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(cherryWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(darkWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(magicWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(palmWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + GameRegistry.addSmelting(mangroveWood.blockID, new ItemStack(Item.coal, 1, 1), 0.15F); + + // Add Achievement registration + addAchievementDesc("achFlower", "Flower Child", "Pick some flowers!"); + addAchievementDesc("achRedRock", "Red Rocky Mountain High", "Dig out some red rocks."); + addAchievementDesc("achThorn", "Rather Thorny...", "Don\'t get cut!"); + addAchievementDesc("achAsh", "Ash-ievement", "Get it? \'Cause it\'s ash."); + addAchievementDesc("achOrigin", "Alpha...", "Get some grass from the Origin Valley."); + addAchievementDesc("achPromised", "...Omega", "Welcome to the Promised Land!"); + addAchievementDesc("achMud", "Sticky Situation", "I just had these boots cleaned!"); + addAchievementDesc("achShroom", "Trippin\'", "Don\'t try this at home, kids!"); + addAchievementDesc("achBarley", "Fields Of Gold", "Upon the fields of barley."); + addAchievementDesc("achMoss", "Mossman", "Mothman's long-lost cousin."); + + LanguageRegistry.instance().addStringLocalization("generator.BIOMESOP", "en_US", "Biomes O\' Plenty"); + + // Add helpers for compatibility + MinecraftForge.TERRAIN_GEN_BUS.register(new WorldTypeSize()); + MinecraftForge.EVENT_BUS.register(new AchievementPickup()); + MinecraftForge.EVENT_BUS.register(new BonemealUse()); + + proxy.registerRenderers(); + + + // Initialize biomes + alps = (new BiomeGenAlps(alpsID)).setColor(353825).setBiomeName("Alps").func_76733_a(5159473).setTemperatureRainfall(0.0F, 0.0F).setMinMaxHeight(5.0F, 5.0F); + arctic = (new BiomeGenArctic(arcticID)).setColor(14090235).setBiomeName("Arctic").setTemperatureRainfall(0.0F, 0.0F).setMinMaxHeight(0.1F, 0.7F); + badlands = (new BiomeGenBadlands(badlandsID)).setColor(16421912).setBiomeName("Badlands").setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.3F, 0.9F); + bambooForest = (new BiomeGenBambooForest(bambooForestID)).setColor(112).setBiomeName("Bamboo Forest").setMinMaxHeight(0.0F, 0.3F); + bayou = (new BiomeGenBayou(bayouID)).setColor(522674).setBiomeName("Bayou").func_76733_a(9154376).setMinMaxHeight(-0.3F, 0.2F); + birchForest = (new BiomeGenBirchForest(birchForestID)).setColor(353825).setBiomeName("Birch Forest").func_76733_a(5159473).setTemperatureRainfall(0.4F, 0.3F); + bog = (new BiomeGenBog(bogID)).setColor(522674).setBiomeName("Bog").func_76733_a(9154376).setMinMaxHeight(-0.3F, -0.1F).setTemperatureRainfall(0.8F, 0.9F); + borealForest = (new BiomeGenBorealForest(borealForestID)).setColor(353825).setBiomeName("Boreal Forest").func_76733_a(5159473).setMinMaxHeight(0.0F, 1.0F).setTemperatureRainfall(0.6F, 0.7F); + canyon = (new BiomeGenCanyon(canyonID)).setColor(9286496).setBiomeName("Canyon").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(3.0F, 5.0F); + chaparral = (new BiomeGenChaparral(chaparralID)).setColor(9286496).setBiomeName("Chaparral").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.3F, 0.6F); + cherryBlossomGrove = (new BiomeGenCherryBlossomGrove(cherryBlossomGroveID)).setColor(9286496).setBiomeName("Cherry Blossom Grove").setMinMaxHeight(0.1F, 0.2F); + coniferousForest = (new BiomeGenConiferousForest(coniferousForestID)).setColor(747097).setBiomeName("Coniferous Forest").func_76733_a(5159473).setTemperatureRainfall(0.3F, 0.4F).setMinMaxHeight(0.1F, 0.8F); + crag = (new BiomeGenCrag(cragID)).setColor(9286496).setBiomeName("Crag").setMinMaxHeight(0.0F, 9.9F); + deadForest = (new BiomeGenDeadForest(deadForestID)).setColor(522674).setBiomeName("Dead Forest").func_76733_a(9154376).setMinMaxHeight(0.2F, 0.7F); + deadSwamp = (new BiomeGenDeadSwamp(deadSwampID)).setColor(522674).setBiomeName("Dead Swamp").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.1F).setTemperatureRainfall(0.8F, 0.9F); + deadlands = (new BiomeGenDeadlands(deadlandsID)).setColor(522674).setBiomeName("Deadlands").setDisableRain().func_76733_a(9154376).setMinMaxHeight(0.1F, 0.5F); + deciduousForest = (new BiomeGenDeciduousForest(deciduousForestID)).setColor(353825).setBiomeName("Deciduous Forest").func_76733_a(5159473); + drylands = (new BiomeGenDrylands(drylandsID)).setColor(16421912).setBiomeName("Drylands").setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.0F, 0.5F); + dunes = (new BiomeGenDunes(dunesID)).setColor(13786898).setBiomeName("Dunes").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.5F, 1.3F); + fen = (new BiomeGenFen(fenID)).setColor(9286496).setBiomeName("Fen").setTemperatureRainfall(0.4F, 0.0F).setMinMaxHeight(-0.2F, 0.1F); + field = (new BiomeGenField(fieldID)).setColor(9286496).setBiomeName("Field").setTemperatureRainfall(0.4F, 0.8F).setMinMaxHeight(0.0F, 0.1F); + frostForest = (new BiomeGenFrostForest(frostForestID)).setColor(14090235).setBiomeName("Frost Forest").setEnableSnow().setTemperatureRainfall(0.0F, 0.0F).setMinMaxHeight(0.1F, 0.4F); + fungiForest = (new BiomeGenFungiForest(fungiForestID)).setColor(747097).setBiomeName("Fungi Forest").func_76733_a(5159473).setTemperatureRainfall(0.9F, 1.0F).setMinMaxHeight(0.0F, 0.4F); + garden = (new BiomeGenGarden(gardenID)).setColor(9286496).setBiomeName("Garden").setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(0.1F, 0.2F); + glacier = (new BiomeGenGlacier(glacierID)).setColor(6316128).setBiomeName("Glacier").setEnableSnow().setMinMaxHeight(0.4F, 1.0F).setTemperatureRainfall(0.0F, 0.0F); + grassland = (new BiomeGenGrassland(grasslandID)).setColor(9286496).setBiomeName("Grassland").setTemperatureRainfall(0.7F, 0.7F).setMinMaxHeight(0.2F, 0.2F); + grove = (new BiomeGenGrove(groveID)).setColor(9286496).setBiomeName("Grove").setTemperatureRainfall(0.4F, 0.8F).setMinMaxHeight(0.0F, 0.1F); + heathland = (new BiomeGenHeathland(heathlandID)).setColor(353825).setBiomeName("Heathland").func_76733_a(5159473).setTemperatureRainfall(0.8F, 0.1F).setMinMaxHeight(0.1F, 0.3F); + highland = (new BiomeGenHighland(highlandID)).setColor(6316128).setBiomeName("Highland").setMinMaxHeight(0.9F, 1.9F).setTemperatureRainfall(0.5F, 0.5F); + iceSheet = (new BiomeGenIceSheet(iceSheetID)).setColor(6316128).setBiomeName("Ice Sheet").setEnableSnow().setMinMaxHeight(0.1F, 0.2F).setTemperatureRainfall(0.0F, 0.0F); + icyHills = (new BiomeGenIcyHills(icyHillsID)).setColor(14090235).setBiomeName("Icy Hills").setEnableSnow().setTemperatureRainfall(0.0F, 0.0F).setMinMaxHeight(-0.2F, 0.5F); + jadeCliffs = (new BiomeGenJadeCliffs(jadeCliffsID)).setColor(14090235).setBiomeName("Jade Cliffs").setTemperatureRainfall(0.5F, 0.1F).setMinMaxHeight(0.1F, 2.0F); + lushDesert = (new BiomeGenLushDesert(lushDesertID)).setColor(16421912).setBiomeName("Lush Desert").setTemperatureRainfall(0.8F, 0.3F).setMinMaxHeight(0.2F, 0.8F); + lushSwamp = (new BiomeGenLushSwamp(lushSwampID)).setColor(522674).setBiomeName("Lush Swamp").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.1F).setTemperatureRainfall(0.7F, 1.0F); + mangrove = (new BiomeGenMangrove(mangroveID)).setColor(16440917).setBiomeName("Mangrove").setMinMaxHeight(-0.4F, -0.1F); + mapleWoods = (new BiomeGenMapleWoods(mapleWoodsID)).setColor(747097).setBiomeName("Maple Woods").func_76733_a(5159473).setTemperatureRainfall(0.2F, 0.8F).setMinMaxHeight(0.1F, 0.6F); + marsh = (new BiomeGenMarsh(marshID)).setColor(10486015).setBiomeName("Marsh").setMinMaxHeight(-0.5F, 0.0F); + meadow = (new BiomeGenMeadow(meadowID)).setColor(9286496).setBiomeName("Meadow").setTemperatureRainfall(0.7F, 0.7F); + mesa = (new BiomeGenMesa(mesaID)).setColor(16421912).setBiomeName("Mesa").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.8F, 1.0F); + moor = (new BiomeGenMoor(moorID)).setColor(16421912).setBiomeName("Moor").setTemperatureRainfall(0.5F, 1.0F).setMinMaxHeight(0.7F, 0.8F); + mountain = (new BiomeGenMountain(mountainID)).setColor(14090235).setBiomeName("Mountain").setTemperatureRainfall(0.5F, 0.1F).setMinMaxHeight(1.2F, 1.2F); + mysticGrove = (new BiomeGenMysticGrove(mysticGroveID)).setColor(353825).setBiomeName("Mystic Grove").setDisableRain().func_76733_a(5159473).setTemperatureRainfall(0.9F, 1.0F); + oasis = (new BiomeGenOasis(oasisID)).setColor(16421912).setBiomeName("Oasis").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 0.2F); + ominousWoods = (new BiomeGenOminousWoods(ominousWoodsID)).setColor(353825).setBiomeName("Ominous Woods").setDisableRain().func_76733_a(5159473).setTemperatureRainfall(0.8F, 0.9F); + orchard = (new BiomeGenOrchard(orchardID)).setColor(9286496).setBiomeName("Orchard").setTemperatureRainfall(0.8F, 0.4F); + originValley = (new BiomeGenOriginValley(originValleyID)).setColor(353825).setBiomeName("Origin Valley").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(-0.1F, 0.6F); + outback = (new BiomeGenOutback(outbackID)).setColor(9286496).setBiomeName("Outback").setTemperatureRainfall(0.8F, 0.0F).setMinMaxHeight(0.1F, 0.1F); + pasture = (new BiomeGenPasture(pastureID)).setColor(9286496).setBiomeName("Pasture").setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.1F, 0.2F); + prairie = (new BiomeGenPrairie(prairieID)).setColor(353825).setBiomeName("Prairie").func_76733_a(5159473).setTemperatureRainfall(0.9F, 0.6F).setMinMaxHeight(0.1F, 0.1F); + promisedLand = (new BiomeGenPromisedLand(promisedLandID)).setColor(112).setBiomeName("Promised Land").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 2.0F); + quagmire = (new BiomeGenQuagmire(quagmireID)).setColor(522674).setBiomeName("Quagmire").func_76733_a(9154376).setMinMaxHeight(-0.1F, 0.3F).setTemperatureRainfall(0.8F, 0.9F); + rainforest = (new BiomeGenRainforest(rainforestID)).setColor(5470985).setBiomeName("Rainforest").func_76733_a(5470985).setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.7F, 1.8F); + redwoodForest = (new BiomeGenRedwoodForest(redwoodForestID)).setColor(747097).setBiomeName("Redwood Forest").func_76733_a(5159473).setTemperatureRainfall(0.8F, 0.4F).setMinMaxHeight(0.0F, 0.4F); + sacredSprings = (new BiomeGenSacredSprings(sacredSpringsID)).setColor(522674).setBiomeName("Sacred Springs").func_76733_a(9154376).setMinMaxHeight(0.0F, 1.2F).setTemperatureRainfall(0.8F, 0.9F); + savanna = (new BiomeGenSavanna(savannaID)).setColor(9286496).setBiomeName("Savanna").setTemperatureRainfall(2.0F, 0.1F).setMinMaxHeight(0.1F, 0.1F); + scrubland = (new BiomeGenScrubland(scrublandID)).setColor(9286496).setBiomeName("Scrubland").setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.1F, 0.3F); + seasonalForest = (new BiomeGenSeasonalForest(seasonalForestID)).setColor(353825).setBiomeName("Seasonal Forest").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(0.2F, 0.7F); + shield = (new BiomeGenShield(shieldID)).setColor(522674).setBiomeName("Shield").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.4F).setTemperatureRainfall(0.5F, 0.8F); + shore = (new BiomeGenShore(shoreID)).setColor(9286496).setBiomeName("Shore").setMinMaxHeight(-1.0F, 0.4F); + shrubland = (new BiomeGenShrubland(shrublandID)).setColor(9286496).setBiomeName("Shrubland").setMinMaxHeight(0.1F, 0.2F).setTemperatureRainfall(0.6F, 0.0F); + snowyWoods = (new BiomeGenSnowyWoods(snowyWoodsID)).setColor(522674).setBiomeName("Snowy Woods").func_76733_a(9154376).setEnableSnow().setTemperatureRainfall(0.05F, 0.8F).setMinMaxHeight(0.2F, 0.7F); + spruceWoods = (new BiomeGenSpruceWoods(spruceWoodsID)).setColor(353825).setBiomeName("Spruce Woods").func_76733_a(5159473).setTemperatureRainfall(0.6F, 0.7F); + steppe = (new BiomeGenSteppe(steppeID)).setColor(9286496).setBiomeName("Steppe").setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.1F, 0.2F); + swampwoods = (new BiomeGenSwampwoods(swampwoodsID)).setColor(522674).setBiomeName("Swampwoods").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.2F).setTemperatureRainfall(0.8F, 0.9F); + temperateRainforest = (new BiomeGenTemperateRainforest(temperateRainforestID)).setColor(353825).setBiomeName("Temperate Rainforest").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F).setMinMaxHeight(0.2F, 1.2F); + thicket = (new BiomeGenThicket(thicketID)).setColor(353825).setBiomeName("Thicket").func_76733_a(5159473).setTemperatureRainfall(0.6F, 0.2F).setMinMaxHeight(0.0F, 0.2F); + tropicalRainforest = (new BiomeGenTropicalRainforest(tropicalRainforestID)).setColor(9286496).setBiomeName("Tropical Rainforest").setTemperatureRainfall(1.2F, 0.9F).setMinMaxHeight(0.3F, 0.7F); + tropics = (new BiomeGenTropics(tropicsID)).setColor(9286496).setBiomeName("Tropics").setTemperatureRainfall(2.0F, 2.0F).setMinMaxHeight(0.1F, 0.8F); + tundra = (new BiomeGenTundra(tundraID)).setColor(14090235).setBiomeName("Tundra").setEnableSnow().setTemperatureRainfall(0.0F, 0.0F).setMinMaxHeight(-0.2F, 0.0F); + volcano = (new BiomeGenVolcano(volcanoID)).setColor(9286496).setBiomeName("Volcano").setDisableRain().setMinMaxHeight(0.6F, 0.9F); + wasteland = (new BiomeGenWasteland(wastelandID)).setColor(16421912).setBiomeName("Wasteland").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.0F, 0.0F); + wetland = (new BiomeGenWetland(wetlandID)).setColor(522674).setBiomeName("Wetland").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.4F).setTemperatureRainfall(0.8F, 0.9F); + woodland = (new BiomeGenWoodland(woodlandID)).setColor(353825).setBiomeName("Woodland").func_76733_a(5159473).setTemperatureRainfall(2.0F, 0.2F).setMinMaxHeight(0.1F, 0.2F); + plainsNew = (new BiomeGenPlainsNew(plainsNewID)).setColor(9286496).setBiomeName("Plains").setTemperatureRainfall(0.8F, 0.4F); + desertNew = (new BiomeGenDesertNew(desertNewID)).setColor(16421912).setBiomeName("Desert").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.1F, 0.2F); + extremeHillsNew = (new BiomeGenHillsNew(extremeHillsNewID)).setColor(6316128).setBiomeName("Extreme Hills").setMinMaxHeight(0.3F, 1.5F).setTemperatureRainfall(0.2F, 0.3F); + forestNew = (new BiomeGenForestNew(forestNewID)).setColor(353825).setBiomeName("Forest").func_76733_a(5159473).setTemperatureRainfall(0.7F, 0.8F); + taigaNew = (new BiomeGenTaigaNew(taigaNewID)).setColor(747097).setBiomeName("Taiga").func_76733_a(5159473).setEnableSnow().setTemperatureRainfall(0.05F, 0.8F).setMinMaxHeight(0.1F, 0.4F); + swamplandNew = (new BiomeGenSwampNew(swamplandNewID)).setColor(522674).setBiomeName("Swampland").func_76733_a(9154376).setMinMaxHeight(-0.2F, 0.1F).setTemperatureRainfall(0.8F, 0.9F); + jungleNew = (new BiomeGenJungleNew(jungleNewID)).setColor(5470985).setBiomeName("Jungle").func_76733_a(5470985).setTemperatureRainfall(1.2F, 0.9F).setMinMaxHeight(0.2F, 0.4F); + + + //Initialize new world type + WTBiomesOP = new WTBiomesOP(); + + + //Spawning + BiomeManager.addSpawnBiome(alps); + BiomeManager.addSpawnBiome(arctic); + BiomeManager.addSpawnBiome(badlands); + BiomeManager.addSpawnBiome(bambooForest); + BiomeManager.addSpawnBiome(bayou); + BiomeManager.addSpawnBiome(birchForest); + BiomeManager.addSpawnBiome(bog); + BiomeManager.addSpawnBiome(borealForest); + BiomeManager.addSpawnBiome(canyon); + BiomeManager.addSpawnBiome(chaparral); + BiomeManager.addSpawnBiome(cherryBlossomGrove); + BiomeManager.addSpawnBiome(coniferousForest); + BiomeManager.addSpawnBiome(deadForest); + BiomeManager.addSpawnBiome(deadSwamp); + BiomeManager.addSpawnBiome(deciduousForest); + BiomeManager.addSpawnBiome(drylands); + BiomeManager.addSpawnBiome(dunes); + BiomeManager.addSpawnBiome(fen); + BiomeManager.addSpawnBiome(field); + BiomeManager.addSpawnBiome(frostForest); + BiomeManager.addSpawnBiome(glacier); + BiomeManager.addSpawnBiome(grassland); + BiomeManager.addSpawnBiome(grove); + BiomeManager.addSpawnBiome(heathland); + BiomeManager.addSpawnBiome(highland); + BiomeManager.addSpawnBiome(iceSheet); + BiomeManager.addSpawnBiome(jadeCliffs); + BiomeManager.addSpawnBiome(lushDesert); + BiomeManager.addSpawnBiome(lushSwamp); + BiomeManager.addSpawnBiome(mangrove); + BiomeManager.addSpawnBiome(mapleWoods); + BiomeManager.addSpawnBiome(marsh); + BiomeManager.addSpawnBiome(meadow); + BiomeManager.addSpawnBiome(mesa); + BiomeManager.addSpawnBiome(moor); + BiomeManager.addSpawnBiome(mountain); + BiomeManager.addSpawnBiome(oasis); + BiomeManager.addSpawnBiome(orchard); + BiomeManager.addSpawnBiome(outback); + BiomeManager.addSpawnBiome(pasture); + BiomeManager.addSpawnBiome(prairie); + BiomeManager.addSpawnBiome(quagmire); + BiomeManager.addSpawnBiome(rainforest); + BiomeManager.addSpawnBiome(redwoodForest); + BiomeManager.addSpawnBiome(savanna); + BiomeManager.addSpawnBiome(scrubland); + BiomeManager.addSpawnBiome(seasonalForest); + BiomeManager.addSpawnBiome(shield); + BiomeManager.addSpawnBiome(shrubland); + BiomeManager.addSpawnBiome(snowyWoods); + BiomeManager.addSpawnBiome(spruceWoods); + BiomeManager.addSpawnBiome(swampwoods); + BiomeManager.addSpawnBiome(temperateRainforest); + BiomeManager.addSpawnBiome(thicket); + BiomeManager.addSpawnBiome(tropicalRainforest); + BiomeManager.addSpawnBiome(tropics); + BiomeManager.addSpawnBiome(tundra); + BiomeManager.addSpawnBiome(volcano); + BiomeManager.addSpawnBiome(wetland); + BiomeManager.addSpawnBiome(woodland); + BiomeManager.addSpawnBiome(plainsNew); + BiomeManager.addSpawnBiome(desertNew); + BiomeManager.addSpawnBiome(forestNew); + BiomeManager.addSpawnBiome(extremeHillsNew); + BiomeManager.addSpawnBiome(taigaNew); + BiomeManager.addSpawnBiome(swamplandNew); + BiomeManager.addSpawnBiome(jungleNew); + + //Village spawning + BiomeManager.addVillageBiome(arctic, true); + BiomeManager.addVillageBiome(bayou, true); + BiomeManager.addVillageBiome(birchForest, true); + BiomeManager.addVillageBiome(chaparral, true); + BiomeManager.addVillageBiome(coniferousForest, true); + BiomeManager.addVillageBiome(deadForest, true); + BiomeManager.addVillageBiome(field, true); + BiomeManager.addVillageBiome(frostForest, true); + BiomeManager.addVillageBiome(grassland, true); + BiomeManager.addVillageBiome(grove, true); + BiomeManager.addVillageBiome(heathland, true); + BiomeManager.addVillageBiome(lushSwamp, true); + BiomeManager.addVillageBiome(mapleWoods, true); + BiomeManager.addVillageBiome(orchard, true); + BiomeManager.addVillageBiome(prairie, true); + BiomeManager.addVillageBiome(redwoodForest, true); + BiomeManager.addVillageBiome(savanna, true); + BiomeManager.addVillageBiome(scrubland, true); + BiomeManager.addVillageBiome(shield, true); + BiomeManager.addVillageBiome(shrubland, true); + BiomeManager.addVillageBiome(snowyWoods, true); + BiomeManager.addVillageBiome(spruceWoods, true); + BiomeManager.addVillageBiome(tropicalRainforest, true); + BiomeManager.addVillageBiome(woodland, true); + BiomeManager.addVillageBiome(plainsNew, true); + BiomeManager.addVillageBiome(desertNew, true); + BiomeManager.addVillageBiome(forestNew, true); + BiomeManager.addVillageBiome(taigaNew, true); + BiomeManager.addVillageBiome(swamplandNew, true); + + //Stronghold spawning + BiomeManager.addStrongholdBiome(alps); + BiomeManager.addStrongholdBiome(arctic); + BiomeManager.addStrongholdBiome(badlands); + BiomeManager.addStrongholdBiome(bambooForest); + BiomeManager.addStrongholdBiome(bayou); + BiomeManager.addStrongholdBiome(birchForest); + BiomeManager.addStrongholdBiome(bog); + BiomeManager.addStrongholdBiome(borealForest); + BiomeManager.addStrongholdBiome(canyon); + BiomeManager.addStrongholdBiome(chaparral); + BiomeManager.addStrongholdBiome(cherryBlossomGrove); + BiomeManager.addStrongholdBiome(coniferousForest); + BiomeManager.addStrongholdBiome(crag); + BiomeManager.addStrongholdBiome(deadForest); + BiomeManager.addStrongholdBiome(deadSwamp); + BiomeManager.addStrongholdBiome(deadlands); + BiomeManager.addStrongholdBiome(deciduousForest); + BiomeManager.addStrongholdBiome(drylands); + BiomeManager.addStrongholdBiome(dunes); + BiomeManager.addStrongholdBiome(fen); + BiomeManager.addStrongholdBiome(field); + BiomeManager.addStrongholdBiome(frostForest); + BiomeManager.addStrongholdBiome(fungiForest); + BiomeManager.addStrongholdBiome(garden); + BiomeManager.addStrongholdBiome(glacier); + BiomeManager.addStrongholdBiome(grassland); + BiomeManager.addStrongholdBiome(grove); + BiomeManager.addStrongholdBiome(heathland); + BiomeManager.addStrongholdBiome(highland); + BiomeManager.addStrongholdBiome(iceSheet); + BiomeManager.addStrongholdBiome(icyHills); + BiomeManager.addStrongholdBiome(jadeCliffs); + BiomeManager.addStrongholdBiome(lushDesert); + BiomeManager.addStrongholdBiome(lushSwamp); + BiomeManager.addStrongholdBiome(mangrove); + BiomeManager.addStrongholdBiome(mapleWoods); + BiomeManager.addStrongholdBiome(marsh); + BiomeManager.addStrongholdBiome(meadow); + BiomeManager.addStrongholdBiome(mesa); + BiomeManager.addStrongholdBiome(moor); + BiomeManager.addStrongholdBiome(mountain); + BiomeManager.addStrongholdBiome(mysticGrove); + BiomeManager.addStrongholdBiome(oasis); + BiomeManager.addStrongholdBiome(ominousWoods); + BiomeManager.addStrongholdBiome(orchard); + BiomeManager.addStrongholdBiome(outback); + BiomeManager.addStrongholdBiome(pasture); + BiomeManager.addStrongholdBiome(prairie); + BiomeManager.addStrongholdBiome(quagmire); + BiomeManager.addStrongholdBiome(rainforest); + BiomeManager.addStrongholdBiome(redwoodForest); + BiomeManager.addStrongholdBiome(sacredSprings); + BiomeManager.addStrongholdBiome(savanna); + BiomeManager.addStrongholdBiome(scrubland); + BiomeManager.addStrongholdBiome(seasonalForest); + BiomeManager.addStrongholdBiome(shield); + BiomeManager.addStrongholdBiome(shrubland); + BiomeManager.addStrongholdBiome(snowyWoods); + BiomeManager.addStrongholdBiome(spruceWoods); + BiomeManager.addStrongholdBiome(steppe); + BiomeManager.addStrongholdBiome(swampwoods); + BiomeManager.addStrongholdBiome(temperateRainforest); + BiomeManager.addStrongholdBiome(thicket); + BiomeManager.addStrongholdBiome(tropicalRainforest); + BiomeManager.addStrongholdBiome(tropics); + BiomeManager.addStrongholdBiome(tundra); + BiomeManager.addStrongholdBiome(volcano); + BiomeManager.addStrongholdBiome(wasteland); + BiomeManager.addStrongholdBiome(wetland); + BiomeManager.addStrongholdBiome(woodland); + BiomeManager.addStrongholdBiome(plainsNew); + BiomeManager.addStrongholdBiome(desertNew); + BiomeManager.addStrongholdBiome(forestNew); + BiomeManager.addStrongholdBiome(extremeHillsNew); + BiomeManager.addStrongholdBiome(taigaNew); + BiomeManager.addStrongholdBiome(swamplandNew); + BiomeManager.addStrongholdBiome(jungleNew); + + if (addToDefault == true) + { + if (alpsGen == true) + { + GameRegistry.addBiome(alps); + } + if (arcticGen == true) + { + GameRegistry.addBiome(arctic); + } + if (badlandsGen == true) + { + GameRegistry.addBiome(badlands); + } + if (bambooForestGen == true) + { + GameRegistry.addBiome(bambooForest); + } + if (bayouGen == true) + { + GameRegistry.addBiome(bayou); + } + if (birchForestGen == true) + { + GameRegistry.addBiome(birchForest); + } + if (bogGen == true) + { + GameRegistry.addBiome(bog); + } + if (borealForestGen == true) + { + GameRegistry.addBiome(borealForest); + } + if (canyonGen == true) + { + GameRegistry.addBiome(canyon); + } + if (chaparralGen == true) + { + GameRegistry.addBiome(chaparral); + } + if (cherryBlossomGroveGen == true) + { + GameRegistry.addBiome(cherryBlossomGrove); + } + if (coniferousForestGen == true) + { + GameRegistry.addBiome(coniferousForest); + } + if (cragGen == true) + { + GameRegistry.addBiome(crag); + } + if (deadForestGen == true) + { + GameRegistry.addBiome(deadForest); + } + if (deadSwampGen == true) + { + GameRegistry.addBiome(deadSwamp); + } + if (deadlandsGen == true) + { + GameRegistry.addBiome(deadlands); + } + if (deciduousForestGen == true) + { + GameRegistry.addBiome(deciduousForest); + } + if (drylandsGen == true) + { + GameRegistry.addBiome(drylands); + } + if (dunesGen == true) + { + GameRegistry.addBiome(dunes); + } + if (fenGen == true) + { + GameRegistry.addBiome(fen); + } + if (fieldGen == true) + { + GameRegistry.addBiome(field); + } + if (frostForestGen == true) + { + GameRegistry.addBiome(frostForest); + } + if (fungiForestGen == true) + { + GameRegistry.addBiome(fungiForest); + } + if (gardenGen == true) + { + GameRegistry.addBiome(garden); + } + if (glacierGen == true) + { + GameRegistry.addBiome(glacier); + } + if (grasslandGen == true) + { + GameRegistry.addBiome(grassland); + } + if (groveGen == true) + { + GameRegistry.addBiome(grove); + } + if (heathlandGen == true) + { + GameRegistry.addBiome(heathland); + } + if (highlandGen == true) + { + GameRegistry.addBiome(highland); + } + if (iceSheetGen == true) + { + GameRegistry.addBiome(iceSheet); + } + if (icyHillsGen == true) + { + GameRegistry.addBiome(icyHills); + } + if (jadeCliffsGen == true) + { + GameRegistry.addBiome(jadeCliffs); + } + if (lushDesertGen == true) + { + GameRegistry.addBiome(lushDesert); + } + if (lushSwampGen == true) + { + GameRegistry.addBiome(lushSwamp); + } + if (mangroveGen == true) + { + GameRegistry.addBiome(mangrove); + } + if (mapleWoodsGen == true) + { + GameRegistry.addBiome(mapleWoods); + } + if (marshGen == true) + { + GameRegistry.addBiome(marsh); + } + if (meadowGen == true) + { + GameRegistry.addBiome(meadow); + } + if (mesaGen == true) + { + GameRegistry.addBiome(mesa); + } + if (moorGen == true) + { + GameRegistry.addBiome(moor); + } + if (mountainGen == true) + { + GameRegistry.addBiome(mountain); + } + if (mushroomIslandGen == true) + { + GameRegistry.addBiome(BiomeGenBase.mushroomIsland); + } + if (mysticGroveGen == true) + { + GameRegistry.addBiome(mysticGrove); + } + if (oasisGen == true) + { + GameRegistry.addBiome(oasis); + } + if (ominousWoodsGen == true) + { + GameRegistry.addBiome(ominousWoods); + } + if (orchardGen == true) + { + GameRegistry.addBiome(orchard); + } + if (originValleyGen == true) + { + GameRegistry.addBiome(originValley); + } + if (outbackGen == true) + { + GameRegistry.addBiome(outback); + } + if (pastureGen == true) + { + GameRegistry.addBiome(pasture); + } + if (prairieGen == true) + { + GameRegistry.addBiome(prairie); + } + if (quagmireGen == true) + { + GameRegistry.addBiome(quagmire); + } + if (rainforestGen == true) + { + GameRegistry.addBiome(rainforest); + } + if (redwoodForestGen == true) + { + GameRegistry.addBiome(redwoodForest); + } + if (sacredSpringsGen == true) + { + GameRegistry.addBiome(sacredSprings); + } + if (savannaGen == true) + { + GameRegistry.addBiome(savanna); + } + if (scrublandGen == true) + { + GameRegistry.addBiome(scrubland); + } + if (seasonalForestGen == true) + { + GameRegistry.addBiome(seasonalForest); + } + if (shieldGen == true) + { + GameRegistry.addBiome(shield); + } + if (shrublandGen == true) + { + GameRegistry.addBiome(shrubland); + } + if (snowyWoodsGen == true) + { + GameRegistry.addBiome(snowyWoods); + } + if (spruceWoodsGen == true) + { + GameRegistry.addBiome(spruceWoods); + } + if (steppeGen == true) + { + GameRegistry.addBiome(steppe); + } + if (swampwoodsGen == true) + { + GameRegistry.addBiome(swampwoods); + } + if (temperateRainforestGen == true) + { + GameRegistry.addBiome(temperateRainforest); + } + if (thicketGen == true) + { + GameRegistry.addBiome(thicket); + } + if (tropicalRainforestGen == true) + { + GameRegistry.addBiome(tropicalRainforest); + } + if (tropicsGen == true) + { + GameRegistry.addBiome(tropics); + } + if (tundraGen == true) + { + GameRegistry.addBiome(tundra); + } + if (volcanoGen == true) + { + GameRegistry.addBiome(volcano); + } + if (wastelandGen == true) + { + GameRegistry.addBiome(wasteland); + } + if (wetlandGen == true) + { + GameRegistry.addBiome(wetland); + } + if (woodlandGen == true) + { + GameRegistry.addBiome(woodland); + } + if (plainsGen == true) + { + if (vanillaEnhanced == true) + { + GameRegistry.addBiome(plainsNew); + GameRegistry.removeBiome(BiomeGenBase.plains); + } + } + if (desertGen == true) + { + if (vanillaEnhanced == true) + { + GameRegistry.addBiome(desertNew); + GameRegistry.removeBiome(BiomeGenBase.desert); + } + } + if (extremeHillsGen == true) + { + if (vanillaEnhanced == true) + { + GameRegistry.addBiome(extremeHillsNew); + GameRegistry.removeBiome(BiomeGenBase.extremeHills); + } + } + if (forestGen == true) + { + if (vanillaEnhanced == true) + { + GameRegistry.addBiome(forestNew); + GameRegistry.removeBiome(BiomeGenBase.forest); + } + } + if (taigaGen == true) + { + if (vanillaEnhanced == true) + { + GameRegistry.addBiome(taigaNew); + GameRegistry.removeBiome(BiomeGenBase.taiga); + } + } + if (swamplandGen == true) + { + if (vanillaEnhanced == true) + { + GameRegistry.addBiome(swamplandNew); + GameRegistry.removeBiome(BiomeGenBase.swampland); + } + } + if (jungleGen == true) + { + if (vanillaEnhanced == true) + { + GameRegistry.addBiome(jungleNew); + GameRegistry.removeBiome(BiomeGenBase.jungle); + } + } + } + + EntityRegistry.registerModEntity(EntityJungleSpider.class, "JungleSpider", jungleSpiderID, this, 80, 3, true); + LanguageRegistry.instance().addStringLocalization("entity.BiomesOPlenty.JungleSpider.name", "en_US", "Jungle Spider"); + EntityRegistry.addSpawn(EntityJungleSpider.class, 8, 1, 3, EnumCreatureType.monster, jungleNew, tropicalRainforest, oasis, tropics); + registerEntityEgg(EntityJungleSpider.class, 5147192, 11013646); + + EntityRegistry.registerModEntity(EntityRosester.class, "Rosester", rosesterID, this, 80, 3, true); + LanguageRegistry.instance().addStringLocalization("entity.BiomesOPlenty.Rosester.name", "en_US", "Rosester"); + EntityRegistry.addSpawn(EntityRosester.class, 10, 2, 4, EnumCreatureType.creature, garden); + registerEntityEgg(EntityRosester.class, 14831439, 16756224); + + DimensionManager.registerProviderType(promisedLandDim, WorldProviderPromised.class, false); + + DimensionManager.registerDimension(promisedLandDim, promisedLandDim); + + dungeon = ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST); + mineshaft = ChestGenHooks.getInfo(ChestGenHooks.MINESHAFT_CORRIDOR); + strongholdCorridor = ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_CORRIDOR); + strongholdCrossing = ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_CROSSING); + village = ChestGenHooks.getInfo(ChestGenHooks.VILLAGE_BLACKSMITH); + + dungeon.addItem(new WeightedRandomChestContent(new ItemStack(bopDisc), 1, 1, 2)); + dungeon.addItem(new WeightedRandomChestContent(new ItemStack(mossItem), 2, 8, 50)); + dungeon.addItem(new WeightedRandomChestContent(new ItemStack(Item.dyePowder, 1, 2), 4, 12, 75)); + + mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(ashes), 2, 8, 25)); + mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(thorn), 4, 6, 15)); + mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(mudBall), 2, 8, 10)); + mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(Item.dyePowder, 1, 3), 4, 12, 75)); + + strongholdCorridor.addItem(new WeightedRandomChestContent(new ItemStack(mossItem), 2, 8, 50)); + strongholdCorridor.addItem(new WeightedRandomChestContent(new ItemStack(glowFlower), 1, 4, 25)); + strongholdCorridor.addItem(new WeightedRandomChestContent(new ItemStack(deathbloom), 1, 4, 25)); + + strongholdCrossing.addItem(new WeightedRandomChestContent(new ItemStack(mossItem), 2, 8, 50)); + strongholdCrossing.addItem(new WeightedRandomChestContent(new ItemStack(glowFlower), 1, 4, 25)); + strongholdCrossing.addItem(new WeightedRandomChestContent(new ItemStack(deathbloom), 1, 4, 25)); + + village.addItem(new WeightedRandomChestContent(new ItemStack(barleyItem), 4, 10, 75)); + village.addItem(new WeightedRandomChestContent(new ItemStack(shroomPowder), 1, 5, 50)); + village.addItem(new WeightedRandomChestContent(new ItemStack(thorn), 2, 6, 25)); + village.addItem(new WeightedRandomChestContent(new ItemStack(Item.dyePowder, 1, 2), 4, 12, 75)); + village.addItem(new WeightedRandomChestContent(new ItemStack(Item.dyePowder, 1, 3), 4, 12, 75)); + } + + //Find the first available egg ID after our egg ID counter + public static int getUniqueEntityEggId() { + do { + eggIdCounter++; + } while (EntityList.getStringFromID(eggIdCounter) != null); + + return eggIdCounter; + } + + public static void registerEntityEgg(Class entity, int primaryColor, int secondaryColor) { + int id = getUniqueEntityEggId(); + EntityList.IDtoClassMapping.put(id, entity); + EntityList.entityEggs.put(id, new EntityEggInfo(id, primaryColor, + secondaryColor)); + } + + //Eggs + public static int eggIdCounter = 300; + + // Block declaration + public static Block mud; + public static Block driedDirt; + public static Block redRock; + public static Block ash; + public static Block deadGrass; + public static Block desertGrass; + public static Block whiteFlower; + public static Block blueFlower; + public static Block purpleFlower; + public static Block orangeFlower; + public static Block tinyFlower; + public static Block glowFlower; + public static Block cattail; + public static Block willow; + public static Block autumnLeaves; + public static Block thorn; + public static Block toadstool; + public static BlockHighGrassBottom highGrassBottom; + public static BlockHighGrassTop highGrassTop; + public static Block ashStone; + public static Block hardIce; + public static Block redLeaves; + public static Block orangeLeaves; + public static Block pinkLeaves; + public static Block blueLeaves; + public static Block whiteLeaves; + public static Block deadLeaves; + public static BlockShortGrass shortGrass; + public static Block appleLeaves; + public static BlockSprout sprout; + public static BlockBush bush; + public static Block bamboo; + public static Block bambooLeaves; + public static Block mudBrickBlock; + public static BlockHalfSlab mudBrickDoubleSlab; + public static BlockHalfSlab mudBrickSingleSlab; + public static Block mudBrickStairs; + public static Block originGrass; + public static Block originLeaves; + public static Block pinkFlower; + public static Block treeMoss; + public static Block deadWood; + public static Block appleLeavesFruitless; + public static Block barley; + public static Block giantFlowerStem; + public static Block giantFlowerRed; + public static Block giantFlowerYellow; + public static Block tinyCactus; + public static Block firSapling; + public static Block redwoodSapling; + public static Block palmSapling; + public static Block redSapling; + public static Block orangeSapling; + public static Block yellowSapling; + public static Block brownSapling; + public static Block willowSapling; + public static Block appleSapling; + public static Block originSapling; + public static Block pinkSapling; + public static Block whiteSapling; + public static Block darkSapling; + public static Block magicSapling; + public static Block deathbloom; + public static Block redRockCobble; + public static BlockHalfSlab redRockCobbleDoubleSlab; + public static BlockHalfSlab redRockCobbleSingleSlab; + public static Block redRockCobbleStairs; + public static Block redRockBrick; + public static BlockHalfSlab redRockBrickDoubleSlab; + public static BlockHalfSlab redRockBrickSingleSlab; + public static Block redRockBrickStairs; + public static Block hydrangea; + public static Block violet; + public static BlockMediumGrass mediumGrass; + public static Block duneGrass; + public static Block desertSprouts; + public static Block mangroveSapling; + public static Block hardSand; + public static Block acaciaSapling; + public static Block hardDirt; + public static Block holyGrass; + public static Block holyStone; + public static Block holyTallGrass; + public static Block promisedPortal; + public static Block holySapling; + public static Block amethystOre; + public static Block amethystBlock; + public static Block bambooThatching; + public static Block moss; + public static Block algae; + public static Block smolderingGrass; + public static Block cragRock; + public static Block quicksand; + + //Redwood + public static Block redwoodPlank; + public static Block redwoodWood; + public static Block redwoodLeaves; + public static BlockHalfSlab redwoodDoubleSlab; + public static BlockHalfSlab redwoodSingleSlab; + public static Block redwoodStairs; + + //Willow + public static Block willowPlank; + public static Block willowWood; + public static Block willowLeaves; + public static BlockHalfSlab willowDoubleSlab; + public static BlockHalfSlab willowSingleSlab; + public static Block willowStairs; + + //Fir + public static Block firPlank; + public static Block firWood; + public static Block firLeaves; + public static BlockHalfSlab firDoubleSlab; + public static BlockHalfSlab firSingleSlab; + public static Block firStairs; + + //Acacia + public static Block acaciaPlank; + public static Block acaciaWood; + public static Block acaciaLeaves; + public static BlockHalfSlab acaciaDoubleSlab; + public static BlockHalfSlab acaciaSingleSlab; + public static Block acaciaStairs; + + //Cherry + public static Block cherryPlank; + public static Block cherryWood; + public static BlockHalfSlab cherryDoubleSlab; + public static BlockHalfSlab cherrySingleSlab; + public static Block cherryStairs; + + //Dark + public static Block darkPlank; + public static Block darkWood; + public static Block darkLeaves; + public static BlockHalfSlab darkDoubleSlab; + public static BlockHalfSlab darkSingleSlab; + public static Block darkStairs; + + //Magic + public static Block magicPlank; + public static Block magicWood; + public static BlockHalfSlab magicDoubleSlab; + public static BlockHalfSlab magicSingleSlab; + public static Block magicStairs; + + //Palm + public static Block palmPlank; + public static Block palmWood; + public static Block palmLeaves; + public static BlockHalfSlab palmDoubleSlab; + public static BlockHalfSlab palmSingleSlab; + public static Block palmStairs; + + //Mangrove + public static Block mangrovePlank; + public static Block mangroveWood; + public static Block mangroveLeaves; + public static BlockHalfSlab mangroveDoubleSlab; + public static BlockHalfSlab mangroveSingleSlab; + public static Block mangroveStairs; + + //Holy + public static Block holyPlank; + public static Block holyWood; + public static Block holyLeaves; + public static BlockHalfSlab holyDoubleSlab; + public static BlockHalfSlab holySingleSlab; + public static Block holyStairs; + + // Material declaration + public static EnumArmorMaterial EnumArmorMaterialMud; + public static EnumToolMaterial EnumToolMaterialMud; + public static EnumArmorMaterial EnumArmorMaterialAmethyst; + public static EnumToolMaterial EnumToolMaterialAmethyst; + + public static AchievementPage pageBOP; + + // Item declaration + public static Item shroomPowder; + public static Item mudBall; + public static Item mudBrick; + public static Item cattailItem; + public static Item barleyItem; + public static Item shortGrassItem; + public static Item mediumGrassItem; + public static Item bushItem; + public static Item sproutItem; + public static Item mossItem; + public static Item ashes; + public static Item bambooItem; + public static Item ancientStaff; + public static Item ancientStaffHandle; + public static Item ancientStaffPole; + public static Item ancientStaffTopper; + public static Item enderporter; + public static Item amethyst; + public static Item bopDisc; + public static Item bopDiscMud; + + public static Item swordMud; + public static Item shovelMud; + public static Item pickaxeMud; + public static Item axeMud; + public static Item hoeMud; + public static Item helmetMud; + public static Item chestplateMud; + public static Item leggingsMud; + public static Item bootsMud; + + public static Item swordAmethyst; + public static Item shovelAmethyst; + public static Item pickaxeAmethyst; + public static Item axeAmethyst; + public static Item hoeAmethyst; + public static Item helmetAmethyst; + public static Item chestplateAmethyst; + public static Item leggingsAmethyst; + public static Item bootsAmethyst; + + // Achievement declaration + public static Achievement achFlower; + public static Achievement achRedRock; + public static Achievement achThorn; + public static Achievement achAsh; + public static Achievement achOrigin; + public static Achievement achPromised; + public static Achievement achMud; + public static Achievement achShroom; + public static Achievement achBarley; + public static Achievement achMoss; + + // Biome declaration + public static BiomeGenBase alps; + public static BiomeGenBase arctic; + public static BiomeGenBase badlands; + public static BiomeGenBase bambooForest; + public static BiomeGenBase bayou; + public static BiomeGenBase birchForest; + public static BiomeGenBase bog; + public static BiomeGenBase borealForest; + public static BiomeGenBase canyon; + public static BiomeGenBase chaparral; + public static BiomeGenBase cherryBlossomGrove; + public static BiomeGenBase coniferousForest; + public static BiomeGenBase crag; + public static BiomeGenBase deadForest; + public static BiomeGenBase deadSwamp; + public static BiomeGenBase deadlands; + public static BiomeGenBase deciduousForest; + public static BiomeGenBase drylands; + public static BiomeGenBase dunes; + public static BiomeGenBase fen; + public static BiomeGenBase field; + public static BiomeGenBase frostForest; + public static BiomeGenBase fungiForest; + public static BiomeGenBase garden; + public static BiomeGenBase glacier; + public static BiomeGenBase grassland; + public static BiomeGenBase grove; + public static BiomeGenBase heathland; + public static BiomeGenBase highland; + public static BiomeGenBase iceSheet; + public static BiomeGenBase icyHills; + public static BiomeGenBase jadeCliffs; + public static BiomeGenBase lushDesert; + public static BiomeGenBase lushSwamp; + public static BiomeGenBase mangrove; + public static BiomeGenBase mapleWoods; + public static BiomeGenBase marsh; + public static BiomeGenBase meadow; + public static BiomeGenBase mesa; + public static BiomeGenBase moor; + public static BiomeGenBase mountain; + public static BiomeGenBase mysticGrove; + public static BiomeGenBase oasis; + public static BiomeGenBase ominousWoods; + public static BiomeGenBase orchard; + public static BiomeGenBase originValley; + public static BiomeGenBase outback; + public static BiomeGenBase pasture; + public static BiomeGenBase prairie; + public static BiomeGenBase promisedLand; + public static BiomeGenBase quagmire; + public static BiomeGenBase rainforest; + public static BiomeGenBase redwoodForest; + public static BiomeGenBase sacredSprings; + public static BiomeGenBase savanna; + public static BiomeGenBase scrubland; + public static BiomeGenBase seasonalForest; + public static BiomeGenBase shield; + public static BiomeGenBase shore; + public static BiomeGenBase shrubland; + public static BiomeGenBase snowyWoods; + public static BiomeGenBase spruceWoods; + public static BiomeGenBase steppe; + public static BiomeGenBase swampwoods; + public static BiomeGenBase temperateRainforest; + public static BiomeGenBase thicket; + public static BiomeGenBase tropicalRainforest; + public static BiomeGenBase tropics; + public static BiomeGenBase tundra; + public static BiomeGenBase volcano; + public static BiomeGenBase wasteland; + public static BiomeGenBase wetland; + public static BiomeGenBase woodland; + public static BiomeGenBase plainsNew; + public static BiomeGenBase desertNew; + public static BiomeGenBase extremeHillsNew; + public static BiomeGenBase forestNew; + public static BiomeGenBase taigaNew; + public static BiomeGenBase swamplandNew; + public static BiomeGenBase jungleNew; + + public static CreativeTabs tabBiomesOPlenty; + + public static ChestGenHooks dungeon; + public static ChestGenHooks mineshaft; + public static ChestGenHooks strongholdCorridor; + public static ChestGenHooks strongholdCrossing; + public static ChestGenHooks village; + + // Configuration variables + private Configuration config; + public static boolean skyColors; + public static int biomeSize; + public static boolean addToDefault; + public static boolean vanillaEnhanced; + public static int promisedLandDimID; + + public static boolean alpsGen; + public static boolean arcticGen; + public static boolean badlandsGen; + public static boolean bambooForestGen; + public static boolean bayouGen; + public static boolean birchForestGen; + public static boolean bogGen; + public static boolean borealForestGen; + public static boolean canyonGen; + public static boolean chaparralGen; + public static boolean cherryBlossomGroveGen; + public static boolean coniferousForestGen; + public static boolean cragGen; + public static boolean deadForestGen; + public static boolean deadSwampGen; + public static boolean deadlandsGen; + public static boolean deciduousForestGen; + public static boolean drylandsGen; + public static boolean dunesGen; + public static boolean fenGen; + public static boolean fieldGen; + public static boolean frostForestGen; + public static boolean fungiForestGen; + public static boolean gardenGen; + public static boolean glacierGen; + public static boolean grasslandGen; + public static boolean groveGen; + public static boolean heathlandGen; + public static boolean highlandGen; + public static boolean iceSheetGen; + public static boolean icyHillsGen; + public static boolean jadeCliffsGen; + public static boolean lushDesertGen; + public static boolean lushSwampGen; + public static boolean mangroveGen; + public static boolean mapleWoodsGen; + public static boolean marshGen; + public static boolean meadowGen; + public static boolean mesaGen; + public static boolean moorGen; + public static boolean mountainGen; + public static boolean mushroomIslandGen; + public static boolean mysticGroveGen; + public static boolean oasisGen; + public static boolean ominousWoodsGen; + public static boolean orchardGen; + public static boolean originValleyGen; + public static boolean outbackGen; + public static boolean pastureGen; + public static boolean prairieGen; + public static boolean quagmireGen; + public static boolean rainforestGen; + public static boolean redwoodForestGen; + public static boolean sacredSpringsGen; + public static boolean savannaGen; + public static boolean scrublandGen; + public static boolean seasonalForestGen; + public static boolean shieldGen; + public static boolean shrublandGen; + public static boolean snowyWoodsGen; + public static boolean spruceWoodsGen; + public static boolean steppeGen; + public static boolean swampwoodsGen; + public static boolean temperateRainforestGen; + public static boolean thicketGen; + public static boolean tropicalRainforestGen; + public static boolean tropicsGen; + public static boolean tundraGen; + public static boolean volcanoGen; + public static boolean wastelandGen; + public static boolean wetlandGen; + public static boolean woodlandGen; + + public static boolean plainsGen; + public static boolean desertGen; + public static boolean extremeHillsGen; + public static boolean forestGen; + public static boolean taigaGen; + public static boolean swamplandGen; + public static boolean jungleGen; + + public static WTBiomesOP WTBiomesOP; + + private int mudID; + private int driedDirtID; + private int redRockID; + private int ashID; + private int deadGrassID; + private int desertGrassID; + private int whiteFlowerID; + private int blueFlowerID; + private int purpleFlowerID; + private int orangeFlowerID; + private int tinyFlowerID; + private int glowFlowerID; + private int cattailID; + private int willowID; + private int autumnLeavesID; + private int thornID; + private int toadstoolID; + private int highGrassBottomID; + private int highGrassTopID; + private int ashStoneID; + private int hardIceID; + private int redLeavesID; + private int orangeLeavesID; + private int pinkLeavesID; + private int blueLeavesID; + private int whiteLeavesID; + private int deadLeavesID; + private int shortGrassID; + private int appleLeavesID; + private int sproutID; + private int bushID; + private int bambooID; + private int bambooLeavesID; + private int mudBrickBlockID; + private int mudBrickDoubleSlabID; + private int mudBrickSingleSlabID; + private int mudBrickStairsID; + private int originGrassID; + private int originLeavesID; + private int pinkFlowerID; + private int treeMossID; + private int deadWoodID; + private int appleLeavesFruitlessID; + private int barleyID; + private int giantFlowerStemID; + private int giantFlowerRedID; + private int giantFlowerYellowID; + private int tinyCactusID; + private int firSaplingID; + private int redwoodSaplingID; + private int palmSaplingID; + private int redSaplingID; + private int orangeSaplingID; + private int yellowSaplingID; + private int brownSaplingID; + private int willowSaplingID; + private int appleSaplingID; + private int originSaplingID; + private int pinkSaplingID; + private int whiteSaplingID; + private int darkSaplingID; + private int magicSaplingID; + private int deathbloomID; + private int redRockCobbleID; + private int redRockCobbleDoubleSlabID; + private int redRockCobbleSingleSlabID; + private int redRockCobbleStairsID; + private int redRockBrickID; + private int redRockBrickDoubleSlabID; + private int redRockBrickSingleSlabID; + private int redRockBrickStairsID; + private int hydrangeaID; + private int violetID; + private int mediumGrassID; + private int duneGrassID; + private int desertSproutsID; + private int mangroveSaplingID; + private int hardSandID; + private int acaciaSaplingID; + private int hardDirtID; + private int holyGrassID; + private int holyStoneID; + private int holyTallGrassID; + private int promisedLandPortalID; + private int holySaplingID; + private int amethystOreID; + private int amethystBlockID; + private int bambooThatchingID; + private int mossID; + private int algaeID; + private int smolderingGrassID; + private int cragRockID; + private int quicksandID; + + //Redwood + private int redwoodPlankID; + private int redwoodWoodID; + private int redwoodLeavesID; + private int redwoodDoubleSlabID; + private int redwoodSingleSlabID; + private int redwoodStairsID; + + //Willow + private int willowPlankID; + private int willowWoodID; + private int willowLeavesID; + private int willowDoubleSlabID; + private int willowSingleSlabID; + private int willowStairsID; + + //Fir + private int firPlankID; + private int firWoodID; + private int firLeavesID; + private int firDoubleSlabID; + private int firSingleSlabID; + private int firStairsID; + + //Acacia + private int acaciaPlankID; + private int acaciaWoodID; + private int acaciaLeavesID; + private int acaciaDoubleSlabID; + private int acaciaSingleSlabID; + private int acaciaStairsID; + + //Cherry + private int cherryPlankID; + private int cherryWoodID; + private int cherryDoubleSlabID; + private int cherrySingleSlabID; + private int cherryStairsID; + + //Dark + private int darkPlankID; + private int darkWoodID; + private int darkLeavesID; + private int darkDoubleSlabID; + private int darkSingleSlabID; + private int darkStairsID; + + //Magic + private int magicPlankID; + private int magicWoodID; + private int magicDoubleSlabID; + private int magicSingleSlabID; + private int magicStairsID; + + //Palm + private int palmPlankID; + private int palmWoodID; + private int palmLeavesID; + private int palmDoubleSlabID; + private int palmSingleSlabID; + private int palmStairsID; + + //Mangrove + private int mangrovePlankID; + private int mangroveWoodID; + private int mangroveLeavesID; + private int mangroveDoubleSlabID; + private int mangroveSingleSlabID; + private int mangroveStairsID; + + //Holy + private int holyPlankID; + private int holyWoodID; + private int holyLeavesID; + private int holyDoubleSlabID; + private int holySingleSlabID; + private int holyStairsID; + + private int shroomPowderID; + private int mudBallID; + private int mudBrickID; + private int cattailItemID; + private int bambooItemID; + private int barleyItemID; + private int shortGrassItemID; + private int mediumGrassItemID; + private int bushItemID; + private int sproutItemID; + private int mossItemID; + private int ashesID; + private int ancientStaffID; + private int ancientStaffHandleID; + private int ancientStaffPoleID; + private int ancientStaffTopperID; + private int enderporterID; + private int bopDiscID; + private int bopDiscMudID; + private int swordMudID; + private int shovelMudID; + private int pickaxeMudID; + private int axeMudID; + private int hoeMudID; + private int helmetMudID; + private int chestplateMudID; + private int leggingsMudID; + private int bootsMudID; + private int amethystID; + private int swordAmethystID; + private int shovelAmethystID; + private int pickaxeAmethystID; + private int axeAmethystID; + private int hoeAmethystID; + private int helmetAmethystID; + private int chestplateAmethystID; + private int leggingsAmethystID; + private int bootsAmethystID; + + private int alpsID; + private int arcticID; + private int arcticForestID; + private int badlandsID; + private int bambooForestID; + private int bayouID; + private int birchForestID; + private int bogID; + private int borealForestID; + private int canyonID; + private int chaparralID; + private int cherryBlossomGroveID; + private int coniferousForestID; + private int coniferousForestThinID; + private int cragID; + private int deadForestID; + private int deadSwampID; + private int deadlandsID; + private int deciduousForestID; + private int drylandsID; + private int dunesID; + private int fenID; + private int fieldID; + private int frostForestID; + private int fungiForestID; + private int gardenID; + private int glacierID; + private int grasslandID; + private int groveID; + private int groveThinID; + private int heathlandID; + private int highlandID; + private int iceSheetID; + private int icyHillsID; + private int jadeCliffsID; + private int lushDesertID; + private int lushSwampID; + private int mangroveID; + private int mapleWoodsID; + private int marshID; + private int meadowID; + private int meadowForestID; + private int mesaID; + private int moorID; + private int mountainID; + private int mysticGroveID; + private int oasisID; + private int ominousWoodsID; + private int orchardID; + private int originValleyID; + private int outbackID; + private int pastureID; + private int prairieID; + private int promisedLandID; + private int promisedLandHillsID; + private int promisedLandPlainsID; + private int promisedLandSwampID; + private int quagmireID; + private int rainforestID; + private int redwoodForestID; + private int reefID; + private int sacredSpringsID; + private int savannaID; + private int savannaThickID; + private int scrublandID; + private int seasonalForestID; + private int shieldID; + private int shoreID; + private int shrublandID; + private int snowyWoodsID; + private int spruceWoodsID; + private int steppeID; + private int swampwoodsID; + private int temperateRainforestID; + private int thicketID; + private int tropicalRainforestID; + private int tropicsID; + private int tundraID; + private int tundraDryID; + private int volcanoID; + private int wastelandID; + private int wastelandTreesID; + private int wetlandID; + private int woodlandID; + private int plainsNewID; + private int desertNewID; + private int desertHillsNewID; + private int extremeHillsNewID; + private int extremeHillsEdgeNewID; + private int forestNewID; + private int forestHillsNewID; + private int taigaNewID; + private int taigaHillsNewID; + private int swamplandNewID; + private int jungleNewID; + private int jungleHillsNewID; + + private int jungleSpiderID; + private int rosesterID; + + // Add Fuel rates + public static int addFuel(int par1, int par2) + { + if(par1 == redwoodPlank.blockID) + { + return 300; + } + if(par1 == redwoodWood.blockID) + { + return 300; + } + if(par1 == redwoodSapling.blockID) + { + return 100; + } + if(par1 == redwoodSingleSlab.blockID) + { + return 150; + } + if(par1 == redwoodStairs.blockID) + { + return 300; + } + if(par1 == willowPlank.blockID) + { + return 300; + } + if(par1 == willowWood.blockID) + { + return 300; + } + if(par1 == willowSapling.blockID) + { + return 100; + } + if(par1 == willowSingleSlab.blockID) + { + return 150; + } + if(par1 == willowStairs.blockID) + { + return 300; + } + if(par1 == firPlank.blockID) + { + return 300; + } + if(par1 == firWood.blockID) + { + return 300; + } + if(par1 == firSapling.blockID) + { + return 100; + } + if(par1 == firSingleSlab.blockID) + { + return 150; + } + if(par1 == firStairs.blockID) + { + return 300; + } + if(par1 == acaciaPlank.blockID) + { + return 300; + } + if(par1 == acaciaWood.blockID) + { + return 300; + } + if(par1 == acaciaSapling.blockID) + { + return 100; + } + if(par1 == acaciaSingleSlab.blockID) + { + return 150; + } + if(par1 == acaciaStairs.blockID) + { + return 300; + } + if(par1 == cherryPlank.blockID) + { + return 300; + } + if(par1 == pinkSapling.blockID) + { + return 100; + } + if(par1 == whiteSapling.blockID) + { + return 100; + } + if(par1 == orangeSapling.blockID) + { + return 100; + } + if(par1 == yellowSapling.blockID) + { + return 100; + } + if(par1 == redSapling.blockID) + { + return 100; + } + if(par1 == brownSapling.blockID) + { + return 100; + } + if(par1 == appleSapling.blockID) + { + return 100; + } + if(par1 == originSapling.blockID) + { + return 100; + } + if(par1 == cherryWood.blockID) + { + return 300; + } + if(par1 == cherrySingleSlab.blockID) + { + return 150; + } + if(par1 == cherryStairs.blockID) + { + return 300; + } + if(par1 == darkPlank.blockID) + { + return 300; + } + if(par1 == darkWood.blockID) + { + return 300; + } + if(par1 == darkSapling.blockID) + { + return 100; + } + if(par1 == darkSingleSlab.blockID) + { + return 150; + } + if(par1 == darkStairs.blockID) + { + return 300; + } + if(par1 == magicPlank.blockID) + { + return 300; + } + if(par1 == magicWood.blockID) + { + return 300; + } + if(par1 == magicSapling.blockID) + { + return 100; + } + if(par1 == magicSingleSlab.blockID) + { + return 150; + } + if(par1 == magicStairs.blockID) + { + return 300; + } + if(par1 == palmPlank.blockID) + { + return 300; + } + if(par1 == palmWood.blockID) + { + return 300; + } + if(par1 == palmSapling.blockID) + { + return 100; + } + if(par1 == palmSingleSlab.blockID) + { + return 150; + } + if(par1 == palmStairs.blockID) + { + return 300; + } + if(par1 == mangrovePlank.blockID) + { + return 300; + } + if(par1 == mangroveWood.blockID) + { + return 300; + } + if(par1 == mangroveSapling.blockID) + { + return 100; + } + if(par1 == mangroveSingleSlab.blockID) + { + return 150; + } + if(par1 == mangroveStairs.blockID) + { + return 300; + } + if(par1 == holyPlank.blockID) + { + return 300; + } + if(par1 == holyWood.blockID) + { + return 300; + } + if(par1 == holySapling.blockID) + { + return 100; + } + if(par1 == holySingleSlab.blockID) + { + return 150; + } + if(par1 == holyStairs.blockID) + { + return 300; + } + if(par1 == ashes.itemID) + { + return 400; + } + + return 0; + } + + // Achievement checker + public static void onItemPickup(EntityPlayer player, ItemStack item) + { + if (item.itemID == glowFlower.blockID || item.itemID == orangeFlower.blockID || item.itemID == blueFlower.blockID || item.itemID == purpleFlower.blockID || item.itemID == pinkFlower.blockID || item.itemID == whiteFlower.blockID || item.itemID == tinyFlower.blockID || item.itemID == deathbloom.blockID || item.itemID == hydrangea.blockID || item.itemID == violet.blockID || item.itemID == Block.plantRed.blockID || item.itemID == Block.plantYellow.blockID) + { + player.addStat(achFlower, 1); + } + if (item.itemID == redRockCobble.blockID) + { + player.addStat(achRedRock, 1); + } + if (item.itemID == thorn.blockID) + { + player.addStat(achThorn, 1); + } + if (item.itemID == ashes.itemID) + { + player.addStat(achAsh, 1); + } + if (item.itemID == originGrass.blockID) + { + player.addStat(achOrigin, 1); + } + if (item.itemID == holyGrass.blockID || item.itemID == holyStone.blockID) + { + player.addStat(achPromised, 1); + } + if (item.itemID == mudBall.itemID) + { + player.addStat(achMud, 1); + } + if (item.itemID == toadstool.blockID) + { + player.addStat(achShroom, 1); + } + if (item.itemID == barleyItem.itemID) + { + player.addStat(achBarley, 1); + } + if (item.itemID == mossItem.itemID) + { + player.addStat(achMoss, 1); + } + } + + public static void addAchievementDesc(String ach, String name, String desc) + { + LanguageRegistry.instance().addStringLocalization("achievement." + ach, "en_US", name); + LanguageRegistry.instance().addStringLocalization("achievement." + ach + ".desc", "en_US", desc); + } + + public static int getLastBiomeID() + { + int x; + for(x = 255; x >= 0; x--) { + if (BiomeGenBase.biomeList[x] == null) + { + break; + } + } + return x; + } +} \ No newline at end of file diff --git a/src/minecraft/tdwp_ftw/biomesop/res/armor/amethyst_1.png b/src/minecraft/tdwp_ftw/biomesop/res/armor/amethyst_1.png new file mode 100644 index 000000000..5a242b3aa Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/armor/amethyst_1.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/res/armor/amethyst_2.png b/src/minecraft/tdwp_ftw/biomesop/res/armor/amethyst_2.png new file mode 100644 index 000000000..094f988c3 Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/armor/amethyst_2.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/res/armor/mud_1.png b/src/minecraft/tdwp_ftw/biomesop/res/armor/mud_1.png new file mode 100644 index 000000000..416910f82 Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/armor/mud_1.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/res/armor/mud_2.png b/src/minecraft/tdwp_ftw/biomesop/res/armor/mud_2.png new file mode 100644 index 000000000..92b9f39fb Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/armor/mud_2.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/res/block.png b/src/minecraft/tdwp_ftw/biomesop/res/block.png new file mode 100644 index 000000000..28a6a3581 Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/block.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/res/items.png b/src/minecraft/tdwp_ftw/biomesop/res/items.png new file mode 100644 index 000000000..424cb1a56 Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/items.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/res/mobs/junglespider.png b/src/minecraft/tdwp_ftw/biomesop/res/mobs/junglespider.png new file mode 100644 index 000000000..b563b2809 Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/mobs/junglespider.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/res/mobs/rosester.png b/src/minecraft/tdwp_ftw/biomesop/res/mobs/rosester.png new file mode 100644 index 000000000..ce8dc3433 Binary files /dev/null and b/src/minecraft/tdwp_ftw/biomesop/res/mobs/rosester.png differ diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAcacia.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAcacia.java new file mode 100644 index 000000000..abde7a444 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAcacia.java @@ -0,0 +1,230 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAcacia extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenAcacia(boolean par1) + { + this(par1, 4, 0, 0, false); + } + + public WorldGenAcacia(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(6) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.acaciaLeaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != mod_BiomesOPlenty.acaciaWood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 2; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, mod_BiomesOPlenty.acaciaLeaves.blockID, 0); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == mod_BiomesOPlenty.acaciaLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, mod_BiomesOPlenty.acaciaWood.blockID, 0); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == mod_BiomesOPlenty.acaciaLeaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlaskanCedar1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlaskanCedar1.java new file mode 100644 index 000000000..7cd9e84c7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlaskanCedar1.java @@ -0,0 +1,704 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAlaskanCedar1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 12, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 12, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 13, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 13, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 1, Block.wood.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 17, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 17, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 20, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 20, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 21, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 21, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 23, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 23, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 22, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 29, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 31, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 1, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 5, Block.wood.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 34, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 34, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 35, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 5, Block.wood.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 34, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 1, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 1, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 3, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlaskanCedar2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlaskanCedar2.java new file mode 100644 index 000000000..e9f6e2708 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlaskanCedar2.java @@ -0,0 +1,281 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAlaskanCedar2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 4) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 4); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 4) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 4)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 1, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlder1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlder1.java new file mode 100644 index 000000000..0f2f68637 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlder1.java @@ -0,0 +1,908 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAlder1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 10, var4, var5 + 10) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 10, var4, var5 + 10); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 10, var4 - 1, var5 + var8 + 10) && var1.isAirBlock(var3 + var7 + 10, var4 - 2, var5 + var8 + 10)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 16, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 23, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 20, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 22, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 21, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 22, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 20, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 21, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 23, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 22, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 25, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 18, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 19, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 25, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 23, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 22, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 17, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 22, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 25, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 21, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 21, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 24, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 21, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 22, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 21, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 22, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 23, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 24, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 23, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 24, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 24, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 22, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 7, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 9, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 7, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 8, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlder2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlder2.java new file mode 100644 index 000000000..c7e643b90 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlder2.java @@ -0,0 +1,334 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAlder2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 6, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 6, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 6, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 6, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 6, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlgae.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlgae.java new file mode 100644 index 000000000..c35d07055 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlgae.java @@ -0,0 +1,27 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAlgae extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + for (int var6 = 0; var6 < 80; ++var6) + { + int var7 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var9 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var7, var8, var9) && mod_BiomesOPlenty.algae.canPlaceBlockAt(par1World, var7, var8, var9)) + { + par1World.setBlockAndMetadata(var7, var8, var9, mod_BiomesOPlenty.algae.blockID, 0); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlpsSpruce.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlpsSpruce.java new file mode 100644 index 000000000..947b05b82 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAlpsSpruce.java @@ -0,0 +1,293 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAlpsSpruce extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 8, var4, var5 + 6) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 8, var4, var5 + 6); + + if (var6 != Block.stone.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 8, var4 - 1, var5 + var8 + 6) && var1.isAirBlock(var3 + var7 + 8, var4 - 2, var5 + var8 + 6)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 1, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 8, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenApple.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenApple.java new file mode 100644 index 000000000..b059699e0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenApple.java @@ -0,0 +1,132 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenApple extends WorldGenerator +{ + public WorldGenApple(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + 5; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var10; + int var11; + int var12; + int var99; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.appleLeaves.blockID && var12 != mod_BiomesOPlenty.appleLeavesFruitless.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 1 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + int var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + var99 = par2Random.nextInt(6); + + if (var99 == 0) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.appleLeaves.blockID, 0); + } + else + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 0); + } + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.appleLeaves.blockID || var10 == mod_BiomesOPlenty.appleLeavesFruitless.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAppleTree1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAppleTree1.java new file mode 100644 index 000000000..36b3fc21f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAppleTree1.java @@ -0,0 +1,1111 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAppleTree1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 12, var4, var5 + 16) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 12, var4, var5 + 16); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 12, var4 - 1, var5 + var8 + 16) && var1.isAirBlock(var3 + var7 + 12, var4 - 2, var5 + var8 + 16)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 12, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 16, var5 + 6, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 6, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 20, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 25, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 20, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 23, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 20, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 18, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 27, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 14, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 18, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 18, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 20, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 0, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 23, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 24, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 25, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 23, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 26, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 0, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 18, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 24, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 26, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 0, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 23, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 18, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 23, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 21, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 20, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 17, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 18, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 19, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 27, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 20, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 21, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 27, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 28, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 24, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 26, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 17, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 17, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 18, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 19, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 20, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 0, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 18, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 19, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 20, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 21, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 21, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 27, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 20, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 20, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 24, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 28, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 23, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 23, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 25, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 21, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 20, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 21, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 24, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 24, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 22, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 23, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 24, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 28, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 23, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 24, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 21, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 22, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 9, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 9, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 24, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 25, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 26, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 28, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 23, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 28, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 27, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 22, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 26, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 0, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 24, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 28, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 18, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 19, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 23, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 20, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 21, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 28, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 14, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 14, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 18, var4 + 14, var5 + 28, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 0, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 16, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 16, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 16, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 16, var5 + 19, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 19, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 19, var5 + 25, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 22, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 7, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 8, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 8, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 9, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 9, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 10, var5 + 0, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 10, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 10, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 11, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 11, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 11, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 11, var5 + 22, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 11, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 12, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 12, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 12, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 12, var5 + 26, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 13, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 13, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 13, var5 + 20, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 14, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 14, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 15, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 15, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 15, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 15, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 19, var4 + 15, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 16, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 16, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 17, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 17, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 18, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 18, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 19, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 21, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 6, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 7, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 8, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 8, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 8, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 0, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 9, var5 + 18, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 10, var5 + 0, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 10, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 10, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 10, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 11, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 13, var5 + 2, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 13, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 13, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 13, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 14, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 14, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 15, var5 + 2, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 16, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 20, var4 + 16, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 17, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 17, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 17, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 20, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 17, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 18, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 19, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 20, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 8, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 8, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 9, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 9, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 10, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 10, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 10, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 11, var5 + 6, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 11, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 12, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 12, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 13, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 15, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 18, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 19, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 21, var4 + 19, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 8, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 8, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 8, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 9, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 9, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 9, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 10, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 10, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 10, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 10, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 12, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 12, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 13, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 15, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 17, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 22, var4 + 19, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 9, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 12, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 12, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 13, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 15, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 17, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 17, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 23, var4 + 18, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 24, var4 + 10, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 24, var4 + 11, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 24, var4 + 12, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 24, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 24, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 25, var4 + 11, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 25, var4 + 11, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 25, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAppleTree2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAppleTree2.java new file mode 100644 index 000000000..86d53b7f2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAppleTree2.java @@ -0,0 +1,440 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAppleTree2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 8, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 8, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 8, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 8, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 2, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 14, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 14, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 16, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 2, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 1, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 17, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 17, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 15, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 16, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 1, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 3, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 12, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 9, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 5, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 10, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 3, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 11, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 7, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 12, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 11, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 13, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 6, mod_BiomesOPlenty.appleLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 10, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 8, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 13, mod_BiomesOPlenty.appleLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 14, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 15, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 9, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 5, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 4, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 6, mod_BiomesOPlenty.appleLeavesFruitless.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 4, mod_BiomesOPlenty.appleLeaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAsh.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAsh.java new file mode 100644 index 000000000..7fd466378 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAsh.java @@ -0,0 +1,79 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAsh 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 WorldGenAsh(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) == mod_BiomesOPlenty.ashStone.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAutumn.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAutumn.java new file mode 100644 index 000000000..8836c8516 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAutumn.java @@ -0,0 +1,122 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAutumn extends WorldGenerator +{ + public WorldGenAutumn(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + 5; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.autumnLeaves.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 1 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + int var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.autumnLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.autumnLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 2); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAutumn2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAutumn2.java new file mode 100644 index 000000000..21a249511 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenAutumn2.java @@ -0,0 +1,122 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenAutumn2 extends WorldGenerator +{ + public WorldGenAutumn2(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + 5; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.orangeLeaves.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 1 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + int var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.orangeLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.orangeLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBambooTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBambooTree.java new file mode 100644 index 000000000..6fb396fb0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBambooTree.java @@ -0,0 +1,278 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.Direction; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBambooTree extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenBambooTree(boolean par1) + { + this(par1, 18, 0, 0, false); + } + + public WorldGenBambooTree(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.bambooLeaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != mod_BiomesOPlenty.bamboo.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + var9 = 3; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 3; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == mod_BiomesOPlenty.bambooLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, mod_BiomesOPlenty.bamboo.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 4), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 4), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 5), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 5), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 5), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 5), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 5), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 5), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 5), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 5), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 6), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 6), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 6), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 6), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 7), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 7), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 7), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 7), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 7), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 7), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 7), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 7), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 8), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 8), par5, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 8), par5 - 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 8), par5 + 1, mod_BiomesOPlenty.bambooLeaves.blockID, 0); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == mod_BiomesOPlenty.bambooLeaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + + if (par2Random.nextInt(5) == 0 && var6 > 5) + { + for (var11 = 0; var11 < 2; ++var11) + { + for (var12 = 0; var12 < 4; ++var12) + { + if (par2Random.nextInt(4 - var11) == 0) + { + var13 = par2Random.nextInt(3); + this.setBlockAndMetadata(par1World, par3 + Direction.offsetX[Direction.footInvisibleFaceRemap[var12]], par4 + var6 - 5 + var11, par5 + Direction.offsetZ[Direction.footInvisibleFaceRemap[var12]], Block.cocoaPlant.blockID, var13 << 2 | var12); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou1.java new file mode 100644 index 000000000..464d391b8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou1.java @@ -0,0 +1,233 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBayou1 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(8) + 10; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var81; + int var82; + int var83; + int var84; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.willowLeaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + var81 = par1World.getBlockId(par3 + 1, par4 - 1, par5); + var82 = par1World.getBlockId(par3, par4 - 1, par5 - 1); + var83 = par1World.getBlockId(par3, par4 - 1, par5 + 1); + var84 = par1World.getBlockId(par3 - 1, par4 - 1, par5 - 1); + + if (var81 != Block.grass.blockID) + { + return false; + } + + if (var82 != Block.grass.blockID) + { + return false; + } + + if (var83 != Block.grass.blockID) + { + return false; + } + + if (var84 != Block.grass.blockID) + { + return false; + } + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + this.setBlock(par1World, par3 - 1, par4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 1, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 1, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 2, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 2, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 2, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 2, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 3, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 3, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 3, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 3, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 4; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.willowLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.willowLeaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.willowWood.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == mod_BiomesOPlenty.willowLeaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou2.java new file mode 100644 index 000000000..6b8b7b830 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou2.java @@ -0,0 +1,225 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBayou2 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(5) + 8; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var81; + int var82; + int var83; + int var84; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.willowLeaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + var81 = par1World.getBlockId(par3 + 1, par4 - 1, par5); + var82 = par1World.getBlockId(par3, par4 - 1, par5 - 1); + var83 = par1World.getBlockId(par3, par4 - 1, par5 + 1); + var84 = par1World.getBlockId(par3 - 1, par4 - 1, par5 - 1); + + if (var81 != Block.grass.blockID) + { + return false; + } + + if (var82 != Block.grass.blockID) + { + return false; + } + + if (var83 != Block.grass.blockID) + { + return false; + } + + if (var84 != Block.grass.blockID) + { + return false; + } + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + this.setBlock(par1World, par3 - 1, par4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 1, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 1, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.willowLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.willowLeaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.willowWood.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == mod_BiomesOPlenty.willowLeaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou3.java new file mode 100644 index 000000000..773377192 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBayou3.java @@ -0,0 +1,127 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBayou3 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = 7; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.willowLeaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + this.setBlock(par1World, par3 - 1, par4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 1, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 1, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 2, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 2, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 2, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 2, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 3, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 3, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 3, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 3, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 4, par5, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 4, par5 - 1, mod_BiomesOPlenty.willowWood.blockID); + this.setBlock(par1World, par3, par4 + 4, par5 + 1, mod_BiomesOPlenty.willowWood.blockID); + int var13; + int var16; + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.willowLeaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.willowWood.blockID); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog.java new file mode 100644 index 000000000..6cd5fd6f5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog.java @@ -0,0 +1,187 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBog extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(4) + 5; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 3 - var10; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlock(par1World, var12, var16, var14, Block.leaves.blockID); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == Block.leaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, Block.wood.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 3 - var10; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog1.java new file mode 100644 index 000000000..179a7f44f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog1.java @@ -0,0 +1,215 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBog1 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(5) + 7; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 3 - var10; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlock(par1World, var12, var16, var14, Block.leaves.blockID); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == Block.leaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, Block.wood.blockID); + this.setBlock(par1World, par3 - 1, par4 + var16, par5, Block.wood.blockID); + this.setBlock(par1World, par3 + 1, par4 + var16, par5, Block.wood.blockID); + this.setBlock(par1World, par3, par4 + var16, par5 - 1, Block.wood.blockID); + this.setBlock(par1World, par3, par4 + var16, par5 + 1, Block.wood.blockID); + this.setBlock(par1World, par3 - 1, par4, par5 - 1, Block.wood.blockID); + this.setBlock(par1World, par3 + 1, par4, par5 + 1, Block.wood.blockID); + this.setBlock(par1World, par3 - 1, par4, par5 + 1, Block.wood.blockID); + this.setBlock(par1World, par3 + 1, par4, par5 - 1, Block.wood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 1, par5 - 1, Block.wood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 1, par5 + 1, Block.wood.blockID); + this.setBlock(par1World, par3 - 1, par4 + 1, par5 + 1, Block.wood.blockID); + this.setBlock(par1World, par3 + 1, par4 + 1, par5 - 1, Block.wood.blockID); + this.setBlockAndMetadata(par1World, par3 - 2, par4, par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3 + 2, par4, par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3, par4, par5 - 2, Block.wood.blockID, 8); + this.setBlockAndMetadata(par1World, par3, par4, par5 + 2, Block.wood.blockID, 8); + this.setBlock(par1World, par3 - 1, par4 + (var6 - 4), par5 - 1, Block.wood.blockID); + this.setBlock(par1World, par3 + 1, par4 + (var6 - 4), par5 + 1, Block.wood.blockID); + this.setBlock(par1World, par3 - 1, par4 + (var6 - 4), par5 + 1, Block.wood.blockID); + this.setBlock(par1World, par3 + 1, par4 + (var6 - 4), par5 - 1, Block.wood.blockID); + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var6 - 4), par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var6 - 4), par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 - 2, Block.wood.blockID, 8); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 + 2, Block.wood.blockID, 8); + this.setBlock(par1World, par3 - 3, par4 + (var6 - 3), par5, Block.wood.blockID); + this.setBlock(par1World, par3 + 3, par4 + (var6 - 3), par5, Block.wood.blockID); + this.setBlock(par1World, par3, par4 + (var6 - 3), par5 - 3, Block.wood.blockID); + this.setBlock(par1World, par3, par4 + (var6 - 3), par5 + 3, Block.wood.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 3 - var10; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog2.java new file mode 100644 index 000000000..d0bc9efb1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBog2.java @@ -0,0 +1,199 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBog2 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(4) + 7; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlock(par1World, var12, var16, var14, Block.leaves.blockID); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == Block.leaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, Block.wood.blockID); + this.setBlockAndMetadata(par1World, par3 - 1, par4, par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3 + 1, par4, par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3, par4, par5 - 1, Block.wood.blockID, 8); + this.setBlockAndMetadata(par1World, par3, par4, par5 + 1, Block.wood.blockID, 8); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 4), par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 4), par5, Block.wood.blockID, 4); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 - 1, Block.wood.blockID, 8); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 + 1, Block.wood.blockID, 8); + this.setBlock(par1World, par3 - 2, par4 + (var6 - 3), par5, Block.wood.blockID); + this.setBlock(par1World, par3 + 2, par4 + (var6 - 3), par5, Block.wood.blockID); + this.setBlock(par1World, par3, par4 + (var6 - 3), par5 - 2, Block.wood.blockID); + this.setBlock(par1World, par3, par4 + (var6 - 3), par5 + 2, Block.wood.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBoulder.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBoulder.java new file mode 100644 index 000000000..d3ee98062 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBoulder.java @@ -0,0 +1,27 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBoulder extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + for (int var6 = 0; var6 < 64; ++var6) + { + int var7 = var3 + var2.nextInt(8) - var2.nextInt(8); + int var8 = var4 + var2.nextInt(4) - var2.nextInt(4); + int var9 = var5 + var2.nextInt(8) - var2.nextInt(8); + + if (var1.isAirBlock(var7, var8, var9) && var1.getBlockId(var7, var8 - 1, var9) == Block.grass.blockID && Block.pumpkin.canPlaceBlockAt(var1, var7, var8, var9)) + { + var1.setBlock(var7, var8, var9, Block.stone.blockID); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBrazilNut1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBrazilNut1.java new file mode 100644 index 000000000..ff6f5f486 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBrazilNut1.java @@ -0,0 +1,902 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBrazilNut1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 10, var4, var5 + 12) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 10, var4, var5 + 12); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 10, var4 - 1, var5 + var8 + 12) && var1.isAirBlock(var3 + var7 + 10, var4 - 2, var5 + var8 + 12)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 22, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 0, var4 + 23, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 23, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 25, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 25, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 26, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 30, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 31, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 32, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 32, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 31, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 32, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 33, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 33, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 33, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 34, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 34, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 34, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 36, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 34, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 16, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 17, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 36, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 36, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 36, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 36, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 36, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 36, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 1, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 1, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 16, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 31, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 31, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 33, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 33, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 33, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 33, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 38, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 1, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 25, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 25, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 29, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 29, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 29, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 29, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 29, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 30, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 31, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 31, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 31, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 16, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 20, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 33, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 33, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 33, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 35, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 35, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 35, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 35, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 36, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 37, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 25, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 25, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 25, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 25, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 29, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 29, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 29, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 29, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 31, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 31, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 32, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 32, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 32, var5 + 17, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 21, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 34, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 34, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 34, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 34, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 35, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 35, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 35, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 35, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 36, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 36, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 36, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 36, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 36, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 37, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 37, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 37, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 37, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 38, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 38, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 38, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 40, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 23, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 28, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 28, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 28, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 29, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 29, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 29, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 30, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 30, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 30, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 30, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 30, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 31, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 31, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 31, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 31, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 32, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 32, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 33, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 33, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 33, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 33, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 33, var5 + 18, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 33, var5 + 20, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 34, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 34, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 34, var5 + 21, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 35, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 35, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 35, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 36, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 36, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 36, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 37, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 37, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 38, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 38, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 39, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 22, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 22, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 25, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 25, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 29, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 29, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 30, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 30, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 30, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 30, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 31, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 31, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 31, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 32, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 32, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 32, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 33, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 33, var5 + 18, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 33, var5 + 21, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 34, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 34, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 34, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 34, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 34, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 24, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 25, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 25, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 26, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 26, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 26, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 27, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 27, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 27, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 28, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 28, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 28, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 28, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 29, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 29, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 29, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 29, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 29, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 30, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 30, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 30, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 31, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 31, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 31, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 31, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 32, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 32, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 33, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 33, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 34, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 34, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 34, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 26, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 27, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 27, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 27, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 27, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 28, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 28, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 28, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 29, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 29, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 29, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 30, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 30, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 30, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 31, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 31, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 33, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 33, var5 + 19, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 35, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 20, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 20, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 20, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 22, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 23, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 24, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 28, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 29, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 29, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 29, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 30, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 30, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 31, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 18, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 19, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 20, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 20, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 21, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 19, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 22, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 29, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 22, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 23, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 23, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 23, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 24, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 21, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 20, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 22, var5 + 7, Block.leaves.blockID, 7); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBrazilNut2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBrazilNut2.java new file mode 100644 index 000000000..9b9facc67 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBrazilNut2.java @@ -0,0 +1,282 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBrazilNut2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 0, var4 + 10, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 2, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 2, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 2, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 1, Block.leaves.blockID, 7); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBush.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBush.java new file mode 100644 index 000000000..be060e5eb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenBush.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenBush extends WorldGenerator +{ + /** The ID of the plant block used in this plant generator. */ + private int plantBlockId; + + public WorldGenBush(int par1) + { + this.plantBlockId = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + for (int var6 = 0; var6 < 64; ++var6) + { + int var7 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var9 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var7, var8, var9) && (!par1World.provider.hasNoSky || var8 < 127) && Block.blocksList[this.plantBlockId].canBlockStay(par1World, var7, var8, var9)) + { + par1World.setBlockAndMetadata(var7, var8, var9, this.plantBlockId, 1); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyon.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyon.java new file mode 100644 index 000000000..10bb3c232 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyon.java @@ -0,0 +1,79 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCanyon 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 WorldGenCanyon(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) == mod_BiomesOPlenty.hardDirt.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyonShrub.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyonShrub.java new file mode 100644 index 000000000..a71c89441 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyonShrub.java @@ -0,0 +1,64 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCanyonShrub extends WorldGenerator +{ + private int field_76527_a; + private int field_76526_b; + + public WorldGenCanyonShrub(int par1, int par2) + { + this.field_76526_b = par1; + this.field_76527_a = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var15; + + for (boolean var6 = false; ((var15 = par1World.getBlockId(par3, par4, par5)) == 0 || var15 == mod_BiomesOPlenty.acaciaLeaves.blockID) && par4 > 0; --par4) + { + ; + } + + int var7 = par1World.getBlockId(par3, par4, par5); + + if (var7 == mod_BiomesOPlenty.hardDirt.blockID) + { + ++par4; + if (par4 > 95) + { + this.setBlockAndMetadata(par1World, par3, par4, par5, mod_BiomesOPlenty.acaciaWood.blockID, this.field_76526_b); + + for (int var8 = par4; var8 <= par4 + 1; ++var8) + { + int var9 = var8 - par4; + int var10 = 2 - var9; + + for (int var11 = par3 - var10; var11 <= par3 + var10; ++var11) + { + int var12 = var11 - par3; + + for (int var13 = par5 - var10; var13 <= par5 + var10; ++var13) + { + int var14 = var13 - par5; + + if ((Math.abs(var12) != var10 || Math.abs(var14) != var10 || par2Random.nextInt(2) != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var11, var8, var13)]) + { + this.setBlockAndMetadata(par1World, var11, var8, var13, mod_BiomesOPlenty.acaciaLeaves.blockID, this.field_76527_a); + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyonTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyonTree.java new file mode 100644 index 000000000..d8922ef06 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCanyonTree.java @@ -0,0 +1,131 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +public class WorldGenCanyonTree extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(5) + 7; + int var7 = var6 - par2Random.nextInt(2) - 3; + int var8 = var6 - var7; + int var9 = 1 + par2Random.nextInt(var8 + 1); + boolean var10 = true; + + if (par4 >= 95 && par4 + var6 + 1 <= 128) + { + int var11; + int var13; + int var14; + int var15; + int var18; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var18 = 0; + } + else + { + var18 = var9; + } + + for (var13 = par3 - var18; var13 <= par3 + var18 && var10; ++var13) + { + for (var14 = par5 - var18; var14 <= par5 + var18 && var10; ++var14) + { + if (var11 >= 95 && var11 < 128) + { + var15 = par1World.getBlockId(var13, var11, var14); + + Block block = Block.blocksList[var15]; + + if (var15 != 0 && (block == null || var15 != mod_BiomesOPlenty.acaciaLeaves.blockID)) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == mod_BiomesOPlenty.hardDirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, mod_BiomesOPlenty.hardDirt.blockID); + var18 = 0; + + for (var13 = par4 + var6; var13 >= par4 + var7; --var13) + { + for (var14 = par3 - var18; var14 <= par3 + var18; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var18; var16 <= par5 + var18; ++var16) + { + int var17 = var16 - par5; + + Block block = Block.blocksList[par1World.getBlockId(var14, var13, var16)]; + + if ((Math.abs(var15) != var18 || Math.abs(var17) != var18 || var18 <= 0) && + (block == null || block.canBeReplacedByLeaves(par1World, var14, var13, var16))) + { + this.setBlockAndMetadata(par1World, var14, var13, var16, mod_BiomesOPlenty.acaciaLeaves.blockID, 0); + } + } + } + + if (var18 >= 1 && var13 == par4 + var7 + 1) + { + --var18; + } + else if (var18 < var9) + { + ++var18; + } + } + + for (var13 = 0; var13 < var6 - 1; ++var13) + { + var14 = par1World.getBlockId(par3, par4 + var13, par5); + + Block block = Block.blocksList[var14]; + + if (var14 == 0 || block == null || var14 == mod_BiomesOPlenty.acaciaLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var13, par5, mod_BiomesOPlenty.acaciaWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCarrots.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCarrots.java new file mode 100644 index 000000000..1b5f616c4 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCarrots.java @@ -0,0 +1,62 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCarrots extends WorldGenerator +{ + /** Stores ID for WorldGenTallGrass */ + private int tallGrassID; + private int tallGrassMetadata; + + public WorldGenCarrots(int par1, int par2) + { + this.tallGrassID = par1; + this.tallGrassMetadata = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var11; + + for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + for (int var7 = 0; var7 < 128; ++var7) + { + int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var99 = par2Random.nextInt(7); + + + if (par1World.getBlockMaterial(var8 - 1, var9 - 1, var10) != Material.water) + { + if (par1World.getBlockMaterial(var8 + 1, var9 - 1, var10) != Material.water) + { + if (par1World.getBlockMaterial(var8, var9 - 1, var10 - 1) != Material.water) + { + if (par1World.getBlockMaterial(var8, var9 - 1, var10 + 1) != Material.water) + { + return false; + } + } + } + } + + if (par1World.isAirBlock(var8, var9, var10) && Block.blocksList[this.tallGrassID].canBlockStay(par1World, var8, var9, var10)) + { + par1World.setBlock(var8, var9 - 1, var10, Block.tilledField.blockID); + par1World.setBlockAndMetadata(var8, var9, var10, Block.carrot.blockID, var99); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCattail.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCattail.java new file mode 100644 index 000000000..59147ed59 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCattail.java @@ -0,0 +1,36 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCattail extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var11; + + for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + for (int var7 = 0; var7 < 128; ++var7) + { + int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var8, var9, var10) && mod_BiomesOPlenty.cattail.canBlockStay(par1World, var8, var9, var10)) + { + par1World.setBlock(var8, var9, var10, mod_BiomesOPlenty.cattail.blockID); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral1.java new file mode 100644 index 000000000..d8226da76 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral1.java @@ -0,0 +1,60 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenChaparral1 extends WorldGenerator +{ + private int field_76527_a; + private int field_76526_b; + + public WorldGenChaparral1(int par1, int par2) + { + this.field_76526_b = par1; + this.field_76527_a = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var15; + + for (boolean var6 = false; ((var15 = par1World.getBlockId(par3, par4, par5)) == 0 || var15 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + int var7 = par1World.getBlockId(par3, par4, par5); + + if (var7 == Block.dirt.blockID || var7 == Block.grass.blockID) + { + ++par4; + this.setBlockAndMetadata(par1World, par3, par4, par5, Block.wood.blockID, this.field_76526_b); + + for (int var8 = par4; var8 <= par4 + 1; ++var8) + { + int var9 = var8 - par4; + int var10 = 2 - var9; + + for (int var11 = par3 - var10; var11 <= par3 + var10; ++var11) + { + int var12 = var11 - par3; + + for (int var13 = par5 - var10; var13 <= par5 + var10; ++var13) + { + int var14 = var13 - par5; + + if ((Math.abs(var12) != var10 || Math.abs(var14) != var10 || par2Random.nextInt(2) != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var11, var8, var13)]) + { + this.setBlockAndMetadata(par1World, var11, var8, var13, Block.leaves.blockID, this.field_76527_a); + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral2.java new file mode 100644 index 000000000..501d6515e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral2.java @@ -0,0 +1,48 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenChaparral2 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 != Block.grass.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, Block.dirt.blockID); + var1.setBlock(var3, var4 + 1, var5, Block.wood.blockID); + var1.setBlock(var3, var4 + 2, var5, Block.wood.blockID); + var1.setBlock(var3 + 1, var4 + 2, var5, Block.leaves.blockID); + var1.setBlock(var3 - 1, var4 + 2, var5, Block.leaves.blockID); + var1.setBlock(var3, var4 + 2, var5 + 1, Block.leaves.blockID); + var1.setBlock(var3, var4 + 2, var5 - 1, Block.leaves.blockID); + var1.setBlock(var3, var4 + 3, var5, Block.leaves.blockID); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral3.java new file mode 100644 index 000000000..8e3ad7460 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenChaparral3.java @@ -0,0 +1,42 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenChaparral3 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 != Block.grass.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, Block.wood.blockID); + var1.setBlock(var3, var4 + 1, var5, Block.leaves.blockID); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCherry1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCherry1.java new file mode 100644 index 000000000..d25617d40 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCherry1.java @@ -0,0 +1,516 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCherry1 extends WorldGenerator +{ + /** + * Contains three sets of two values that provide complimentary indices for a given 'major' index - 1 and 2 for 0, 0 + * and 2 for 1, and 0 and 1 for 2. + */ + static final byte[] otherCoordPairs = new byte[] {(byte)2, (byte)0, (byte)0, (byte)1, (byte)2, (byte)1}; + + /** random seed for GenBigTree */ + Random rand = new Random(); + + /** Reference to the World object. */ + World worldObj; + int[] basePos = new int[] {0, 0, 0}; + int heightLimit = 0; + int height; + double heightAttenuation = 0.618D; + double branchDensity = 1.0D; + double branchSlope = 0.381D; + double scaleWidth = 1.0D; + double leafDensity = 1.0D; + + /** + * Currently always 1, can be set to 2 in the class constructor to generate a double-sized tree trunk for big trees. + */ + int trunkSize = 1; + + /** + * Sets the limit of the random value used to initialize the height limit. + */ + int heightLimitLimit = 12; + + /** + * Sets the distance limit for how far away the generator will populate leaves from the base leaf node. + */ + int leafDistanceLimit = 4; + + /** Contains a list of a points at which to generate groups of leaves. */ + int[][] leafNodes; + + public WorldGenCherry1(boolean par1) + { + super(par1); + } + + /** + * Generates a list of leaf nodes for the tree, to be populated by generateLeaves. + */ + void generateLeafNodeList() + { + this.height = (int)((double)this.heightLimit * this.heightAttenuation); + + if (this.height >= this.heightLimit) + { + this.height = this.heightLimit - 1; + } + + int var1 = (int)(1.382D + Math.pow(this.leafDensity * (double)this.heightLimit / 13.0D, 2.0D)); + + if (var1 < 1) + { + var1 = 1; + } + + int[][] var2 = new int[var1 * this.heightLimit][4]; + int var3 = this.basePos[1] + this.heightLimit - this.leafDistanceLimit; + int var4 = 1; + int var5 = this.basePos[1] + this.height; + int var6 = var3 - this.basePos[1]; + var2[0][0] = this.basePos[0]; + var2[0][1] = var3; + var2[0][2] = this.basePos[2]; + var2[0][3] = var5; + --var3; + + while (var6 >= 0) + { + int var7 = 0; + float var8 = this.layerSize(var6); + + if (var8 < 0.0F) + { + --var3; + --var6; + } + else + { + for (double var9 = 0.5D; var7 < var1; ++var7) + { + double var11 = this.scaleWidth * (double)var8 * ((double)this.rand.nextFloat() + 0.328D); + double var13 = (double)this.rand.nextFloat() * 2.0D * Math.PI; + int var15 = MathHelper.floor_double(var11 * Math.sin(var13) + (double)this.basePos[0] + var9); + int var16 = MathHelper.floor_double(var11 * Math.cos(var13) + (double)this.basePos[2] + var9); + int[] var17 = new int[] {var15, var3, var16}; + int[] var18 = new int[] {var15, var3 + this.leafDistanceLimit, var16}; + + if (this.checkBlockLine(var17, var18) == -1) + { + int[] var19 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + double var20 = Math.sqrt(Math.pow((double)Math.abs(this.basePos[0] - var17[0]), 2.0D) + Math.pow((double)Math.abs(this.basePos[2] - var17[2]), 2.0D)); + double var22 = var20 * this.branchSlope; + + if ((double)var17[1] - var22 > (double)var5) + { + var19[1] = var5; + } + else + { + var19[1] = (int)((double)var17[1] - var22); + } + + if (this.checkBlockLine(var19, var17) == -1) + { + var2[var4][0] = var15; + var2[var4][1] = var3; + var2[var4][2] = var16; + var2[var4][3] = var19[1]; + ++var4; + } + } + } + + --var3; + --var6; + } + } + + this.leafNodes = new int[var4][4]; + System.arraycopy(var2, 0, this.leafNodes, 0, var4); + } + + void genTreeLayer(int par1, int par2, int par3, float par4, byte par5, int par6) + { + int var7 = (int)((double)par4 + 0.618D); + byte var8 = otherCoordPairs[par5]; + byte var9 = otherCoordPairs[par5 + 3]; + int[] var10 = new int[] {par1, par2, par3}; + int[] var11 = new int[] {0, 0, 0}; + int var12 = -var7; + int var13 = -var7; + + for (var11[par5] = var10[par5]; var12 <= var7; ++var12) + { + var11[var8] = var10[var8] + var12; + var13 = -var7; + + while (var13 <= var7) + { + double var15 = Math.pow((double)Math.abs(var12) + 0.5D, 2.0D) + Math.pow((double)Math.abs(var13) + 0.5D, 2.0D); + + if (var15 > (double)(par4 * par4)) + { + ++var13; + } + else + { + var11[var9] = var10[var9] + var13; + int var14 = this.worldObj.getBlockId(var11[0], var11[1], var11[2]); + + if (var14 != 0 && var14 != mod_BiomesOPlenty.pinkLeaves.blockID) + { + ++var13; + } + else + { + this.setBlockAndMetadata(this.worldObj, var11[0], var11[1], var11[2], par6, 0); + ++var13; + } + } + } + } + } + + /** + * Gets the rough size of a layer of the tree. + */ + float layerSize(int par1) + { + if ((double)par1 < (double)((float)this.heightLimit) * 0.3D) + { + return -1.618F; + } + else + { + float var2 = (float)this.heightLimit / 2.0F; + float var3 = (float)this.heightLimit / 2.0F - (float)par1; + float var4; + + if (var3 == 0.0F) + { + var4 = var2; + } + else if (Math.abs(var3) >= var2) + { + var4 = 0.0F; + } + else + { + var4 = (float)Math.sqrt(Math.pow((double)Math.abs(var2), 2.0D) - Math.pow((double)Math.abs(var3), 2.0D)); + } + + var4 *= 0.5F; + return var4; + } + } + + float leafSize(int par1) + { + return par1 >= 0 && par1 < this.leafDistanceLimit ? (par1 != 0 && par1 != this.leafDistanceLimit - 1 ? 3.0F : 2.0F) : -1.0F; + } + + /** + * Generates the leaves surrounding an individual entry in the leafNodes list. + */ + void generateLeafNode(int par1, int par2, int par3) + { + int var4 = par2; + + for (int var5 = par2 + this.leafDistanceLimit; var4 < var5; ++var4) + { + float var6 = this.leafSize(var4 - par2); + this.genTreeLayer(par1, var4, par3, var6, (byte)1, mod_BiomesOPlenty.pinkLeaves.blockID); + } + } + + /** + * Places a line of the specified block ID into the world from the first coordinate triplet to the second. + */ + void placeBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger, int par3) + { + int[] var4 = new int[] {0, 0, 0}; + byte var5 = 0; + byte var6; + + for (var6 = 0; var5 < 3; ++var5) + { + var4[var5] = par2ArrayOfInteger[var5] - par1ArrayOfInteger[var5]; + + if (Math.abs(var4[var5]) > Math.abs(var4[var6])) + { + var6 = var5; + } + } + + if (var4[var6] != 0) + { + byte var7 = otherCoordPairs[var6]; + byte var8 = otherCoordPairs[var6 + 3]; + byte var9; + + if (var4[var6] > 0) + { + var9 = 1; + } + else + { + var9 = -1; + } + + double var10 = (double)var4[var7] / (double)var4[var6]; + double var12 = (double)var4[var8] / (double)var4[var6]; + int[] var14 = new int[] {0, 0, 0}; + int var15 = 0; + + for (int var16 = var4[var6] + var9; var15 != var16; var15 += var9) + { + var14[var6] = MathHelper.floor_double((double)(par1ArrayOfInteger[var6] + var15) + 0.5D); + var14[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var15 * var10 + 0.5D); + var14[var8] = MathHelper.floor_double((double)par1ArrayOfInteger[var8] + (double)var15 * var12 + 0.5D); + byte var17 = 0; + int var18 = Math.abs(var14[0] - par1ArrayOfInteger[0]); + int var19 = Math.abs(var14[2] - par1ArrayOfInteger[2]); + int var20 = Math.max(var18, var19); + + if (var20 > 0) + { + if (var18 == var20) + { + var17 = 4; + } + else if (var19 == var20) + { + var17 = 8; + } + } + + this.setBlockAndMetadata(this.worldObj, var14[0], var14[1], var14[2], par3, var17); + } + } + } + + /** + * Generates the leaf portion of the tree as specified by the leafNodes list. + */ + void generateLeaves() + { + int var1 = 0; + + for (int var2 = this.leafNodes.length; var1 < var2; ++var1) + { + int var3 = this.leafNodes[var1][0]; + int var4 = this.leafNodes[var1][1]; + int var5 = this.leafNodes[var1][2]; + this.generateLeafNode(var3, var4, var5); + } + } + + /** + * Indicates whether or not a leaf node requires additional wood to be added to preserve integrity. + */ + boolean leafNodeNeedsBase(int par1) + { + return (double)par1 >= (double)this.heightLimit * 0.2D; + } + + /** + * Places the trunk for the big tree that is being generated. Able to generate double-sized trunks by changing a + * field that is always 1 to 2. + */ + void generateTrunk() + { + int var1 = this.basePos[0]; + int var2 = this.basePos[1]; + int var3 = this.basePos[1] + this.height; + int var4 = this.basePos[2]; + int[] var5 = new int[] {var1, var2, var4}; + int[] var6 = new int[] {var1, var3, var4}; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + + if (this.trunkSize == 2) + { + ++var5[0]; + ++var6[0]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + ++var5[2]; + ++var6[2]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + var5[0] += -1; + var6[0] += -1; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + } + } + + /** + * Generates additional wood blocks to fill out the bases of different leaf nodes that would otherwise degrade. + */ + void generateLeafNodeBases() + { + int var1 = 0; + int var2 = this.leafNodes.length; + + for (int[] var3 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; var1 < var2; ++var1) + { + int[] var4 = this.leafNodes[var1]; + int[] var5 = new int[] {var4[0], var4[1], var4[2]}; + var3[1] = var4[3]; + int var6 = var3[1] - this.basePos[1]; + + if (this.leafNodeNeedsBase(var6)) + { + this.placeBlockLine(var3, var5, mod_BiomesOPlenty.cherryWood.blockID); + } + } + } + + /** + * Checks a line of blocks in the world from the first coordinate to triplet to the second, returning the distance + * (in blocks) before a non-air, non-leaf block is encountered and/or the end is encountered. + */ + int checkBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger) + { + int[] var3 = new int[] {0, 0, 0}; + byte var4 = 0; + byte var5; + + for (var5 = 0; var4 < 3; ++var4) + { + var3[var4] = par2ArrayOfInteger[var4] - par1ArrayOfInteger[var4]; + + if (Math.abs(var3[var4]) > Math.abs(var3[var5])) + { + var5 = var4; + } + } + + if (var3[var5] == 0) + { + return -1; + } + else + { + byte var6 = otherCoordPairs[var5]; + byte var7 = otherCoordPairs[var5 + 3]; + byte var8; + + if (var3[var5] > 0) + { + var8 = 1; + } + else + { + var8 = -1; + } + + double var9 = (double)var3[var6] / (double)var3[var5]; + double var11 = (double)var3[var7] / (double)var3[var5]; + int[] var13 = new int[] {0, 0, 0}; + int var14 = 0; + int var15; + + for (var15 = var3[var5] + var8; var14 != var15; var14 += var8) + { + var13[var5] = par1ArrayOfInteger[var5] + var14; + var13[var6] = MathHelper.floor_double((double)par1ArrayOfInteger[var6] + (double)var14 * var9); + var13[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var14 * var11); + int var16 = this.worldObj.getBlockId(var13[0], var13[1], var13[2]); + + if (var16 != 0 && var16 != mod_BiomesOPlenty.pinkLeaves.blockID) + { + break; + } + } + + return var14 == var15 ? -1 : Math.abs(var14); + } + } + + /** + * Returns a boolean indicating whether or not the current location for the tree, spanning basePos to to the height + * limit, is valid. + */ + boolean validTreeLocation() + { + int[] var1 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + int[] var2 = new int[] {this.basePos[0], this.basePos[1] + this.heightLimit - 1, this.basePos[2]}; + int var3 = this.worldObj.getBlockId(this.basePos[0], this.basePos[1] - 1, this.basePos[2]); + + if (var3 != 2 && var3 != 3) + { + return false; + } + else + { + int var4 = this.checkBlockLine(var1, var2); + + if (var4 == -1) + { + return true; + } + else if (var4 < 6) + { + return false; + } + else + { + this.heightLimit = var4; + return true; + } + } + } + + /** + * Rescales the generator settings, only used in WorldGenBigTree + */ + public void setScale(double par1, double par3, double par5) + { + this.heightLimitLimit = (int)(par1 * 12.0D); + + if (par1 > 0.5D) + { + this.leafDistanceLimit = 5; + } + + this.scaleWidth = par3; + this.leafDensity = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + this.worldObj = par1World; + long var6 = par2Random.nextLong(); + this.rand.setSeed(var6); + this.basePos[0] = par3; + this.basePos[1] = par4; + this.basePos[2] = par5; + + if (this.heightLimit == 0) + { + this.heightLimit = 5 + this.rand.nextInt(this.heightLimitLimit); + } + + if (!this.validTreeLocation()) + { + return false; + } + else + { + this.generateLeafNodeList(); + this.generateLeaves(); + this.generateTrunk(); + this.generateLeafNodeBases(); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCherry2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCherry2.java new file mode 100644 index 000000000..56877f6af --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCherry2.java @@ -0,0 +1,516 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCherry2 extends WorldGenerator +{ + /** + * Contains three sets of two values that provide complimentary indices for a given 'major' index - 1 and 2 for 0, 0 + * and 2 for 1, and 0 and 1 for 2. + */ + static final byte[] otherCoordPairs = new byte[] {(byte)2, (byte)0, (byte)0, (byte)1, (byte)2, (byte)1}; + + /** random seed for GenBigTree */ + Random rand = new Random(); + + /** Reference to the World object. */ + World worldObj; + int[] basePos = new int[] {0, 0, 0}; + int heightLimit = 0; + int height; + double heightAttenuation = 0.618D; + double branchDensity = 1.0D; + double branchSlope = 0.381D; + double scaleWidth = 1.0D; + double leafDensity = 1.0D; + + /** + * Currently always 1, can be set to 2 in the class constructor to generate a double-sized tree trunk for big trees. + */ + int trunkSize = 1; + + /** + * Sets the limit of the random value used to initialize the height limit. + */ + int heightLimitLimit = 12; + + /** + * Sets the distance limit for how far away the generator will populate leaves from the base leaf node. + */ + int leafDistanceLimit = 4; + + /** Contains a list of a points at which to generate groups of leaves. */ + int[][] leafNodes; + + public WorldGenCherry2(boolean par1) + { + super(par1); + } + + /** + * Generates a list of leaf nodes for the tree, to be populated by generateLeaves. + */ + void generateLeafNodeList() + { + this.height = (int)((double)this.heightLimit * this.heightAttenuation); + + if (this.height >= this.heightLimit) + { + this.height = this.heightLimit - 1; + } + + int var1 = (int)(1.382D + Math.pow(this.leafDensity * (double)this.heightLimit / 13.0D, 2.0D)); + + if (var1 < 1) + { + var1 = 1; + } + + int[][] var2 = new int[var1 * this.heightLimit][4]; + int var3 = this.basePos[1] + this.heightLimit - this.leafDistanceLimit; + int var4 = 1; + int var5 = this.basePos[1] + this.height; + int var6 = var3 - this.basePos[1]; + var2[0][0] = this.basePos[0]; + var2[0][1] = var3; + var2[0][2] = this.basePos[2]; + var2[0][3] = var5; + --var3; + + while (var6 >= 0) + { + int var7 = 0; + float var8 = this.layerSize(var6); + + if (var8 < 0.0F) + { + --var3; + --var6; + } + else + { + for (double var9 = 0.5D; var7 < var1; ++var7) + { + double var11 = this.scaleWidth * (double)var8 * ((double)this.rand.nextFloat() + 0.328D); + double var13 = (double)this.rand.nextFloat() * 2.0D * Math.PI; + int var15 = MathHelper.floor_double(var11 * Math.sin(var13) + (double)this.basePos[0] + var9); + int var16 = MathHelper.floor_double(var11 * Math.cos(var13) + (double)this.basePos[2] + var9); + int[] var17 = new int[] {var15, var3, var16}; + int[] var18 = new int[] {var15, var3 + this.leafDistanceLimit, var16}; + + if (this.checkBlockLine(var17, var18) == -1) + { + int[] var19 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + double var20 = Math.sqrt(Math.pow((double)Math.abs(this.basePos[0] - var17[0]), 2.0D) + Math.pow((double)Math.abs(this.basePos[2] - var17[2]), 2.0D)); + double var22 = var20 * this.branchSlope; + + if ((double)var17[1] - var22 > (double)var5) + { + var19[1] = var5; + } + else + { + var19[1] = (int)((double)var17[1] - var22); + } + + if (this.checkBlockLine(var19, var17) == -1) + { + var2[var4][0] = var15; + var2[var4][1] = var3; + var2[var4][2] = var16; + var2[var4][3] = var19[1]; + ++var4; + } + } + } + + --var3; + --var6; + } + } + + this.leafNodes = new int[var4][4]; + System.arraycopy(var2, 0, this.leafNodes, 0, var4); + } + + void genTreeLayer(int par1, int par2, int par3, float par4, byte par5, int par6) + { + int var7 = (int)((double)par4 + 0.618D); + byte var8 = otherCoordPairs[par5]; + byte var9 = otherCoordPairs[par5 + 3]; + int[] var10 = new int[] {par1, par2, par3}; + int[] var11 = new int[] {0, 0, 0}; + int var12 = -var7; + int var13 = -var7; + + for (var11[par5] = var10[par5]; var12 <= var7; ++var12) + { + var11[var8] = var10[var8] + var12; + var13 = -var7; + + while (var13 <= var7) + { + double var15 = Math.pow((double)Math.abs(var12) + 0.5D, 2.0D) + Math.pow((double)Math.abs(var13) + 0.5D, 2.0D); + + if (var15 > (double)(par4 * par4)) + { + ++var13; + } + else + { + var11[var9] = var10[var9] + var13; + int var14 = this.worldObj.getBlockId(var11[0], var11[1], var11[2]); + + if (var14 != 0 && var14 != mod_BiomesOPlenty.whiteLeaves.blockID) + { + ++var13; + } + else + { + this.setBlockAndMetadata(this.worldObj, var11[0], var11[1], var11[2], par6, 0); + ++var13; + } + } + } + } + } + + /** + * Gets the rough size of a layer of the tree. + */ + float layerSize(int par1) + { + if ((double)par1 < (double)((float)this.heightLimit) * 0.3D) + { + return -1.618F; + } + else + { + float var2 = (float)this.heightLimit / 2.0F; + float var3 = (float)this.heightLimit / 2.0F - (float)par1; + float var4; + + if (var3 == 0.0F) + { + var4 = var2; + } + else if (Math.abs(var3) >= var2) + { + var4 = 0.0F; + } + else + { + var4 = (float)Math.sqrt(Math.pow((double)Math.abs(var2), 2.0D) - Math.pow((double)Math.abs(var3), 2.0D)); + } + + var4 *= 0.5F; + return var4; + } + } + + float leafSize(int par1) + { + return par1 >= 0 && par1 < this.leafDistanceLimit ? (par1 != 0 && par1 != this.leafDistanceLimit - 1 ? 3.0F : 2.0F) : -1.0F; + } + + /** + * Generates the leaves surrounding an individual entry in the leafNodes list. + */ + void generateLeafNode(int par1, int par2, int par3) + { + int var4 = par2; + + for (int var5 = par2 + this.leafDistanceLimit; var4 < var5; ++var4) + { + float var6 = this.leafSize(var4 - par2); + this.genTreeLayer(par1, var4, par3, var6, (byte)1, mod_BiomesOPlenty.whiteLeaves.blockID); + } + } + + /** + * Places a line of the specified block ID into the world from the first coordinate triplet to the second. + */ + void placeBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger, int par3) + { + int[] var4 = new int[] {0, 0, 0}; + byte var5 = 0; + byte var6; + + for (var6 = 0; var5 < 3; ++var5) + { + var4[var5] = par2ArrayOfInteger[var5] - par1ArrayOfInteger[var5]; + + if (Math.abs(var4[var5]) > Math.abs(var4[var6])) + { + var6 = var5; + } + } + + if (var4[var6] != 0) + { + byte var7 = otherCoordPairs[var6]; + byte var8 = otherCoordPairs[var6 + 3]; + byte var9; + + if (var4[var6] > 0) + { + var9 = 1; + } + else + { + var9 = -1; + } + + double var10 = (double)var4[var7] / (double)var4[var6]; + double var12 = (double)var4[var8] / (double)var4[var6]; + int[] var14 = new int[] {0, 0, 0}; + int var15 = 0; + + for (int var16 = var4[var6] + var9; var15 != var16; var15 += var9) + { + var14[var6] = MathHelper.floor_double((double)(par1ArrayOfInteger[var6] + var15) + 0.5D); + var14[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var15 * var10 + 0.5D); + var14[var8] = MathHelper.floor_double((double)par1ArrayOfInteger[var8] + (double)var15 * var12 + 0.5D); + byte var17 = 0; + int var18 = Math.abs(var14[0] - par1ArrayOfInteger[0]); + int var19 = Math.abs(var14[2] - par1ArrayOfInteger[2]); + int var20 = Math.max(var18, var19); + + if (var20 > 0) + { + if (var18 == var20) + { + var17 = 4; + } + else if (var19 == var20) + { + var17 = 8; + } + } + + this.setBlockAndMetadata(this.worldObj, var14[0], var14[1], var14[2], par3, var17); + } + } + } + + /** + * Generates the leaf portion of the tree as specified by the leafNodes list. + */ + void generateLeaves() + { + int var1 = 0; + + for (int var2 = this.leafNodes.length; var1 < var2; ++var1) + { + int var3 = this.leafNodes[var1][0]; + int var4 = this.leafNodes[var1][1]; + int var5 = this.leafNodes[var1][2]; + this.generateLeafNode(var3, var4, var5); + } + } + + /** + * Indicates whether or not a leaf node requires additional wood to be added to preserve integrity. + */ + boolean leafNodeNeedsBase(int par1) + { + return (double)par1 >= (double)this.heightLimit * 0.2D; + } + + /** + * Places the trunk for the big tree that is being generated. Able to generate double-sized trunks by changing a + * field that is always 1 to 2. + */ + void generateTrunk() + { + int var1 = this.basePos[0]; + int var2 = this.basePos[1]; + int var3 = this.basePos[1] + this.height; + int var4 = this.basePos[2]; + int[] var5 = new int[] {var1, var2, var4}; + int[] var6 = new int[] {var1, var3, var4}; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + + if (this.trunkSize == 2) + { + ++var5[0]; + ++var6[0]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + ++var5[2]; + ++var6[2]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + var5[0] += -1; + var6[0] += -1; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.cherryWood.blockID); + } + } + + /** + * Generates additional wood blocks to fill out the bases of different leaf nodes that would otherwise degrade. + */ + void generateLeafNodeBases() + { + int var1 = 0; + int var2 = this.leafNodes.length; + + for (int[] var3 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; var1 < var2; ++var1) + { + int[] var4 = this.leafNodes[var1]; + int[] var5 = new int[] {var4[0], var4[1], var4[2]}; + var3[1] = var4[3]; + int var6 = var3[1] - this.basePos[1]; + + if (this.leafNodeNeedsBase(var6)) + { + this.placeBlockLine(var3, var5, mod_BiomesOPlenty.cherryWood.blockID); + } + } + } + + /** + * Checks a line of blocks in the world from the first coordinate to triplet to the second, returning the distance + * (in blocks) before a non-air, non-leaf block is encountered and/or the end is encountered. + */ + int checkBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger) + { + int[] var3 = new int[] {0, 0, 0}; + byte var4 = 0; + byte var5; + + for (var5 = 0; var4 < 3; ++var4) + { + var3[var4] = par2ArrayOfInteger[var4] - par1ArrayOfInteger[var4]; + + if (Math.abs(var3[var4]) > Math.abs(var3[var5])) + { + var5 = var4; + } + } + + if (var3[var5] == 0) + { + return -1; + } + else + { + byte var6 = otherCoordPairs[var5]; + byte var7 = otherCoordPairs[var5 + 3]; + byte var8; + + if (var3[var5] > 0) + { + var8 = 1; + } + else + { + var8 = -1; + } + + double var9 = (double)var3[var6] / (double)var3[var5]; + double var11 = (double)var3[var7] / (double)var3[var5]; + int[] var13 = new int[] {0, 0, 0}; + int var14 = 0; + int var15; + + for (var15 = var3[var5] + var8; var14 != var15; var14 += var8) + { + var13[var5] = par1ArrayOfInteger[var5] + var14; + var13[var6] = MathHelper.floor_double((double)par1ArrayOfInteger[var6] + (double)var14 * var9); + var13[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var14 * var11); + int var16 = this.worldObj.getBlockId(var13[0], var13[1], var13[2]); + + if (var16 != 0 && var16 != mod_BiomesOPlenty.whiteLeaves.blockID) + { + break; + } + } + + return var14 == var15 ? -1 : Math.abs(var14); + } + } + + /** + * Returns a boolean indicating whether or not the current location for the tree, spanning basePos to to the height + * limit, is valid. + */ + boolean validTreeLocation() + { + int[] var1 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + int[] var2 = new int[] {this.basePos[0], this.basePos[1] + this.heightLimit - 1, this.basePos[2]}; + int var3 = this.worldObj.getBlockId(this.basePos[0], this.basePos[1] - 1, this.basePos[2]); + + if (var3 != 2 && var3 != 3) + { + return false; + } + else + { + int var4 = this.checkBlockLine(var1, var2); + + if (var4 == -1) + { + return true; + } + else if (var4 < 6) + { + return false; + } + else + { + this.heightLimit = var4; + return true; + } + } + } + + /** + * Rescales the generator settings, only used in WorldGenBigTree + */ + public void setScale(double par1, double par3, double par5) + { + this.heightLimitLimit = (int)(par1 * 12.0D); + + if (par1 > 0.5D) + { + this.leafDistanceLimit = 5; + } + + this.scaleWidth = par3; + this.leafDensity = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + this.worldObj = par1World; + long var6 = par2Random.nextLong(); + this.rand.setSeed(var6); + this.basePos[0] = par3; + this.basePos[1] = par4; + this.basePos[2] = par5; + + if (this.heightLimit == 0) + { + this.heightLimit = 5 + this.rand.nextInt(this.heightLimitLimit); + } + + if (!this.validTreeLocation()) + { + return false; + } + else + { + this.generateLeafNodeList(); + this.generateLeaves(); + this.generateTrunk(); + this.generateLeafNodeBases(); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenColumn.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenColumn.java new file mode 100644 index 000000000..4f274d043 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenColumn.java @@ -0,0 +1,70 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenColumn extends WorldGenerator +{ + /** + * The Block ID that the generator is allowed to replace while generating the terrain. + */ + private int replaceID; + + public WorldGenColumn(int par1) + { + this.replaceID = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (par1World.isAirBlock(par3, par4, par5) && par1World.getBlockId(par3, par4 - 1, par5) == this.replaceID) + { + int var6 = par2Random.nextInt(32) + 1; + int var7 = par2Random.nextInt(2) + 1; + int var8; + int var9; + int var10; + int var11; + + for (var8 = par3 - var7; var8 <= par3 + var7; ++var8) + { + for (var9 = par5 - var7; var9 <= par5 + var7; ++var9) + { + var10 = var8 - par3; + var11 = var9 - par5; + + if (var10 * var10 + var11 * var11 <= var7 * var7 + 1 && par1World.getBlockId(var8, par4 - 1, var9) != this.replaceID) + { + return false; + } + } + } + + for (var8 = par4; var8 < par4 + var6 && var8 < 128; ++var8) + { + for (var9 = par3 - var7; var9 <= par3 + var7; ++var9) + { + for (var10 = par5 - var7; var10 <= par5 + var7; ++var10) + { + var11 = var9 - par3; + int var12 = var10 - par5; + + if (var11 * var11 + var12 * var12 <= var7 * var7 + 1) + { + par1World.setBlockWithNotify(var9, var8, var10, mod_BiomesOPlenty.ashStone.blockID); + } + } + } + } + return true; + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCrag.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCrag.java new file mode 100644 index 000000000..63aea825d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCrag.java @@ -0,0 +1,228 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCrag extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenCrag(boolean par1) + { + this(par1, 4, 0, 0, false); + } + + public WorldGenCrag(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(2) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.gravel.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.gravel.blockID); + var9 = 6; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlock(par1World, var14, var11, var16, Block.gravel.blockID); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == Block.gravel.blockID) + { + this.setBlock(par1World, par3, par4 + var11, par5, Block.gravel.blockID); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.gravel.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress.java new file mode 100644 index 000000000..1496dcf7a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress.java @@ -0,0 +1,158 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCypress extends WorldGenerator +{ + public WorldGenCypress(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(10) + 15; + int var7 = var2.nextInt(3) + 5; + int var8 = var6 - var7; + int var9 = 1; + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = var3 - var21; var13 <= var3 + var21 && var10; ++var13) + { + for (int var14 = var5 - var21; var14 <= var5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.willowLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var21 = var2.nextInt(2); + var13 = 1; + boolean var22 = false; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = var4 + var6 - var15; + + for (var17 = var3 - var21; var17 <= var3 + var21; ++var17) + { + int var18 = var17 - var3; + + for (int var19 = var5 - var21; var19 <= var5 + var21; ++var19) + { + int var20 = var19 - var5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var17, var16, var19)]) + { + if (var2.nextInt(3) != 0) + { + this.setBlockAndMetadata(var1, var17, var16, var19, mod_BiomesOPlenty.willowLeaves.blockID, 0); + } + } + } + } + + if (var21 >= var13) + { + var21 = var22 ? 1 : 0; + var22 = true; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = var2.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = var1.getBlockId(var3, var4 + var16, var5); + + if (var17 == 0 || var17 == mod_BiomesOPlenty.willowLeaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var16, var5, mod_BiomesOPlenty.willowWood.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6), var5, mod_BiomesOPlenty.willowWood.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6) - 2, var5, mod_BiomesOPlenty.willowWood.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6) - 1, var5, mod_BiomesOPlenty.willowWood.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6), var5, mod_BiomesOPlenty.willowWood.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6) + 1, var5, mod_BiomesOPlenty.willowWood.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, (var4 + var6) + 1, var5, mod_BiomesOPlenty.willowLeaves.blockID, 0); + this.setBlockAndMetadata(var1, var3 + 1, (var4 + var6) + 1, var5, mod_BiomesOPlenty.willowLeaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6) + 1, var5 - 1, mod_BiomesOPlenty.willowLeaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6) + 1, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, (var4 + var6) + 2, var5, mod_BiomesOPlenty.willowLeaves.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress1.java new file mode 100644 index 000000000..37d8baff2 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress1.java @@ -0,0 +1,535 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCypress1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 8, var4, var5 + 10) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 8, var4, var5 + 10); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 8, var4 - 1, var5 + var8 + 10) && var1.isAirBlock(var3 + var7 + 8, var4 - 2, var5 + var8 + 10)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 27, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 27, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 24, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 25, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 25, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 25, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 26, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 27, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 28, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 28, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 28, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 28, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 28, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 29, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 28, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 28, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 28, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 28, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 28, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 28, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 2, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 2, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 12, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 29, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 29, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 29, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 25, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 25, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 25, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 25, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 25, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 25, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 29, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 29, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 23, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 23, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 25, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 28, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 29, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 29, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 29, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 25, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 27, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 29, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 24, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 25, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 25, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 26, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 26, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 27, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 27, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 28, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress2.java new file mode 100644 index 000000000..8d151ef82 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenCypress2.java @@ -0,0 +1,149 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenCypress2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 4) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 4); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 4) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 4)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 0, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 2, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTree1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTree1.java new file mode 100644 index 000000000..1d678bec3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTree1.java @@ -0,0 +1,704 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDarkTree1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 12, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 12, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 13, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 13, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 1, mod_BiomesOPlenty.darkWood.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 17, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 17, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 20, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 20, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 20, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 21, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 21, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 23, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 23, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 9, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 22, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 26, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 29, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 31, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 8, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 26, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 34, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 34, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 35, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 8, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 8, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 8, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 34, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 9, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 10, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 1, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 9, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 1, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTree2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTree2.java new file mode 100644 index 000000000..434d3f3ad --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTree2.java @@ -0,0 +1,281 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDarkTree2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 4) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 4); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 4) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 4)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 4, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 6, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 3, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 4, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 0, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, mod_BiomesOPlenty.darkLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 1, mod_BiomesOPlenty.darkLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 2, mod_BiomesOPlenty.darkLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTreeOld1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTreeOld1.java new file mode 100644 index 000000000..13fd03ac7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDarkTreeOld1.java @@ -0,0 +1,93 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDarkTreeOld1 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); + int var96 = var1.getBlockId(var3 - 1, var4, var5); + int var97 = var1.getBlockId(var3 + 1, var4, var5); + int var98 = var1.getBlockId(var3, var4, var5 - 1); + int var99 = var1.getBlockId(var3, var4, var5 + 1); + + if (var6 != Block.grass.blockID) + { + return false; + } + if (var96 != Block.grass.blockID) + { + return false; + } + if (var97 != Block.grass.blockID) + { + return false; + } + if (var98 != Block.grass.blockID) + { + return false; + } + if (var99 != Block.grass.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, Block.dirt.blockID); + var1.setBlockAndMetadata(var3, var4 + 1, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 2, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 3, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 4, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 5, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 6, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 7, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 8, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 9, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 10, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 11, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 12, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 13, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 14, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 15, var5, Block.wood.blockID, 1); + + var1.setBlockAndMetadata(var3 - 1, var4 + 1, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 - 1, var4 + 2, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 - 1, var4 + 3, var5, Block.wood.blockID, 1); + + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5, Block.wood.blockID, 1); + + var1.setBlockAndMetadata(var3, var4 + 1, var5 - 1, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 2, var5 - 1, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 3, var5 - 1, Block.wood.blockID, 1); + + var1.setBlockAndMetadata(var3, var4 + 1, var5 + 1, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 2, var5 + 1, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3, var4 + 3, var5 + 1, Block.wood.blockID, 1); + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree.java new file mode 100644 index 000000000..57dd1c7b9 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree.java @@ -0,0 +1,516 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDeadTree extends WorldGenerator +{ + /** + * Contains three sets of two values that provide complimentary indices for a given 'major' index - 1 and 2 for 0, 0 + * and 2 for 1, and 0 and 1 for 2. + */ + static final byte[] otherCoordPairs = new byte[] {(byte)2, (byte)0, (byte)0, (byte)1, (byte)2, (byte)1}; + + /** random seed for GenBigTree */ + Random rand = new Random(); + + /** Reference to the World object. */ + World worldObj; + int[] basePos = new int[] {0, 0, 0}; + int heightLimit = 0; + int height; + double heightAttenuation = 0.618D; + double branchDensity = 1.0D; + double branchSlope = 0.381D; + double scaleWidth = 1.0D; + double leafDensity = 1.0D; + + /** + * Currently always 1, can be set to 2 in the class constructor to generate a double-sized tree trunk for big trees. + */ + int trunkSize = 1; + + /** + * Sets the limit of the random value used to initialize the height limit. + */ + int heightLimitLimit = 12; + + /** + * Sets the distance limit for how far away the generator will populate leaves from the base leaf node. + */ + int leafDistanceLimit = 4; + + /** Contains a list of a points at which to generate groups of leaves. */ + int[][] leafNodes; + + public WorldGenDeadTree(boolean par1) + { + super(par1); + } + + /** + * Generates a list of leaf nodes for the tree, to be populated by generateLeaves. + */ + void generateLeafNodeList() + { + this.height = (int)((double)this.heightLimit * this.heightAttenuation); + + if (this.height >= this.heightLimit) + { + this.height = this.heightLimit - 1; + } + + int var1 = (int)(1.382D + Math.pow(this.leafDensity * (double)this.heightLimit / 13.0D, 2.0D)); + + if (var1 < 1) + { + var1 = 1; + } + + int[][] var2 = new int[var1 * this.heightLimit][4]; + int var3 = this.basePos[1] + this.heightLimit - this.leafDistanceLimit; + int var4 = 1; + int var5 = this.basePos[1] + this.height; + int var6 = var3 - this.basePos[1]; + var2[0][0] = this.basePos[0]; + var2[0][1] = var3; + var2[0][2] = this.basePos[2]; + var2[0][3] = var5; + --var3; + + while (var6 >= 0) + { + int var7 = 0; + float var8 = this.layerSize(var6); + + if (var8 < 0.0F) + { + --var3; + --var6; + } + else + { + for (double var9 = 0.5D; var7 < var1; ++var7) + { + double var11 = this.scaleWidth * (double)var8 * ((double)this.rand.nextFloat() + 0.328D); + double var13 = (double)this.rand.nextFloat() * 2.0D * Math.PI; + int var15 = MathHelper.floor_double(var11 * Math.sin(var13) + (double)this.basePos[0] + var9); + int var16 = MathHelper.floor_double(var11 * Math.cos(var13) + (double)this.basePos[2] + var9); + int[] var17 = new int[] {var15, var3, var16}; + int[] var18 = new int[] {var15, var3 + this.leafDistanceLimit, var16}; + + if (this.checkBlockLine(var17, var18) == -1) + { + int[] var19 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + double var20 = Math.sqrt(Math.pow((double)Math.abs(this.basePos[0] - var17[0]), 2.0D) + Math.pow((double)Math.abs(this.basePos[2] - var17[2]), 2.0D)); + double var22 = var20 * this.branchSlope; + + if ((double)var17[1] - var22 > (double)var5) + { + var19[1] = var5; + } + else + { + var19[1] = (int)((double)var17[1] - var22); + } + + if (this.checkBlockLine(var19, var17) == -1) + { + var2[var4][0] = var15; + var2[var4][1] = var3; + var2[var4][2] = var16; + var2[var4][3] = var19[1]; + ++var4; + } + } + } + + --var3; + --var6; + } + } + + this.leafNodes = new int[var4][4]; + System.arraycopy(var2, 0, this.leafNodes, 0, var4); + } + + void genTreeLayer(int par1, int par2, int par3, float par4, byte par5, int par6) + { + int var7 = (int)((double)par4 + 0.618D); + byte var8 = otherCoordPairs[par5]; + byte var9 = otherCoordPairs[par5 + 3]; + int[] var10 = new int[] {par1, par2, par3}; + int[] var11 = new int[] {0, 0, 0}; + int var12 = -var7; + int var13 = -var7; + + for (var11[par5] = var10[par5]; var12 <= var7; ++var12) + { + var11[var8] = var10[var8] + var12; + var13 = -var7; + + while (var13 <= var7) + { + double var15 = Math.pow((double)Math.abs(var12) + 0.5D, 2.0D) + Math.pow((double)Math.abs(var13) + 0.5D, 2.0D); + + if (var15 > (double)(par4 * par4)) + { + ++var13; + } + else + { + var11[var9] = var10[var9] + var13; + int var14 = this.worldObj.getBlockId(var11[0], var11[1], var11[2]); + + if (var14 != 0 && var14 != Block.leaves.blockID) + { + ++var13; + } + else + { + this.setBlockAndMetadata(this.worldObj, var11[0], var11[1], var11[2], par6, 0); + ++var13; + } + } + } + } + } + + /** + * Gets the rough size of a layer of the tree. + */ + float layerSize(int par1) + { + if ((double)par1 < (double)((float)this.heightLimit) * 0.3D) + { + return -1.618F; + } + else + { + float var2 = (float)this.heightLimit / 2.0F; + float var3 = (float)this.heightLimit / 2.0F - (float)par1; + float var4; + + if (var3 == 0.0F) + { + var4 = var2; + } + else if (Math.abs(var3) >= var2) + { + var4 = 0.0F; + } + else + { + var4 = (float)Math.sqrt(Math.pow((double)Math.abs(var2), 2.0D) - Math.pow((double)Math.abs(var3), 2.0D)); + } + + var4 *= 0.5F; + return var4; + } + } + + float leafSize(int par1) + { + return par1 >= 0 && par1 < this.leafDistanceLimit ? (par1 != 0 && par1 != this.leafDistanceLimit - 1 ? 3.0F : 2.0F) : -1.0F; + } + + /** + * Generates the leaves surrounding an individual entry in the leafNodes list. + */ + void generateLeafNode(int par1, int par2, int par3) + { + int var4 = par2; + + for (int var5 = par2 + this.leafDistanceLimit; var4 < var5; ++var4) + { + float var6 = this.leafSize(var4 - par2); + //this.genTreeLayer(par1, var4, par3, var6, (byte)1, Block.leaves.blockID); + } + } + + /** + * Places a line of the specified block ID into the world from the first coordinate triplet to the second. + */ + void placeBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger, int par3) + { + int[] var4 = new int[] {0, 0, 0}; + byte var5 = 0; + byte var6; + + for (var6 = 0; var5 < 3; ++var5) + { + var4[var5] = par2ArrayOfInteger[var5] - par1ArrayOfInteger[var5]; + + if (Math.abs(var4[var5]) > Math.abs(var4[var6])) + { + var6 = var5; + } + } + + if (var4[var6] != 0) + { + byte var7 = otherCoordPairs[var6]; + byte var8 = otherCoordPairs[var6 + 3]; + byte var9; + + if (var4[var6] > 0) + { + var9 = 1; + } + else + { + var9 = -1; + } + + double var10 = (double)var4[var7] / (double)var4[var6]; + double var12 = (double)var4[var8] / (double)var4[var6]; + int[] var14 = new int[] {0, 0, 0}; + int var15 = 0; + + for (int var16 = var4[var6] + var9; var15 != var16; var15 += var9) + { + var14[var6] = MathHelper.floor_double((double)(par1ArrayOfInteger[var6] + var15) + 0.5D); + var14[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var15 * var10 + 0.5D); + var14[var8] = MathHelper.floor_double((double)par1ArrayOfInteger[var8] + (double)var15 * var12 + 0.5D); + byte var17 = 0; + int var18 = Math.abs(var14[0] - par1ArrayOfInteger[0]); + int var19 = Math.abs(var14[2] - par1ArrayOfInteger[2]); + int var20 = Math.max(var18, var19); + + if (var20 > 0) + { + if (var18 == var20) + { + var17 = 4; + } + else if (var19 == var20) + { + var17 = 8; + } + } + + this.setBlockAndMetadata(this.worldObj, var14[0], var14[1], var14[2], par3, var17); + } + } + } + + /** + * Generates the leaf portion of the tree as specified by the leafNodes list. + */ + void generateLeaves() + { + int var1 = 0; + + for (int var2 = this.leafNodes.length; var1 < var2; ++var1) + { + int var3 = this.leafNodes[var1][0]; + int var4 = this.leafNodes[var1][1]; + int var5 = this.leafNodes[var1][2]; + this.generateLeafNode(var3, var4, var5); + } + } + + /** + * Indicates whether or not a leaf node requires additional wood to be added to preserve integrity. + */ + boolean leafNodeNeedsBase(int par1) + { + return (double)par1 >= (double)this.heightLimit * 0.2D; + } + + /** + * Places the trunk for the big tree that is being generated. Able to generate double-sized trunks by changing a + * field that is always 1 to 2. + */ + void generateTrunk() + { + int var1 = this.basePos[0]; + int var2 = this.basePos[1]; + int var3 = this.basePos[1] + this.height; + int var4 = this.basePos[2]; + int[] var5 = new int[] {var1, var2, var4}; + int[] var6 = new int[] {var1, var3, var4}; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + + if (this.trunkSize == 2) + { + ++var5[0]; + ++var6[0]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + ++var5[2]; + ++var6[2]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + var5[0] += -1; + var6[0] += -1; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + } + } + + /** + * Generates additional wood blocks to fill out the bases of different leaf nodes that would otherwise degrade. + */ + void generateLeafNodeBases() + { + int var1 = 0; + int var2 = this.leafNodes.length; + + for (int[] var3 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; var1 < var2; ++var1) + { + int[] var4 = this.leafNodes[var1]; + int[] var5 = new int[] {var4[0], var4[1], var4[2]}; + var3[1] = var4[3]; + int var6 = var3[1] - this.basePos[1]; + + if (this.leafNodeNeedsBase(var6)) + { + this.placeBlockLine(var3, var5, mod_BiomesOPlenty.deadWood.blockID); + } + } + } + + /** + * Checks a line of blocks in the world from the first coordinate to triplet to the second, returning the distance + * (in blocks) before a non-air, non-leaf block is encountered and/or the end is encountered. + */ + int checkBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger) + { + int[] var3 = new int[] {0, 0, 0}; + byte var4 = 0; + byte var5; + + for (var5 = 0; var4 < 3; ++var4) + { + var3[var4] = par2ArrayOfInteger[var4] - par1ArrayOfInteger[var4]; + + if (Math.abs(var3[var4]) > Math.abs(var3[var5])) + { + var5 = var4; + } + } + + if (var3[var5] == 0) + { + return -1; + } + else + { + byte var6 = otherCoordPairs[var5]; + byte var7 = otherCoordPairs[var5 + 3]; + byte var8; + + if (var3[var5] > 0) + { + var8 = 1; + } + else + { + var8 = -1; + } + + double var9 = (double)var3[var6] / (double)var3[var5]; + double var11 = (double)var3[var7] / (double)var3[var5]; + int[] var13 = new int[] {0, 0, 0}; + int var14 = 0; + int var15; + + for (var15 = var3[var5] + var8; var14 != var15; var14 += var8) + { + var13[var5] = par1ArrayOfInteger[var5] + var14; + var13[var6] = MathHelper.floor_double((double)par1ArrayOfInteger[var6] + (double)var14 * var9); + var13[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var14 * var11); + int var16 = this.worldObj.getBlockId(var13[0], var13[1], var13[2]); + + if (var16 != 0 && var16 != Block.leaves.blockID) + { + break; + } + } + + return var14 == var15 ? -1 : Math.abs(var14); + } + } + + /** + * Returns a boolean indicating whether or not the current location for the tree, spanning basePos to to the height + * limit, is valid. + */ + boolean validTreeLocation() + { + int[] var1 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + int[] var2 = new int[] {this.basePos[0], this.basePos[1] + this.heightLimit - 1, this.basePos[2]}; + int var3 = this.worldObj.getBlockId(this.basePos[0], this.basePos[1] - 1, this.basePos[2]); + + if (var3 != 2 && var3 != 3 && var3 != mod_BiomesOPlenty.driedDirt.blockID && var3 != mod_BiomesOPlenty.mud.blockID) + { + return false; + } + else + { + int var4 = this.checkBlockLine(var1, var2); + + if (var4 == -1) + { + return true; + } + else if (var4 < 6) + { + return false; + } + else + { + this.heightLimit = var4; + return true; + } + } + } + + /** + * Rescales the generator settings, only used in WorldGenBigTree + */ + public void setScale(double par1, double par3, double par5) + { + this.heightLimitLimit = (int)(par1 * 12.0D); + + if (par1 > 0.5D) + { + this.leafDistanceLimit = 5; + } + + this.scaleWidth = par3; + this.leafDensity = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + this.worldObj = par1World; + long var6 = par2Random.nextLong(); + this.rand.setSeed(var6); + this.basePos[0] = par3; + this.basePos[1] = par4; + this.basePos[2] = par5; + + if (this.heightLimit == 0) + { + this.heightLimit = 12 + par2Random.nextInt(5); + } + + if (!this.validTreeLocation()) + { + return false; + } + else + { + this.generateLeafNodeList(); + this.generateLeaves(); + this.generateTrunk(); + this.generateLeafNodeBases(); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree2.java new file mode 100644 index 000000000..d9d988c53 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree2.java @@ -0,0 +1,122 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDeadTree2 extends WorldGenerator +{ + public WorldGenDeadTree2(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + 5; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.deadLeaves.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 1 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + int var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.deadLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.deadLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree3.java new file mode 100644 index 000000000..13b530b08 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadTree3.java @@ -0,0 +1,516 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDeadTree3 extends WorldGenerator +{ + /** + * Contains three sets of two values that provide complimentary indices for a given 'major' index - 1 and 2 for 0, 0 + * and 2 for 1, and 0 and 1 for 2. + */ + static final byte[] otherCoordPairs = new byte[] {(byte)2, (byte)0, (byte)0, (byte)1, (byte)2, (byte)1}; + + /** random seed for GenBigTree */ + Random rand = new Random(); + + /** Reference to the World object. */ + World worldObj; + int[] basePos = new int[] {0, 0, 0}; + int heightLimit = 0; + int height; + double heightAttenuation = 0.618D; + double branchDensity = 1.0D; + double branchSlope = 0.381D; + double scaleWidth = 1.0D; + double leafDensity = 1.0D; + + /** + * Currently always 1, can be set to 2 in the class constructor to generate a double-sized tree trunk for big trees. + */ + int trunkSize = 1; + + /** + * Sets the limit of the random value used to initialize the height limit. + */ + int heightLimitLimit = 12; + + /** + * Sets the distance limit for how far away the generator will populate leaves from the base leaf node. + */ + int leafDistanceLimit = 4; + + /** Contains a list of a points at which to generate groups of leaves. */ + int[][] leafNodes; + + public WorldGenDeadTree3(boolean par1) + { + super(par1); + } + + /** + * Generates a list of leaf nodes for the tree, to be populated by generateLeaves. + */ + void generateLeafNodeList() + { + this.height = (int)((double)this.heightLimit * this.heightAttenuation); + + if (this.height >= this.heightLimit) + { + this.height = this.heightLimit - 1; + } + + int var1 = (int)(1.382D + Math.pow(this.leafDensity * (double)this.heightLimit / 13.0D, 2.0D)); + + if (var1 < 1) + { + var1 = 1; + } + + int[][] var2 = new int[var1 * this.heightLimit][4]; + int var3 = this.basePos[1] + this.heightLimit - this.leafDistanceLimit; + int var4 = 1; + int var5 = this.basePos[1] + this.height; + int var6 = var3 - this.basePos[1]; + var2[0][0] = this.basePos[0]; + var2[0][1] = var3; + var2[0][2] = this.basePos[2]; + var2[0][3] = var5; + --var3; + + while (var6 >= 0) + { + int var7 = 0; + float var8 = this.layerSize(var6); + + if (var8 < 0.0F) + { + --var3; + --var6; + } + else + { + for (double var9 = 0.5D; var7 < var1; ++var7) + { + double var11 = this.scaleWidth * (double)var8 * ((double)this.rand.nextFloat() + 0.328D); + double var13 = (double)this.rand.nextFloat() * 2.0D * Math.PI; + int var15 = MathHelper.floor_double(var11 * Math.sin(var13) + (double)this.basePos[0] + var9); + int var16 = MathHelper.floor_double(var11 * Math.cos(var13) + (double)this.basePos[2] + var9); + int[] var17 = new int[] {var15, var3, var16}; + int[] var18 = new int[] {var15, var3 + this.leafDistanceLimit, var16}; + + if (this.checkBlockLine(var17, var18) == -1) + { + int[] var19 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + double var20 = Math.sqrt(Math.pow((double)Math.abs(this.basePos[0] - var17[0]), 2.0D) + Math.pow((double)Math.abs(this.basePos[2] - var17[2]), 2.0D)); + double var22 = var20 * this.branchSlope; + + if ((double)var17[1] - var22 > (double)var5) + { + var19[1] = var5; + } + else + { + var19[1] = (int)((double)var17[1] - var22); + } + + if (this.checkBlockLine(var19, var17) == -1) + { + var2[var4][0] = var15; + var2[var4][1] = var3; + var2[var4][2] = var16; + var2[var4][3] = var19[1]; + ++var4; + } + } + } + + --var3; + --var6; + } + } + + this.leafNodes = new int[var4][4]; + System.arraycopy(var2, 0, this.leafNodes, 0, var4); + } + + void genTreeLayer(int par1, int par2, int par3, float par4, byte par5, int par6) + { + int var7 = (int)((double)par4 + 0.618D); + byte var8 = otherCoordPairs[par5]; + byte var9 = otherCoordPairs[par5 + 3]; + int[] var10 = new int[] {par1, par2, par3}; + int[] var11 = new int[] {0, 0, 0}; + int var12 = -var7; + int var13 = -var7; + + for (var11[par5] = var10[par5]; var12 <= var7; ++var12) + { + var11[var8] = var10[var8] + var12; + var13 = -var7; + + while (var13 <= var7) + { + double var15 = Math.pow((double)Math.abs(var12) + 0.5D, 2.0D) + Math.pow((double)Math.abs(var13) + 0.5D, 2.0D); + + if (var15 > (double)(par4 * par4)) + { + ++var13; + } + else + { + var11[var9] = var10[var9] + var13; + int var14 = this.worldObj.getBlockId(var11[0], var11[1], var11[2]); + + if (var14 != 0 && var14 != Block.leaves.blockID) + { + ++var13; + } + else + { + this.setBlockAndMetadata(this.worldObj, var11[0], var11[1], var11[2], par6, 0); + ++var13; + } + } + } + } + } + + /** + * Gets the rough size of a layer of the tree. + */ + float layerSize(int par1) + { + if ((double)par1 < (double)((float)this.heightLimit) * 0.3D) + { + return -1.618F; + } + else + { + float var2 = (float)this.heightLimit / 2.0F; + float var3 = (float)this.heightLimit / 2.0F - (float)par1; + float var4; + + if (var3 == 0.0F) + { + var4 = var2; + } + else if (Math.abs(var3) >= var2) + { + var4 = 0.0F; + } + else + { + var4 = (float)Math.sqrt(Math.pow((double)Math.abs(var2), 2.0D) - Math.pow((double)Math.abs(var3), 2.0D)); + } + + var4 *= 0.5F; + return var4; + } + } + + float leafSize(int par1) + { + return par1 >= 0 && par1 < this.leafDistanceLimit ? (par1 != 0 && par1 != this.leafDistanceLimit - 1 ? 3.0F : 2.0F) : -1.0F; + } + + /** + * Generates the leaves surrounding an individual entry in the leafNodes list. + */ + void generateLeafNode(int par1, int par2, int par3) + { + int var4 = par2; + + for (int var5 = par2 + this.leafDistanceLimit; var4 < var5; ++var4) + { + float var6 = this.leafSize(var4 - par2); + //this.genTreeLayer(par1, var4, par3, var6, (byte)1, Block.leaves.blockID); + } + } + + /** + * Places a line of the specified block ID into the world from the first coordinate triplet to the second. + */ + void placeBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger, int par3) + { + int[] var4 = new int[] {0, 0, 0}; + byte var5 = 0; + byte var6; + + for (var6 = 0; var5 < 3; ++var5) + { + var4[var5] = par2ArrayOfInteger[var5] - par1ArrayOfInteger[var5]; + + if (Math.abs(var4[var5]) > Math.abs(var4[var6])) + { + var6 = var5; + } + } + + if (var4[var6] != 0) + { + byte var7 = otherCoordPairs[var6]; + byte var8 = otherCoordPairs[var6 + 3]; + byte var9; + + if (var4[var6] > 0) + { + var9 = 1; + } + else + { + var9 = -1; + } + + double var10 = (double)var4[var7] / (double)var4[var6]; + double var12 = (double)var4[var8] / (double)var4[var6]; + int[] var14 = new int[] {0, 0, 0}; + int var15 = 0; + + for (int var16 = var4[var6] + var9; var15 != var16; var15 += var9) + { + var14[var6] = MathHelper.floor_double((double)(par1ArrayOfInteger[var6] + var15) + 0.5D); + var14[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var15 * var10 + 0.5D); + var14[var8] = MathHelper.floor_double((double)par1ArrayOfInteger[var8] + (double)var15 * var12 + 0.5D); + byte var17 = 0; + int var18 = Math.abs(var14[0] - par1ArrayOfInteger[0]); + int var19 = Math.abs(var14[2] - par1ArrayOfInteger[2]); + int var20 = Math.max(var18, var19); + + if (var20 > 0) + { + if (var18 == var20) + { + var17 = 4; + } + else if (var19 == var20) + { + var17 = 8; + } + } + + this.setBlockAndMetadata(this.worldObj, var14[0], var14[1], var14[2], par3, var17); + } + } + } + + /** + * Generates the leaf portion of the tree as specified by the leafNodes list. + */ + void generateLeaves() + { + int var1 = 0; + + for (int var2 = this.leafNodes.length; var1 < var2; ++var1) + { + int var3 = this.leafNodes[var1][0]; + int var4 = this.leafNodes[var1][1]; + int var5 = this.leafNodes[var1][2]; + this.generateLeafNode(var3, var4, var5); + } + } + + /** + * Indicates whether or not a leaf node requires additional wood to be added to preserve integrity. + */ + boolean leafNodeNeedsBase(int par1) + { + return (double)par1 >= (double)this.heightLimit * 0.2D; + } + + /** + * Places the trunk for the big tree that is being generated. Able to generate double-sized trunks by changing a + * field that is always 1 to 2. + */ + void generateTrunk() + { + int var1 = this.basePos[0]; + int var2 = this.basePos[1]; + int var3 = this.basePos[1] + this.height; + int var4 = this.basePos[2]; + int[] var5 = new int[] {var1, var2, var4}; + int[] var6 = new int[] {var1, var3, var4}; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + + if (this.trunkSize == 2) + { + ++var5[0]; + ++var6[0]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + ++var5[2]; + ++var6[2]; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + var5[0] += -1; + var6[0] += -1; + this.placeBlockLine(var5, var6, mod_BiomesOPlenty.deadWood.blockID); + } + } + + /** + * Generates additional wood blocks to fill out the bases of different leaf nodes that would otherwise degrade. + */ + void generateLeafNodeBases() + { + int var1 = 0; + int var2 = this.leafNodes.length; + + for (int[] var3 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; var1 < var2; ++var1) + { + int[] var4 = this.leafNodes[var1]; + int[] var5 = new int[] {var4[0], var4[1], var4[2]}; + var3[1] = var4[3]; + int var6 = var3[1] - this.basePos[1]; + + if (this.leafNodeNeedsBase(var6)) + { + this.placeBlockLine(var3, var5, mod_BiomesOPlenty.deadWood.blockID); + } + } + } + + /** + * Checks a line of blocks in the world from the first coordinate to triplet to the second, returning the distance + * (in blocks) before a non-air, non-leaf block is encountered and/or the end is encountered. + */ + int checkBlockLine(int[] par1ArrayOfInteger, int[] par2ArrayOfInteger) + { + int[] var3 = new int[] {0, 0, 0}; + byte var4 = 0; + byte var5; + + for (var5 = 0; var4 < 3; ++var4) + { + var3[var4] = par2ArrayOfInteger[var4] - par1ArrayOfInteger[var4]; + + if (Math.abs(var3[var4]) > Math.abs(var3[var5])) + { + var5 = var4; + } + } + + if (var3[var5] == 0) + { + return -1; + } + else + { + byte var6 = otherCoordPairs[var5]; + byte var7 = otherCoordPairs[var5 + 3]; + byte var8; + + if (var3[var5] > 0) + { + var8 = 1; + } + else + { + var8 = -1; + } + + double var9 = (double)var3[var6] / (double)var3[var5]; + double var11 = (double)var3[var7] / (double)var3[var5]; + int[] var13 = new int[] {0, 0, 0}; + int var14 = 0; + int var15; + + for (var15 = var3[var5] + var8; var14 != var15; var14 += var8) + { + var13[var5] = par1ArrayOfInteger[var5] + var14; + var13[var6] = MathHelper.floor_double((double)par1ArrayOfInteger[var6] + (double)var14 * var9); + var13[var7] = MathHelper.floor_double((double)par1ArrayOfInteger[var7] + (double)var14 * var11); + int var16 = this.worldObj.getBlockId(var13[0], var13[1], var13[2]); + + if (var16 != 0 && var16 != Block.leaves.blockID) + { + break; + } + } + + return var14 == var15 ? -1 : Math.abs(var14); + } + } + + /** + * Returns a boolean indicating whether or not the current location for the tree, spanning basePos to to the height + * limit, is valid. + */ + boolean validTreeLocation() + { + int[] var1 = new int[] {this.basePos[0], this.basePos[1], this.basePos[2]}; + int[] var2 = new int[] {this.basePos[0], this.basePos[1] + this.heightLimit - 1, this.basePos[2]}; + int var3 = this.worldObj.getBlockId(this.basePos[0], this.basePos[1] - 1, this.basePos[2]); + + if (var3 != 2 && var3 != 3 && var3 != mod_BiomesOPlenty.smolderingGrass.blockID && var3 != mod_BiomesOPlenty.ash.blockID) + { + return false; + } + else + { + int var4 = this.checkBlockLine(var1, var2); + + if (var4 == -1) + { + return true; + } + else if (var4 < 6) + { + return false; + } + else + { + this.heightLimit = var4; + return true; + } + } + } + + /** + * Rescales the generator settings, only used in WorldGenBigTree + */ + public void setScale(double par1, double par3, double par5) + { + this.heightLimitLimit = (int)(par1 * 12.0D); + + if (par1 > 0.5D) + { + this.leafDistanceLimit = 5; + } + + this.scaleWidth = par3; + this.leafDensity = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + this.worldObj = par1World; + long var6 = par2Random.nextLong(); + this.rand.setSeed(var6); + this.basePos[0] = par3; + this.basePos[1] = par4; + this.basePos[2] = par5; + + if (this.heightLimit == 0) + { + this.heightLimit = 12 + par2Random.nextInt(5); + } + + if (!this.validTreeLocation()) + { + return false; + } + else + { + this.generateLeafNodeList(); + this.generateLeaves(); + this.generateTrunk(); + this.generateLeafNodeBases(); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadlands.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadlands.java new file mode 100644 index 000000000..e951885e3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeadlands.java @@ -0,0 +1,28 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDeadlands extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + for (int var6 = 0; var6 < 64; ++var6) + { + int var7 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var9 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var7, var8, var9) && par1World.getBlockId(var7, var8 - 1, var9) == mod_BiomesOPlenty.ash.blockID) + { + par1World.setBlockWithNotify(var7, var8, var9, Block.fire.blockID); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeciduous.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeciduous.java new file mode 100644 index 000000000..83edac4fa --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDeciduous.java @@ -0,0 +1,278 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.Direction; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDeciduous extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenDeciduous(boolean par1) + { + this(par1, 10, 0, 0, false); + } + + public WorldGenDeciduous(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(15) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + var9 = 3; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 3; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, 0); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, Block.wood.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 4), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 4), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 + 1, Block.leaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 5), par5 + 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 5), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 5), par5 + 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 5), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 5), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 5), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 5), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 5), par5 + 1, Block.leaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 6), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 6), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 6), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 6), par5 + 1, Block.leaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 7), par5 + 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 7), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 7), par5 + 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 7), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 7), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 7), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 7), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 7), par5 + 1, Block.leaves.blockID, 0); + + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 8), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 8), par5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 8), par5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 8), par5 + 1, Block.leaves.blockID, 0); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + + if (par2Random.nextInt(5) == 0 && var6 > 5) + { + for (var11 = 0; var11 < 2; ++var11) + { + for (var12 = 0; var12 < 4; ++var12) + { + if (par2Random.nextInt(4 - var11) == 0) + { + var13 = par2Random.nextInt(3); + this.setBlockAndMetadata(par1World, par3 + Direction.offsetX[Direction.footInvisibleFaceRemap[var12]], par4 + var6 - 5 + var11, par5 + Direction.offsetZ[Direction.footInvisibleFaceRemap[var12]], Block.cocoaPlant.blockID, var13 << 2 | var12); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDesertCactus.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDesertCactus.java new file mode 100644 index 000000000..a0ad69925 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDesertCactus.java @@ -0,0 +1,50 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDesertCactus extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + for (int var6 = 0; var6 < 10; ++var6) + { + int var7 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var9 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var7, var8, var9)) + { + if (!par1World.isAirBlock(var7 - 1, var8 - 1, var9)) + { + if (!par1World.isAirBlock(var7 + 1, var8 - 1, var9)) + { + if (!par1World.isAirBlock(var7, var8 - 1, var9 - 1)) + { + if (!par1World.isAirBlock(var7, var8 - 1, var9 + 1)) + { + int var10 = 1 + par2Random.nextInt(par2Random.nextInt(2) + 2); + + for (int var11 = 0; var11 < var10; ++var11) + { + if (mod_BiomesOPlenty.desertGrass.canBlockStay(par1World, var7, var8 + var11, var9)) + { + par1World.setBlock(var7, var8 - 1, var9, Block.sand.blockID); + par1World.setBlock(var7, var8 + var11, var9, Block.cactus.blockID); + } + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDriedDirt.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDriedDirt.java new file mode 100644 index 000000000..4aa239b07 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenDriedDirt.java @@ -0,0 +1,78 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenDriedDirt 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 WorldGenDriedDirt(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) == Block.sandStone.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFen1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFen1.java new file mode 100644 index 000000000..432ac0c3a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFen1.java @@ -0,0 +1,131 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +public class WorldGenFen1 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(5) + 7; + int var7 = var6 - par2Random.nextInt(2) - 3; + int var8 = var6 - var7; + int var9 = 1 + par2Random.nextInt(var8 + 1); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var11; + int var13; + int var14; + int var15; + int var18; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var18 = 0; + } + else + { + var18 = var9; + } + + for (var13 = par3 - var18; var13 <= par3 + var18 && var10; ++var13) + { + for (var14 = par5 - var18; var14 <= par5 + var18 && var10; ++var14) + { + if (var11 >= 0 && var11 < 128) + { + var15 = par1World.getBlockId(var13, var11, var14); + + Block block = Block.blocksList[var15]; + + if (var15 != 0 && (block == null || !block.isLeaves(par1World, var13, var11, var14))) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var18 = 0; + + for (var13 = par4 + var6; var13 >= par4 + var7; --var13) + { + for (var14 = par3 - var18; var14 <= par3 + var18; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var18; var16 <= par5 + var18; ++var16) + { + int var17 = var16 - par5; + + Block block = Block.blocksList[par1World.getBlockId(var14, var13, var16)]; + + if ((Math.abs(var15) != var18 || Math.abs(var17) != var18 || var18 <= 0) && + (block == null || block.canBeReplacedByLeaves(par1World, var14, var13, var16))) + { + this.setBlockAndMetadata(par1World, var14, var13, var16, Block.leaves.blockID, 0); + } + } + } + + if (var18 >= 1 && var13 == par4 + var7 + 1) + { + --var18; + } + else if (var18 < var9) + { + ++var18; + } + } + + for (var13 = 0; var13 < var6 - 1; ++var13) + { + var14 = par1World.getBlockId(par3, par4 + var13, par5); + + Block block = Block.blocksList[var14]; + + if (var14 == 0 || block == null || block.isLeaves(par1World, par3, par4 + var13, par5)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var13, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFen2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFen2.java new file mode 100644 index 000000000..64f637cdf --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFen2.java @@ -0,0 +1,144 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +public class WorldGenFen2 extends WorldGenerator +{ + public WorldGenFen2(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(12) + 10; + int var7 = 1 + par2Random.nextInt(4); + int var8 = var6 - var7; + int var9 = 2 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.deadLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlock(par1World, var17, var16, var19, mod_BiomesOPlenty.deadLeaves.blockID); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == mod_BiomesOPlenty.deadLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir1.java new file mode 100644 index 000000000..acdd1e551 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir1.java @@ -0,0 +1,973 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenFir1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 11, var4, var5 + 9) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 11, var4, var5 + 9); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 11, var4 - 1, var5 + var8 + 9) && var1.isAirBlock(var3 + var7 + 11, var4 - 2, var5 + var8 + 9)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 21, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 21, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 21, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 27, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 27, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 27, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 21, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 27, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 27, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 27, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 38, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 38, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 38, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 38, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 18, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 19, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 28, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 42, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 43, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 5, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 19, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 49, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 49, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 50, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 6, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 20, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 43, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 50, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 53, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 54, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 54, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 17, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 19, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 13, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 45, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 46, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 46, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 47, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 47, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 47, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 48, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 49, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 49, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 50, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 50, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 53, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 54, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 13, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 16, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 21, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 13, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 42, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 42, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 43, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 46, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 47, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 53, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 6, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 14, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 15, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 18, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 21, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 14, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 6, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 42, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 42, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 42, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 43, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 43, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 43, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 43, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 46, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 47, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 49, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 50, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 14, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 19, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 20, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 18, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 15, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 18, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 34, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 34, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 42, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 42, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 44, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 15, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 18, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 19, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 23, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 31, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 35, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 35, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 37, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 37, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 16, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 18, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 20, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 24, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 26, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 27, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 32, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 32, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 32, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 40, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 20, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 23, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 23, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 23, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 26, var5 + 18, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 27, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 26, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 24, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir2.java new file mode 100644 index 000000000..f950f9981 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir2.java @@ -0,0 +1,476 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenFir2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 9, var4, var5 + 8) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 9, var4, var5 + 8); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 9, var4 - 1, var5 + var8 + 8) && var1.isAirBlock(var3 + var7 + 9, var4 - 2, var5 + var8 + 8)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 13, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 22, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 22, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 5, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 6, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 6, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 28, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 10, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 11, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 12, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 13, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 9, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 7, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 8, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 12, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 16, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 17, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 14, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 10, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 11, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 13, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 9, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 15, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir3.java new file mode 100644 index 000000000..d4c996b12 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFir3.java @@ -0,0 +1,195 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenFir3 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 4) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 4); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 4) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 4)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 5, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 0, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, mod_BiomesOPlenty.firWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 8, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 1, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 2, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 7, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 3, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 4, mod_BiomesOPlenty.firLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 5, mod_BiomesOPlenty.firLeaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi1.java new file mode 100644 index 000000000..768185791 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi1.java @@ -0,0 +1,263 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenFungi1 extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenFungi1(boolean par1) + { + this(par1, 15, 2, 0, true); + } + + public WorldGenFungi1(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(5) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var81; + int var82; + int var83; + int var84; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + var81 = par1World.getBlockId(par3 - 1, par4 - 1, par5); + var82 = par1World.getBlockId(par3 + 1, par4 - 1, par5); + var83 = par1World.getBlockId(par3, par4 - 1, par5 - 1); + var84 = par1World.getBlockId(par3, par4 - 1, par5 + 1); + { + if (!(var81 == Block.grass.blockID || var81 == Block.dirt.blockID || var81 == Block.mycelium.blockID)) + { + return false; + } + + if (!(var82 == Block.grass.blockID || var82 == Block.dirt.blockID || var82 == Block.mycelium.blockID)) + { + return false; + } + + if (!(var83 == Block.grass.blockID || var83 == Block.dirt.blockID || var83 == Block.mycelium.blockID)) + { + return false; + } + + if (!(var84 == Block.grass.blockID || var84 == Block.dirt.blockID || var84 == Block.mycelium.blockID)) + { + return false; + } + } + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 6; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 3; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.leaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.leaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.leaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.leaves.blockID, this.metaLeaves); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, mod_BiomesOPlenty.willow.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, mod_BiomesOPlenty.willow.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 3; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi2.java new file mode 100644 index 000000000..edd6a7791 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi2.java @@ -0,0 +1,186 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenFungi2 extends WorldGenerator +{ + public WorldGenFungi2(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(15) + 20; + int var7 = var2.nextInt(5) + 10; + int var8 = var6 - var7; + int var9 = 3 + var2.nextInt(1); + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var14; + int var15; + int var24; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var24 = 0; + } + else + { + var24 = var9; + } + + for (var13 = var3 - var24; var13 <= var3 + var24 && var10; ++var13) + { + for (var14 = var5 - var24; var14 <= var5 + var24 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + var24 = var1.getBlockId(var3 - 1, var4 - 1, var5); + var13 = var1.getBlockId(var3, var4 - 1, var5 - 1); + var14 = var1.getBlockId(var3 - 1, var4 - 1, var5 - 1); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var24 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var13 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var14 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5, Block.dirt.blockID); + var1.setBlock(var3, var4 - 1, var5 - 1, Block.dirt.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Block.dirt.blockID); + var15 = var2.nextInt(2); + int var16 = 1; + boolean var17 = false; + int var19; + int var18; + int var20; + + for (var18 = 0; var18 <= var8; ++var18) + { + var19 = var4 + var6 - var18; + + for (var20 = var3 - var15; var20 <= var3 + var15; ++var20) + { + int var21 = var20 - var3; + + for (int var22 = var5 - var15; var22 <= var5 + var15; ++var22) + { + int var23 = var22 - var5; + + if ((Math.abs(var21) != var15 || Math.abs(var23) != var15 || var15 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var20, var19, var22)]) + { + this.setBlockAndMetadata(var1, var20, var19, var22, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20, var19, var22 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22 - 1, Block.leaves.blockID, 0); + } + } + } + + if (var15 >= var16) + { + var15 = var17 ? 1 : 0; + var17 = true; + ++var16; + + if (var16 > var9) + { + var16 = var9; + } + } + else + { + ++var15; + } + } + + var18 = var2.nextInt(3); + + for (var19 = 0; var19 < var6 - var18; ++var19) + { + var20 = var1.getBlockId(var3, var4 + var19, var5); + + if (var20 == 0 || var20 == Block.leaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var19, var5, Block.wood.blockID, 2); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5, Block.wood.blockID, 2); + this.setBlockAndMetadata(var1, var3, var4 + var19, var5 - 1, Block.wood.blockID, 2); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5 - 1, Block.wood.blockID, 2); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5 - 2, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + var19, var5 - 2, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3 + 1, var4 + var19, var5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3 + 1, var4 + var19, var5, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + var19, var5 + 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5 + 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 2, var4 + var19, var5 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 2, var4 + var19, var5, Block.leaves.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi3.java new file mode 100644 index 000000000..bd8149555 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenFungi3.java @@ -0,0 +1,193 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenFungi3 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(5) + 8; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlock(par1World, var12, var16, var14, Block.leaves.blockID); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == Block.leaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 2); + this.setBlock(par1World, par3 - 1, par4 + var16, par5, Block.leaves.blockID); + this.setBlock(par1World, par3 + 1, par4 + var16, par5, Block.leaves.blockID); + this.setBlock(par1World, par3, par4 + var16, par5 - 1, Block.leaves.blockID); + this.setBlock(par1World, par3, par4 + var16, par5 + 1, Block.leaves.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGiantFlowerRed.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGiantFlowerRed.java new file mode 100644 index 000000000..b3f83bfba --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGiantFlowerRed.java @@ -0,0 +1,80 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenGiantFlowerRed 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 != Block.grass.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, Block.dirt.blockID); + var1.setBlockAndMetadata(var3, var4 + 1, var5, mod_BiomesOPlenty.giantFlowerStem.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 2, var5, mod_BiomesOPlenty.giantFlowerStem.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 3, var5, mod_BiomesOPlenty.giantFlowerStem.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 4, var5, mod_BiomesOPlenty.giantFlowerStem.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 5, var5, mod_BiomesOPlenty.giantFlowerStem.blockID, 0); + + var1.setBlock(var3 - 1, var4 + 5, var5, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 1, var4 + 5, var5, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3, var4 + 5, var5 - 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3, var4 + 5, var5 + 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + + var1.setBlock(var3, var4 + 6, var5, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 1, var4 + 6, var5, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 1, var4 + 6, var5, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3, var4 + 6, var5 - 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3, var4 + 6, var5 + 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 2, var4 + 6, var5, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 2, var4 + 6, var5, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3, var4 + 6, var5 - 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3, var4 + 6, var5 + 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 1, var4 + 6, var5 - 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 1, var4 + 6, var5 + 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 1, var4 + 6, var5 - 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 1, var4 + 6, var5 + 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 2, var4 + 6, var5 - 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 2, var4 + 6, var5 + 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 2, var4 + 6, var5 - 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 2, var4 + 6, var5 + 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + + var1.setBlock(var3 - 1, var4 + 7, var5 - 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 1, var4 + 7, var5 + 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 1, var4 + 7, var5 - 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 1, var4 + 7, var5 + 2, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 2, var4 + 7, var5 - 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 - 2, var4 + 7, var5 + 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 2, var4 + 7, var5 - 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + var1.setBlock(var3 + 2, var4 + 7, var5 + 1, mod_BiomesOPlenty.giantFlowerRed.blockID); + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGiantFlowerYellow.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGiantFlowerYellow.java new file mode 100644 index 000000000..8331e409a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGiantFlowerYellow.java @@ -0,0 +1,65 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenGiantFlowerYellow 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 != Block.grass.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, Block.dirt.blockID); + var1.setBlockAndMetadata(var3, var4 + 1, var5, mod_BiomesOPlenty.giantFlowerStem.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 2, var5, mod_BiomesOPlenty.giantFlowerStem.blockID, 0); + + var1.setBlock(var3, var4 + 3, var5, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 - 1, var4 + 3, var5, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 + 1, var4 + 3, var5, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3, var4 + 3, var5 - 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3, var4 + 3, var5 + 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 - 1, var4 + 3, var5 - 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 - 1, var4 + 3, var5 + 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 + 1, var4 + 3, var5 - 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 + 1, var4 + 3, var5 + 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + + var1.setBlock(var3 - 1, var4 + 3, var5 - 2, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 - 1, var4 + 3, var5 + 2, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 + 1, var4 + 3, var5 - 2, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 + 1, var4 + 3, var5 + 2, mod_BiomesOPlenty.giantFlowerYellow.blockID); + + var1.setBlock(var3 - 2, var4 + 3, var5 - 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 - 2, var4 + 3, var5 + 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 + 2, var4 + 3, var5 - 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + var1.setBlock(var3 + 2, var4 + 3, var5 + 1, mod_BiomesOPlenty.giantFlowerYellow.blockID); + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrandFir1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrandFir1.java new file mode 100644 index 000000000..e909c14bc --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrandFir1.java @@ -0,0 +1,762 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenGrandFir1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 6, var4, var5 + 8) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 6, var4, var5 + 8); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 6, var4 - 1, var5 + var8 + 8) && var1.isAirBlock(var3 + var7 + 6, var4 - 2, var5 + var8 + 8)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 30, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 30, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 30, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 32, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 32, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 32, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 32, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 30, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 32, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 32, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 32, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 32, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 32, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 32, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 32, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 33, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 38, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 38, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 39, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 42, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 42, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 26, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 33, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 42, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 42, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 42, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 44, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 46, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 44, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 44, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 48, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 48, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 49, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 51, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 44, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 44, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 48, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 48, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 48, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 49, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 50, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 51, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 51, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 54, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 43, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 43, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 50, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 50, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 51, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 51, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 51, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 53, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 53, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 53, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 54, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 54, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 54, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 46, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 46, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 46, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 47, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 47, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 48, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 48, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 48, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 48, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 48, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 50, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 46, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 46, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 47, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 47, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 49, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 36, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 36, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 44, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 31, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 31, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 31, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 34, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 34, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 34, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 34, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 44, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 28, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 30, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 34, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 37, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 37, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 40, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 41, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 28, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 30, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 34, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 40, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 28, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 28, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 28, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 34, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 28, var5 + 7, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrandFir2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrandFir2.java new file mode 100644 index 000000000..abbb2c588 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrandFir2.java @@ -0,0 +1,435 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenGrandFir2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 6) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 6); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 6) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 6)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 4, Block.wood.blockID, 8); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 0, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrass.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrass.java new file mode 100644 index 000000000..ca2e1f359 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGrass.java @@ -0,0 +1,60 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenGrass extends WorldGenerator +{ + /** Stores ID for WorldGenSand */ + private int sandID; + + /** The maximum radius used when generating a patch of blocks. */ + private int radius; + + public WorldGenGrass(int par1, int par2) + { + this.sandID = par2; + this.radius = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (par1World.getBlockMaterial(par3, par4, par5) != Material.water) + { + return false; + } + else + { + int var6 = par2Random.nextInt(this.radius - 2) + 2; + byte var7 = 2; + + for (int var8 = par3 - var6; var8 <= par3 + var6; ++var8) + { + for (int var9 = par5 - var6; var9 <= par5 + var6; ++var9) + { + int var10 = var8 - par3; + int var11 = var9 - par5; + + if (var10 * var10 + var11 * var11 <= var6 * var6) + { + for (int var12 = par4 - var7; var12 <= par4 + var7; ++var12) + { + int var13 = par1World.getBlockId(var8, var12, var9); + + if (var13 == Block.sand.blockID) + { + par1World.setBlock(var8, var12, var9, this.sandID); + } + } + } + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGravel.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGravel.java new file mode 100644 index 000000000..33a2bafb8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenGravel.java @@ -0,0 +1,62 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenGravel extends WorldGenerator +{ + /** Stores ID for WorldGenSand */ + private int sandID; + + /** The maximum radius used when generating a patch of blocks. */ + private int radius; + + public WorldGenGravel(int par1, int par2) + { + this.sandID = par2; + this.radius = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (par1World.getBlockMaterial(par3, par4, par5) != Material.water) + { + return false; + } + else + { + int var6 = par2Random.nextInt(this.radius - 2) + 2; + byte var7 = 2; + + for (int var8 = par3 - var6; var8 <= par3 + var6; ++var8) + { + for (int var9 = par5 - var6; var9 <= par5 + var6; ++var9) + { + int var10 = var8 - par3; + int var11 = var9 - par5; + + if (var10 * var10 + var11 * var11 <= var6 * var6) + { + for (int var12 = par4 - var7; var12 <= par4 + var7; ++var12) + { + int var13 = par1World.getBlockId(var8, var12, var9); + + if (var13 == Block.dirt.blockID || var13 == Block.grass.blockID || var13 == Block.stone.blockID) + { + par1World.setBlock(var8, var12, var9, Block.gravel.blockID); + } + } + } + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenHeath.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenHeath.java new file mode 100644 index 000000000..d0d86c5a0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenHeath.java @@ -0,0 +1,244 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.util.Direction; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenHeath extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenHeath(boolean par1) + { + this(par1, 1, 0, 0, false); + } + + public WorldGenHeath(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(4) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 3; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, Block.wood.blockID, this.metaWood); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + + if (par2Random.nextInt(5) == 0 && var6 > 5) + { + for (var11 = 0; var11 < 2; ++var11) + { + for (var12 = 0; var12 < 4; ++var12) + { + if (par2Random.nextInt(4 - var11) == 0) + { + var13 = par2Random.nextInt(3); + this.setBlockAndMetadata(par1World, par3 + Direction.offsetX[Direction.footInvisibleFaceRemap[var12]], par4 + var6 - 5 + var11, par5 + Direction.offsetZ[Direction.footInvisibleFaceRemap[var12]], Block.cocoaPlant.blockID, var13 << 2 | var12); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenHighGrass.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenHighGrass.java new file mode 100644 index 000000000..bfb02c124 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenHighGrass.java @@ -0,0 +1,47 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenHighGrass extends WorldGenerator +{ + /** Stores ID for WorldGenTallGrass */ + private int tallGrassID; + private int tallGrassMetadata; + + public WorldGenHighGrass(int par1, int par2) + { + this.tallGrassID = par1; + this.tallGrassMetadata = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var11; + + for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + for (int var7 = 0; var7 < 128; ++var7) + { + int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var8, var9, var10) && Block.blocksList[this.tallGrassID].canBlockStay(par1World, var8, var9, var10)) + { + par1World.setBlockAndMetadata(var8, var9, var10, mod_BiomesOPlenty.highGrassBottom.blockID, 1); + par1World.setBlockAndMetadata(var8, var9 + 1, var10, mod_BiomesOPlenty.highGrassTop.blockID, 1); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenIceTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenIceTree.java new file mode 100644 index 000000000..e7c4c32c7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenIceTree.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenIceTree extends WorldGenerator +{ + public WorldGenIceTree(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(8) + 12; + int var7 = 1 + par2Random.nextInt(2); + int var8 = var6 - var7; + int var9 = 4 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.ice.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.blockSnow.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.blockSnow.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlock(par1World, var17, var16, var19, Block.ice.blockID); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == Block.ice.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, Block.ice.blockID); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenJadeTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenJadeTree.java new file mode 100644 index 000000000..f814d509d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenJadeTree.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenJadeTree extends WorldGenerator +{ + public WorldGenJadeTree(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(8) + 8; + int var7 = 2; + int var8 = var6 - var7; + int var9 = 6 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 >= 80) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 > 80) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 > 80 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 4); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLarch1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLarch1.java new file mode 100644 index 000000000..ac1305a66 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLarch1.java @@ -0,0 +1,590 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenLarch1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 7, var4, var5 + 8) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 7, var4, var5 + 8); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 7, var4 - 1, var5 + var8 + 8) && var1.isAirBlock(var3 + var7 + 7, var4 - 2, var5 + var8 + 8)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 1, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 14, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 1, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 11, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 8, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 10, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 11, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 12, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 9, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 1, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 8, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 1, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 13, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 12, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 11, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 9, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 4, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 10, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 1, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 1, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLarch2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLarch2.java new file mode 100644 index 000000000..dba82e6a8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLarch2.java @@ -0,0 +1,205 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenLarch2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 4) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 4); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 4) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 4)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 0, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 1, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 4, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 1, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 1, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, Block.wood.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, Block.leaves.blockID, 13); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLog.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLog.java new file mode 100644 index 000000000..68ecec86c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenLog.java @@ -0,0 +1,76 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenLog 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); + int var61 = var1.getBlockId(var3 - 1, var4, var5); + int var62 = var1.getBlockId(var3 + 1, var4, var5); + int var63 = var1.getBlockId(var3 - 2, var4, var5); + int var64 = var1.getBlockId(var3 + 2, var4, var5); + + if (var6 == Block.grass.blockID) + { + if (var61 == Block.grass.blockID) + { + if (var62 == Block.grass.blockID) + { + if (var63 == Block.grass.blockID) + { + if (var64 == Block.grass.blockID) + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (!var1.isAirBlock(var3, var4 + 1, var5 + var8) && !var1.isAirBlock(var3 - 1, var4 + 1, var5 + var8) && !var1.isAirBlock(var3 + 1, var4 + 1, var5 + var8)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3, var4 + 1, var5, Block.wood.blockID, 4); + var1.setBlockAndMetadata(var3 - 1, var4 + 1, var5, Block.wood.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5, Block.wood.blockID, 4); + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMangrove.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMangrove.java new file mode 100644 index 000000000..1c3d6f6bd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMangrove.java @@ -0,0 +1,255 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMangrove extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenMangrove(boolean par1) + { + this(par1, 4, 0, 0, false); + } + + public WorldGenMangrove(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.mangroveLeaves.blockID && var12 != Block.sand.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != mod_BiomesOPlenty.mangroveWood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.sand.blockID || var8 == Block.waterStill.blockID || var8 == Block.waterMoving.blockID) && par4 < 256 - var6 - 1) + { + var9 = 1; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, mod_BiomesOPlenty.mangroveLeaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == mod_BiomesOPlenty.mangroveLeaves.blockID) + { + this.setBlock(par1World, par3, par4 + var11, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 1, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 2, par5, mod_BiomesOPlenty.mangroveWood.blockID); + + this.setBlock(par1World, par3 - 1, par4 - 2, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3 + 1, par4 - 2, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 2, par5 - 1, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 2, par5 + 1, mod_BiomesOPlenty.mangroveWood.blockID); + + this.setBlock(par1World, par3 - 1, par4 - 3, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3 + 1, par4 - 3, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 3, par5 - 1, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 3, par5 + 1, mod_BiomesOPlenty.mangroveWood.blockID); + + this.setBlock(par1World, par3 - 2, par4 - 4, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3 + 2, par4 - 4, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 4, par5 - 2, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 4, par5 + 2, mod_BiomesOPlenty.mangroveWood.blockID); + + this.setBlock(par1World, par3 - 2, par4 - 5, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3 + 2, par4 - 5, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 5, par5 - 2, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 5, par5 + 2, mod_BiomesOPlenty.mangroveWood.blockID); + + this.setBlock(par1World, par3 - 3, par4 - 6, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3 + 3, par4 - 6, par5, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 6, par5 - 3, mod_BiomesOPlenty.mangroveWood.blockID); + this.setBlock(par1World, par3, par4 - 6, par5 + 3, mod_BiomesOPlenty.mangroveWood.blockID); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == mod_BiomesOPlenty.mangroveLeaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMaple.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMaple.java new file mode 100644 index 000000000..983dfb1cb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMaple.java @@ -0,0 +1,122 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMaple extends WorldGenerator +{ + public WorldGenMaple(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + 5; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.redLeaves.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 1 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + int var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.redLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.redLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMarsh.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMarsh.java new file mode 100644 index 000000000..73179bc18 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMarsh.java @@ -0,0 +1,146 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMarsh extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par3; + int var89; + + for (int var7 = par5; par4 < 63; ++par4) + { + var89 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var89 == Block.waterStill.blockID) && par4 < 256 - var6 - 1) + { + for (int var8 = 2; var8 <= 5; ++var8) + { + par1World.setBlock(par3, par4, par5, Block.grass.blockID); + par1World.setBlock(par3 - 1, par4, par5, Block.grass.blockID); + par1World.setBlock(par3 + 1, par4, par5, Block.grass.blockID); + par1World.setBlock(par3, par4, par5 - 1, Block.grass.blockID); + par1World.setBlock(par3, par4, par5 + 1, Block.grass.blockID); + par1World.setBlock(par3, par4 - 1, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 2, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 3, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 4, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 5, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 6, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 7, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 8, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 9, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 10, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 11, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 12, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 13, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 14, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 15, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 16, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 17, par5, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 1, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 1, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 1, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 1, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 2, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 2, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 2, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 2, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 3, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 3, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 3, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 3, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 4, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 4, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 4, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 4, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 5, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 5, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 5, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 5, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 6, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 6, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 6, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 6, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 7, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 7, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 7, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 7, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 8, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 8, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 8, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 8, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 9, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 9, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 9, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 9, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 10, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 10, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 10, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 10, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 11, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 11, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 11, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 11, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 12, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 12, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 12, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 12, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 13, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 13, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 13, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 13, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 14, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 14, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 14, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 14, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 15, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 15, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 15, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 15, par5 + 1, Block.dirt.blockID); + par1World.setBlock(par3 - 1, par4 - 16, par5, Block.dirt.blockID); + par1World.setBlock(par3 + 1, par4 - 16, par5, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 16, par5 - 1, Block.dirt.blockID); + par1World.setBlock(par3, par4 - 16, par5 + 1, Block.dirt.blockID); + + if (par2Random.nextInt(3) == 0) + { + par1World.setBlockAndMetadata(par3, par4 + 1, par5, mod_BiomesOPlenty.highGrassBottom.blockID, 1); + par1World.setBlockAndMetadata(par3, par4 + 2, par5, mod_BiomesOPlenty.highGrassTop.blockID, 1); + par1World.setBlockAndMetadata(par3 - 1, par4 + 1, par5, mod_BiomesOPlenty.highGrassBottom.blockID, 1); + par1World.setBlockAndMetadata(par3 - 1, par4 + 2, par5, mod_BiomesOPlenty.highGrassTop.blockID, 1); + par1World.setBlockAndMetadata(par3 + 1, par4 + 1, par5, mod_BiomesOPlenty.highGrassBottom.blockID, 1); + par1World.setBlockAndMetadata(par3 + 1, par4 + 2, par5, mod_BiomesOPlenty.highGrassTop.blockID, 1); + par1World.setBlockAndMetadata(par3, par4 + 1, par5 - 1, mod_BiomesOPlenty.highGrassBottom.blockID, 1); + par1World.setBlockAndMetadata(par3, par4 + 2, par5 - 1, mod_BiomesOPlenty.highGrassTop.blockID, 1); + par1World.setBlockAndMetadata(par3, par4 + 1, par5 + 1, mod_BiomesOPlenty.highGrassBottom.blockID, 1); + par1World.setBlockAndMetadata(par3, par4 + 2, par5 + 1, mod_BiomesOPlenty.highGrassTop.blockID, 1); + } + else + { + par1World.setBlockAndMetadata(par3, par4 + 1, par5, Block.tallGrass.blockID, 1); + par1World.setBlockAndMetadata(par3 - 1, par4 + 1, par5, Block.tallGrass.blockID, 1); + par1World.setBlockAndMetadata(par3 + 1, par4 + 1, par5, Block.tallGrass.blockID, 1); + par1World.setBlockAndMetadata(par3, par4 + 1, par5 - 1, Block.tallGrass.blockID, 1); + par1World.setBlockAndMetadata(par3, par4 + 1, par5 + 1, Block.tallGrass.blockID, 1); + } + break; + } + } + else + { + par3 = var6 + par2Random.nextInt(4) - par2Random.nextInt(4); + par5 = var7 + par2Random.nextInt(4) - par2Random.nextInt(4); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMelon.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMelon.java new file mode 100644 index 000000000..ea01f62b3 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMelon.java @@ -0,0 +1,27 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMelon extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + for (int var6 = 0; var6 < 64; ++var6) + { + int var7 = var3 + var2.nextInt(8) - var2.nextInt(8); + int var8 = var4 + var2.nextInt(4) - var2.nextInt(4); + int var9 = var5 + var2.nextInt(8) - var2.nextInt(8); + + if (var1.isAirBlock(var7, var8, var9) && var1.getBlockId(var7, var8 - 1, var9) == Block.grass.blockID && Block.melon.canPlaceBlockAt(var1, var7, var8, var9)) + { + var1.setBlock(var7, var8, var9, Block.melon.blockID); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMesa.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMesa.java new file mode 100644 index 000000000..93c527dd8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMesa.java @@ -0,0 +1,79 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMesa 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 WorldGenMesa(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) == mod_BiomesOPlenty.redRock.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMoor.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMoor.java new file mode 100644 index 000000000..f2157890f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMoor.java @@ -0,0 +1,60 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMoor extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par3; + int var89; + int var90; + int var91; + int var92; + int var93; + + for (int var7 = par5; par4 < 128; ++par4) + { + var89 = par1World.getBlockId(par3, par4, par5); + var90 = par1World.getBlockId(par3 - 1, par4, par5); + var91 = par1World.getBlockId(par3 + 1, par4, par5); + var92 = par1World.getBlockId(par3, par4, par5 - 1); + var93 = par1World.getBlockId(par3, par4, par5 + 1); + + if ((var89 == Block.grass.blockID) && par4 < 256 - var6 - 1) + { + if (var90 == Block.grass.blockID) + { + if (var91 == Block.grass.blockID) + { + if (var92 == Block.grass.blockID) + { + if (var93 == Block.grass.blockID) + { + for (int var8 = 2; var8 <= 5; ++var8) + { + par1World.setBlock(par3, par4, par5, Block.waterStill.blockID); + par1World.setBlock(par3, par4 + 1, par5, 0); + break; + } + } + } + } + } + } + else + { + par3 = var6 + par2Random.nextInt(4) - par2Random.nextInt(4); + par5 = var7 + par2Random.nextInt(4) - par2Random.nextInt(4); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMoss.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMoss.java new file mode 100644 index 000000000..e873b0de5 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMoss.java @@ -0,0 +1,39 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.block.Block; +import net.minecraft.util.Direction; +import net.minecraft.util.Facing; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMoss extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par3; + + for (int var7 = par5; par4 < 80; ++par4) + { + if (par1World.isAirBlock(par3, par4, par5)) + { + for (int var8 = 2; var8 <= 5; ++var8) + { + if (mod_BiomesOPlenty.moss.canPlaceBlockOnSide(par1World, par3, par4, par5, var8)) + { + par1World.setBlockAndMetadata(par3, par4, par5, mod_BiomesOPlenty.moss.blockID, 1 << Direction.vineGrowth[Facing.faceToSide[var8]]); + break; + } + } + } + else + { + par3 = var6 + par2Random.nextInt(4) - par2Random.nextInt(4); + par5 = var7 + par2Random.nextInt(4) - par2Random.nextInt(4); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMud.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMud.java new file mode 100644 index 000000000..8110e2a6e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMud.java @@ -0,0 +1,62 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMud extends WorldGenerator +{ + /** Stores ID for WorldGenSand */ + private int sandID; + + /** The maximum radius used when generating a patch of blocks. */ + private int radius; + + public WorldGenMud(int par1, int par2) + { + this.sandID = par2; + this.radius = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (par1World.getBlockMaterial(par3, par4, par5) != Material.water) + { + return false; + } + else + { + int var6 = par2Random.nextInt(this.radius - 2) + 2; + byte var7 = 2; + + for (int var8 = par3 - var6; var8 <= par3 + var6; ++var8) + { + for (int var9 = par5 - var6; var9 <= par5 + var6; ++var9) + { + int var10 = var8 - par3; + int var11 = var9 - par5; + + if (var10 * var10 + var11 * var11 <= var6 * var6) + { + for (int var12 = par4 - var7; var12 <= par4 + var7; ++var12) + { + int var13 = par1World.getBlockId(var8, var12, var9); + + if (var13 == Block.dirt.blockID || var13 == Block.grass.blockID) + { + par1World.setBlock(var8, var12, var9, mod_BiomesOPlenty.mud.blockID); + } + } + } + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMycelium.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMycelium.java new file mode 100644 index 000000000..d1e813a67 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMycelium.java @@ -0,0 +1,78 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMycelium 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 WorldGenMycelium(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) == Block.grass.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMystic1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMystic1.java new file mode 100644 index 000000000..dc3b356c0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMystic1.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMystic1 extends WorldGenerator +{ + public WorldGenMystic1(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(6) + 10; + int var7 = 4 + par2Random.nextInt(3); + int var8 = var6 - var7; + int var9 = 2 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 0); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMystic2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMystic2.java new file mode 100644 index 000000000..39b799233 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenMystic2.java @@ -0,0 +1,145 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenMystic2 extends WorldGenerator +{ + public WorldGenMystic2(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(15) + 15; + int var7 = var2.nextInt(3) + 5; + int var8 = var6 - var7; + int var9 = 1 + var2.nextInt(3); + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = var3 - var21; var13 <= var3 + var21 && var10; ++var13) + { + for (int var14 = var5 - var21; var14 <= var5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.blueLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var21 = var2.nextInt(2); + var13 = 1; + boolean var22 = false; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = var4 + var6 - var15; + + for (var17 = var3 - var21; var17 <= var3 + var21; ++var17) + { + int var18 = var17 - var3; + + for (int var19 = var5 - var21; var19 <= var5 + var21; ++var19) + { + int var20 = var19 - var5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var17, var16, var19)]) + { + this.setBlock(var1, var17, var16, var19, mod_BiomesOPlenty.blueLeaves.blockID); + } + } + } + + if (var21 >= var13) + { + var21 = var22 ? 1 : 0; + var22 = true; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = var2.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = var1.getBlockId(var3, var4 + var16, var5); + + if (var17 == 0 || var17 == mod_BiomesOPlenty.blueLeaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var16, var5, mod_BiomesOPlenty.magicWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenNorwaySpruce1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenNorwaySpruce1.java new file mode 100644 index 000000000..1400eb9d7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenNorwaySpruce1.java @@ -0,0 +1,293 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenNorwaySpruce1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 8, var4, var5 + 6) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 8, var4, var5 + 6); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 8, var4 - 1, var5 + var8 + 6) && var1.isAirBlock(var3 + var7 + 8, var4 - 2, var5 + var8 + 6)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 1, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 13, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 10, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 8, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 8, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 12, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 11, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 9, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 10, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 7, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 8, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 7, Block.leaves.blockID, 5); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenNorwaySpruce2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenNorwaySpruce2.java new file mode 100644 index 000000000..66ede463e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenNorwaySpruce2.java @@ -0,0 +1,119 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenNorwaySpruce2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 3) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 3); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 3) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 3)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 1, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 1, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 1, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 4, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 1, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 4, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 1, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 2, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 4, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 4, Block.wood.blockID, 1); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 1, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 7, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 4, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 5, Block.leaves.blockID, 5); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 4, Block.leaves.blockID, 13); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 5, Block.leaves.blockID, 13); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOasis.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOasis.java new file mode 100644 index 000000000..29dab3801 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOasis.java @@ -0,0 +1,62 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenOasis extends WorldGenerator +{ + /** Stores ID for WorldGenSand */ + private int sandID; + + /** The maximum radius used when generating a patch of blocks. */ + private int radius; + + public WorldGenOasis(int par1, int par2) + { + this.sandID = par2; + this.radius = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (par1World.getBlockMaterial(par3, par4, par5) != Material.water) + { + return false; + } + else + { + int var6 = par2Random.nextInt(this.radius - 2) + 2; + byte var7 = 2; + + for (int var8 = par3 - var6; var8 <= par3 + var6; ++var8) + { + for (int var9 = par5 - var6; var9 <= par5 + var6; ++var9) + { + int var10 = var8 - par3; + int var11 = var9 - par5; + + if (var10 * var10 + var11 * var11 <= var6 * var6) + { + for (int var12 = par4 - var7; var12 <= par4 + var7; ++var12) + { + int var13 = par1World.getBlockId(var8, var12, var9); + + if (var13 == Block.sand.blockID || var13 == mod_BiomesOPlenty.redRock.blockID) + { + par1World.setBlock(var8, var12, var9, this.sandID); + } + } + } + } + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOminous1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOminous1.java new file mode 100644 index 000000000..42d40fd92 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOminous1.java @@ -0,0 +1,145 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenOminous1 extends WorldGenerator +{ + public WorldGenOminous1(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(6) + 14; + int var7 = 4 + par2Random.nextInt(3); + int var8 = var6 - var7; + int var9 = 2 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.darkLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, mod_BiomesOPlenty.darkLeaves.blockID, 0); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == mod_BiomesOPlenty.darkLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.darkWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOminous2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOminous2.java new file mode 100644 index 000000000..c4ab6970c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOminous2.java @@ -0,0 +1,189 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenOminous2 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(4) + 5; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.darkLeaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.darkLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.darkLeaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.darkWood.blockID, 0); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == mod_BiomesOPlenty.darkLeaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.treeMoss.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.treeMoss.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOriginTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOriginTree.java new file mode 100644 index 000000000..32e15bc32 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOriginTree.java @@ -0,0 +1,122 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenOriginTree extends WorldGenerator +{ + public WorldGenOriginTree(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + 5; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.originLeaves.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == mod_BiomesOPlenty.originGrass.blockID || var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 1 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + int var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.originLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.originLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutback.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutback.java new file mode 100644 index 000000000..bbc470dc8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutback.java @@ -0,0 +1,47 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenOutback extends WorldGenerator +{ + /** Stores ID for WorldGenTallGrass */ + private int tallGrassID; + private int tallGrassMetadata; + + public WorldGenOutback(int par1, int par2) + { + this.tallGrassID = par1; + this.tallGrassMetadata = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var11; + + for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + for (int var7 = 0; var7 < 128; ++var7) + { + int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var8, var9, var10) && par1World.getBlockId(var8, var9 - 1, var10) == mod_BiomesOPlenty.hardSand.blockID) + { + par1World.setBlockAndMetadata(var8, var9 - 1, var10, Block.grass.blockID, 0); + par1World.setBlockAndMetadata(var8, var9, var10, mod_BiomesOPlenty.mediumGrass.blockID, 1); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutbackShrub.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutbackShrub.java new file mode 100644 index 000000000..acd475f18 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutbackShrub.java @@ -0,0 +1,61 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenOutbackShrub extends WorldGenerator +{ + private int field_76527_a; + private int field_76526_b; + + public WorldGenOutbackShrub(int par1, int par2) + { + this.field_76526_b = par1; + this.field_76527_a = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var15; + + for (boolean var6 = false; ((var15 = par1World.getBlockId(par3, par4, par5)) == 0 || var15 == mod_BiomesOPlenty.acaciaLeaves.blockID) && par4 > 0; --par4) + { + ; + } + + int var7 = par1World.getBlockId(par3, par4, par5); + + if (var7 == mod_BiomesOPlenty.hardSand.blockID) + { + ++par4; + this.setBlockAndMetadata(par1World, par3, par4, par5, mod_BiomesOPlenty.acaciaWood.blockID, this.field_76526_b); + + for (int var8 = par4; var8 <= par4 + 1; ++var8) + { + int var9 = var8 - par4; + int var10 = 2 - var9; + + for (int var11 = par3 - var10; var11 <= par3 + var10; ++var11) + { + int var12 = var11 - par3; + + for (int var13 = par5 - var10; var13 <= par5 + var10; ++var13) + { + int var14 = var13 - par5; + + if ((Math.abs(var12) != var10 || Math.abs(var14) != var10 || par2Random.nextInt(2) != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var11, var8, var13)]) + { + this.setBlockAndMetadata(par1World, var11, var8, var13, mod_BiomesOPlenty.acaciaLeaves.blockID, this.field_76527_a); + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutbackTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutbackTree.java new file mode 100644 index 000000000..2ad7b2dce --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenOutbackTree.java @@ -0,0 +1,50 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenOutbackTree 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 != mod_BiomesOPlenty.hardSand.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, Block.dirt.blockID); + var1.setBlock(var3, var4 + 1, var5, mod_BiomesOPlenty.acaciaWood.blockID); + var1.setBlock(var3, var4 + 2, var5, mod_BiomesOPlenty.acaciaWood.blockID); + var1.setBlock(var3, var4 + 3, var5, mod_BiomesOPlenty.acaciaWood.blockID); + var1.setBlock(var3 + 1, var4 + 3, var5, mod_BiomesOPlenty.acaciaLeaves.blockID); + var1.setBlock(var3 - 1, var4 + 3, var5, mod_BiomesOPlenty.acaciaLeaves.blockID); + var1.setBlock(var3, var4 + 3, var5 + 1, mod_BiomesOPlenty.acaciaLeaves.blockID); + var1.setBlock(var3, var4 + 3, var5 - 1, mod_BiomesOPlenty.acaciaLeaves.blockID); + var1.setBlock(var3, var4 + 4, var5, mod_BiomesOPlenty.acaciaLeaves.blockID); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalm1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalm1.java new file mode 100644 index 000000000..975594900 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalm1.java @@ -0,0 +1,124 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPalm1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 17, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 22, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 18, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 22, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 22, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 5, Block.cocoaPlant.blockID, 11); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 10, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 4, Block.cocoaPlant.blockID, 8); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 6, Block.cocoaPlant.blockID, 10); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 4, Block.cocoaPlant.blockID, 8); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 0, mod_BiomesOPlenty.palmLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, Block.cocoaPlant.blockID, 9); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalm2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalm2.java new file mode 100644 index 000000000..3b8748217 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalm2.java @@ -0,0 +1,115 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPalm2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 10, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 15, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, Block.cocoaPlant.blockID, 11); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 10, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.cocoaPlant.blockID, 10); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, Block.cocoaPlant.blockID, 8); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, mod_BiomesOPlenty.palmWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 0, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 8, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 9, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree.java new file mode 100644 index 000000000..794a39c7c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree.java @@ -0,0 +1,91 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPalmTree 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 != Block.grass.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, Block.dirt.blockID); + var1.setBlockAndMetadata(var3, var4 + 1, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 2, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 3, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 4, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 5, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 7, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 8, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 9, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 10, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 11, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 12, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 13, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 14, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 16, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 + 4, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 14, var5 + 5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 1, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 2, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 3, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 4, var4 + 15, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 5, var4 + 14, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 - 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 15, var5 - 4, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 14, var5 - 5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 1, var4 + 15, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 1, var4 + 15, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 2, var4 + 15, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 2, var4 + 15, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 - 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 3, var4 + 14, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 3, var4 + 14, var5 - 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree1.java new file mode 100644 index 000000000..17dab4e5b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree1.java @@ -0,0 +1,90 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPalmTree1 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 != Block.grass.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, Block.dirt.blockID); + var1.setBlockAndMetadata(var3, var4 + 1, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 2, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 3, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 4, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 5, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 7, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 8, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 9, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 10, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 11, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 12, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + + var1.setBlockAndMetadata(var3 - 3, var4 + 11, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 11, var5 - 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 11, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 2, var4 + 11, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 11, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 11, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 2, var4 + 12, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 12, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 12, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 1, var4 + 12, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 12, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 12, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 1, var4 + 13, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 1, var4 + 13, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 2, var4 + 12, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 2, var4 + 12, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 2, var4 + 14, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 14, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 14, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 13, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree2.java new file mode 100644 index 000000000..5186477f7 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree2.java @@ -0,0 +1,61 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPalmTree2 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 != Block.sand.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, Block.dirt.blockID); + var1.setBlockAndMetadata(var3, var4 + 1, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 2, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 3, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 4, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 5, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 7, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 5, var5 + 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 1, var4 + 6, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 2, var4 + 6, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 3, var4 + 5, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 5, var5 - 3, mod_BiomesOPlenty.palmLeaves.blockID, 0); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree3.java new file mode 100644 index 000000000..24b7cbe5e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPalmTree3.java @@ -0,0 +1,77 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPalmTree3 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 != Block.grass.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, Block.dirt.blockID); + var1.setBlockAndMetadata(var3, var4 + 1, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 2, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 3, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 4, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 5, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 6, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 7, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 8, var5, mod_BiomesOPlenty.palmWood.blockID, 0); + + var1.setBlockAndMetadata(var3 - 2, var4 + 7, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 7, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 7, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 1, var4 + 8, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 8, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 8, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 2, var4 + 8, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 2, var4 + 8, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 1, var4 + 9, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 - 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 - 1, var4 + 9, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 1, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3, var4 + 9, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + + var1.setBlockAndMetadata(var3 - 2, var4 + 10, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 10, var5 - 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + var1.setBlockAndMetadata(var3, var4 + 10, var5 + 2, mod_BiomesOPlenty.palmLeaves.blockID, 0); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPaperBirch1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPaperBirch1.java new file mode 100644 index 000000000..1bba13a8b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPaperBirch1.java @@ -0,0 +1,236 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPaperBirch1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 3, var4, var5 + 4) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 3, var4, var5 + 4); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 3, var4 - 1, var5 + var8 + 4) && var1.isAirBlock(var3 + var7 + 3, var4 - 2, var5 + var8 + 4)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 8, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 4, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 4, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 3, Block.leaves.blockID, 14); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPaperBirch2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPaperBirch2.java new file mode 100644 index 000000000..2ec64406f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPaperBirch2.java @@ -0,0 +1,109 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPaperBirch2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 2, var4, var5 + 2) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 2, var4, var5 + 2); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 2, var4 - 1, var5 + var8 + 2) && var1.isAirBlock(var3 + var7 + 2, var4 - 2, var5 + var8 + 2)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 2, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 3, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 0, var4 + 4, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 1, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 2, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 0, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 0, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 1, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 0, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 0, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 0, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 0, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 4, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 0, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 2, Block.leaves.blockID, 14); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPit.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPit.java new file mode 100644 index 000000000..dec16629f --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPit.java @@ -0,0 +1,69 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPit extends WorldGenerator +{ + /** + * The Block ID that the generator is allowed to replace while generating the terrain. + */ + private int replaceID; + + public WorldGenPit(int par1) + { + this.replaceID = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + if (par1World.isAirBlock(par3, par4, par5) && par1World.getBlockId(par3, par4 - 1, par5) == this.replaceID) + { + int var6 = par2Random.nextInt(32) + 32; + int var7 = par2Random.nextInt(4) + 2; + int var8; + int var9; + int var10; + int var11; + + for (var8 = par3 - var7; var8 <= par3 + var7; ++var8) + { + for (var9 = par5 - var7; var9 <= par5 + var7; ++var9) + { + var10 = var8 - par3; + var11 = var9 - par5; + + if (var10 * var10 + var11 * var11 <= var7 * var7 + 1 && par1World.getBlockId(var8, par4 - 1, var9) != this.replaceID) + { + return false; + } + } + } + + for (var8 = par4; var8 > par4 - var6 && var8 > 20; --var8) + { + for (var9 = par3 - var7; var9 <= par3 + var7; ++var9) + { + for (var10 = par5 - var7; var10 <= par5 + var7; ++var10) + { + var11 = var9 - par3; + int var12 = var10 - par5; + + if (var11 * var11 + var12 * var12 <= var7 * var7 + 1) + { + par1World.setBlock(var9, var8, var10, 0); + } + } + } + } + + return true; + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPoisonIvy.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPoisonIvy.java new file mode 100644 index 000000000..17dabc1c6 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPoisonIvy.java @@ -0,0 +1,35 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPoisonIvy extends WorldGenerator +{ + /** The ID of the plant block used in this plant generator. */ + private int plantBlockId; + + public WorldGenPoisonIvy(int par1) + { + this.plantBlockId = par1; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + for (int var6 = 0; var6 < 64; ++var6) + { + int var7 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var8 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var9 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var7, var8, var9) && Block.blocksList[this.plantBlockId].canBlockStay(par1World, var7, var8, var9)) + { + par1World.setBlockAndMetadata(var7, var8, var9, this.plantBlockId, 1); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPotatoes.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPotatoes.java new file mode 100644 index 000000000..6a7cd7da0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPotatoes.java @@ -0,0 +1,61 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPotatoes extends WorldGenerator +{ + /** Stores ID for WorldGenTallGrass */ + private int tallGrassID; + private int tallGrassMetadata; + + public WorldGenPotatoes(int par1, int par2) + { + this.tallGrassID = par1; + this.tallGrassMetadata = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var11; + + for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + for (int var7 = 0; var7 < 128; ++var7) + { + int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var99 = par2Random.nextInt(7); + + if (par1World.getBlockMaterial(var8 - 1, var9 - 1, var10) != Material.water) + { + if (par1World.getBlockMaterial(var8 + 1, var9 - 1, var10) != Material.water) + { + if (par1World.getBlockMaterial(var8, var9 - 1, var10 - 1) != Material.water) + { + if (par1World.getBlockMaterial(var8, var9 - 1, var10 + 1) != Material.water) + { + return false; + } + } + } + } + + if (par1World.isAirBlock(var8, var9, var10) && Block.blocksList[this.tallGrassID].canBlockStay(par1World, var8, var9, var10)) + { + par1World.setBlock(var8, var9 - 1, var10, Block.tilledField.blockID); + par1World.setBlockAndMetadata(var8, var9, var10, Block.potato.blockID, var99); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPrairie.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPrairie.java new file mode 100644 index 000000000..2d5930655 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPrairie.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPrairie extends WorldGenerator +{ + public WorldGenPrairie(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = 6; + int var7 = 2; + int var8 = var6 - var7; + int var9 = 3; + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 0); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedLandPortal.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedLandPortal.java new file mode 100644 index 000000000..385dbab93 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedLandPortal.java @@ -0,0 +1,61 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPromisedLandPortal extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + var1.setBlock(0, 64, 0, mod_BiomesOPlenty.promisedPortal.blockID); + var1.setBlock(0, 64, 1, mod_BiomesOPlenty.promisedPortal.blockID); + var1.setBlock(1, 64, 0, mod_BiomesOPlenty.promisedPortal.blockID); + var1.setBlock(0, 64, 1, mod_BiomesOPlenty.promisedPortal.blockID); + var1.setBlock(0, 65, 0, 0); + var1.setBlock(0, 65, 1, 0); + var1.setBlock(1, 65, 0, 0); + var1.setBlock(0, 65, 1, 0); + var1.setBlock(0, 66, 0, 0); + var1.setBlock(0, 66, 1, 0); + var1.setBlock(1, 66, 0, 0); + var1.setBlock(0, 66, 1, 0); + var1.setBlock(0, 67, 0, 0); + var1.setBlock(0, 67, 1, 0); + var1.setBlock(1, 67, 0, 0); + var1.setBlock(0, 67, 1, 0); + var1.setBlock(0, 68, 0, 0); + var1.setBlock(0, 68, 1, 0); + var1.setBlock(1, 68, 0, 0); + var1.setBlock(0, 68, 1, 0); + var1.setBlock(0, 69, 0, 0); + var1.setBlock(0, 69, 1, 0); + var1.setBlock(1, 69, 0, 0); + var1.setBlock(0, 69, 1, 0); + var1.setBlock(0, 70, 0, 0); + var1.setBlock(0, 70, 1, 0); + var1.setBlock(1, 70, 0, 0); + var1.setBlock(0, 70, 1, 0); + var1.setBlock(0, 71, 0, 0); + var1.setBlock(0, 71, 1, 0); + var1.setBlock(1, 71, 0, 0); + var1.setBlock(0, 71, 1, 0); + var1.setBlock(0, 72, 0, 0); + var1.setBlock(0, 72, 1, 0); + var1.setBlock(1, 72, 0, 0); + var1.setBlock(0, 72, 1, 0); + var1.setBlock(0, 73, 0, 0); + var1.setBlock(0, 73, 1, 0); + var1.setBlock(1, 73, 0, 0); + var1.setBlock(0, 73, 1, 0); + var1.setBlock(0, 74, 0, 0); + var1.setBlock(0, 74, 1, 0); + var1.setBlock(1, 74, 0, 0); + var1.setBlock(0, 74, 1, 0); + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedShrub.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedShrub.java new file mode 100644 index 000000000..0f2dbed03 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedShrub.java @@ -0,0 +1,61 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPromisedShrub extends WorldGenerator +{ + private int field_76527_a; + private int field_76526_b; + + public WorldGenPromisedShrub(int par1, int par2) + { + this.field_76526_b = par1; + this.field_76527_a = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var15; + + for (boolean var6 = false; ((var15 = par1World.getBlockId(par3, par4, par5)) == 0 || var15 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + int var7 = par1World.getBlockId(par3, par4, par5); + + if (var7 == mod_BiomesOPlenty.holyGrass.blockID) + { + ++par4; + this.setBlockAndMetadata(par1World, par3, par4, par5, Block.wood.blockID, this.field_76526_b); + + for (int var8 = par4; var8 <= par4 + 1; ++var8) + { + int var9 = var8 - par4; + int var10 = 2 - var9; + + for (int var11 = par3 - var10; var11 <= par3 + var10; ++var11) + { + int var12 = var11 - par3; + + for (int var13 = par5 - var10; var13 <= par5 + var10; ++var13) + { + int var14 = var13 - par5; + + if ((Math.abs(var12) != var10 || Math.abs(var14) != var10 || par2Random.nextInt(2) != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var11, var8, var13)]) + { + this.setBlockAndMetadata(par1World, var11, var8, var13, Block.leaves.blockID, this.field_76527_a); + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree.java new file mode 100644 index 000000000..5feabd824 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree.java @@ -0,0 +1,144 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPromisedTree extends WorldGenerator +{ + public WorldGenPromisedTree(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(9) + 9; + int var7 = 2 + par2Random.nextInt(4); + int var8 = var6 - var7; + int var9 = 2 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.holyLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == mod_BiomesOPlenty.holyGrass.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, mod_BiomesOPlenty.holyGrass.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, mod_BiomesOPlenty.holyLeaves.blockID, 0); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == mod_BiomesOPlenty.holyLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.holyWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree2.java new file mode 100644 index 000000000..6f76513d9 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree2.java @@ -0,0 +1,122 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPromisedTree2 extends WorldGenerator +{ + public WorldGenPromisedTree2(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(3) + 5; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.blueLeaves.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == mod_BiomesOPlenty.holyGrass.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, mod_BiomesOPlenty.holyGrass.blockID); + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 1 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + int var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.blueLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.blueLeaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.magicWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree3.java new file mode 100644 index 000000000..87f0520e1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedTree3.java @@ -0,0 +1,180 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPromisedTree3 extends WorldGenerator +{ + public WorldGenPromisedTree3(boolean var1) + { + super(var1); + } + + 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 var8 = var6 - var7; + int var9 = 2 + var2.nextInt(2); + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var14; + int var15; + int var24; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var24 = 0; + } + else + { + var24 = var9; + } + + for (var13 = var3 - var24; var13 <= var3 + var24 && var10; ++var13) + { + for (var14 = var5 - var24; var14 <= var5 + var24 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + var24 = var1.getBlockId(var3 - 1, var4 - 1, var5); + var13 = var1.getBlockId(var3, var4 - 1, var5 - 1); + var14 = var1.getBlockId(var3 - 1, var4 - 1, var5 - 1); + + if ((var11 == mod_BiomesOPlenty.holyGrass.blockID) && var4 < 256 - var6 - 1) + { + if ((var24 == mod_BiomesOPlenty.holyGrass.blockID) && var4 < 256 - var6 - 1) + { + if ((var13 == mod_BiomesOPlenty.holyGrass.blockID) && var4 < 256 - var6 - 1) + { + if ((var14 == mod_BiomesOPlenty.holyGrass.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, mod_BiomesOPlenty.holyGrass.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5, mod_BiomesOPlenty.holyGrass.blockID); + var1.setBlock(var3, var4 - 1, var5 - 1, mod_BiomesOPlenty.holyGrass.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5 - 1, mod_BiomesOPlenty.holyGrass.blockID); + var15 = var2.nextInt(2); + int var16 = 1; + boolean var17 = false; + int var19; + int var18; + int var20; + + for (var18 = 0; var18 <= var8; ++var18) + { + var19 = var4 + var6 - var18; + + for (var20 = var3 - var15; var20 <= var3 + var15; ++var20) + { + int var21 = var20 - var3; + + for (int var22 = var5 - var15; var22 <= var5 + var15; ++var22) + { + int var23 = var22 - var5; + + if ((Math.abs(var21) != var15 || Math.abs(var23) != var15 || var15 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var20, var19, var22)]) + { + this.setBlockAndMetadata(var1, var20, var19, var22, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20, var19, var22 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22 - 1, Block.leaves.blockID, 0); + } + } + } + + if (var15 >= var16) + { + var15 = var17 ? 1 : 0; + var17 = true; + ++var16; + + if (var16 > var9) + { + var16 = var9; + } + } + else + { + ++var15; + } + } + + var18 = var2.nextInt(3); + + for (var19 = 0; var19 < var6 - var18; ++var19) + { + var20 = var1.getBlockId(var3, var4 + var19, var5); + + if (var20 == 0 || var20 == Block.leaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var19, var5, Block.wood.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5, Block.wood.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + var19, var5 - 1, Block.wood.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5 - 1, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedWillow.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedWillow.java new file mode 100644 index 000000000..627f8fe31 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenPromisedWillow.java @@ -0,0 +1,261 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenPromisedWillow 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 != mod_BiomesOPlenty.holyGrass.blockID && var6 != mod_BiomesOPlenty.holyStone.blockID && var6 != Block.stone.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; + } + } + } + + if (var1.isAirBlock(var3 - 1, var4, var5)) + { + var1.setBlockAndMetadata(var3 - 1, var4, var5, mod_BiomesOPlenty.willow.blockID, 8); + } + if (var1.isAirBlock(var3 - 1, var4 - 1, var5)) + { + var1.setBlockAndMetadata(var3 - 1, var4 - 1, var5, mod_BiomesOPlenty.willow.blockID, 8); + } + if (var1.isAirBlock(var3 - 1, var4 - 2, var5)) + { + var1.setBlockAndMetadata(var3 - 1, var4 - 2, var5, mod_BiomesOPlenty.willow.blockID, 8); + } + if (var1.isAirBlock(var3 - 1, var4 - 3, var5)) + { + var1.setBlockAndMetadata(var3 - 1, var4 - 3, var5, mod_BiomesOPlenty.willow.blockID, 8); + } + if (var1.isAirBlock(var3 - 1, var4 - 4, var5)) + { + var1.setBlockAndMetadata(var3 - 1, var4 - 4, var5, mod_BiomesOPlenty.willow.blockID, 8); + } + if (var1.isAirBlock(var3 - 1, var4 - 5, var5)) + { + var1.setBlockAndMetadata(var3 - 1, var4 - 5, var5, mod_BiomesOPlenty.willow.blockID, 8); + } + + if (var1.isAirBlock(var3 + 1, var4, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 1, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 1, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 2, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 2, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 3, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 3, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 4, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 4, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 5, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 5, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 6, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 6, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 7, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 7, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 8, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 8, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 9, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 9, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + if (var1.isAirBlock(var3 + 1, var4 - 10, var5)) + { + var1.setBlockAndMetadata(var3 + 1, var4 - 10, var5, mod_BiomesOPlenty.willow.blockID, 2); + } + + if (var1.isAirBlock(var3, var4, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 1, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 1, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 2, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 2, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 3, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 3, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 4, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 4, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 5, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 5, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 6, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 6, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 7, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 7, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 8, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 8, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 9, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 9, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 10, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 10, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 11, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 11, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 12, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 12, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 13, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 13, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 14, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 14, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + if (var1.isAirBlock(var3, var4 - 15, var5 - 1)) + { + var1.setBlockAndMetadata(var3, var4 - 15, var5 - 1, mod_BiomesOPlenty.willow.blockID, 1); + } + + if (var1.isAirBlock(var3, var4, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 1, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 1, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 2, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 2, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 3, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 3, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 4, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 4, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 5, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 5, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 6, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 6, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 7, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 7, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 8, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 8, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 9, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 9, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 10, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 10, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 11, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 11, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 12, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 12, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 13, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 13, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 14, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 14, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 15, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 15, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 16, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 16, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 17, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 17, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 18, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 18, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 19, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 19, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + if (var1.isAirBlock(var3, var4 - 20, var5 + 1)) + { + var1.setBlockAndMetadata(var3, var4 - 20, var5 + 1, mod_BiomesOPlenty.willow.blockID, 4); + } + + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuagmire.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuagmire.java new file mode 100644 index 000000000..eff912edf --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuagmire.java @@ -0,0 +1,79 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenQuagmire 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 WorldGenQuagmire(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) == mod_BiomesOPlenty.mud.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuicksand.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuicksand.java new file mode 100644 index 000000000..11ed512b1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuicksand.java @@ -0,0 +1,62 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenQuicksand 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); + int var96 = var1.getBlockId(var3 - 1, var4, var5); + int var97 = var1.getBlockId(var3 + 1, var4, var5); + int var98 = var1.getBlockId(var3, var4, var5 - 1); + int var99 = var1.getBlockId(var3, var4, var5 + 1); + + if (var6 != Block.grass.blockID && var96 != Block.grass.blockID && var97 != Block.grass.blockID && var98 != Block.grass.blockID && var99 != Block.grass.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 - 3, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 2, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 1, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4, var5, 0); + + var1.setBlock(var3 - 1, var4 - 2, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3 + 1, var4 - 2, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 2, var5 - 1, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 2, var5 + 1, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3 + 1, var4 - 1, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 1, var5 - 1, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 1, var5 + 1, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3 - 1, var4, var5, 0); + var1.setBlock(var3 + 1, var4, var5, 0); + var1.setBlock(var3, var4, var5 - 1, 0); + var1.setBlock(var3, var4, var5 + 1, 0); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuicksand2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuicksand2.java new file mode 100644 index 000000000..5349a4e2c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenQuicksand2.java @@ -0,0 +1,57 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenQuicksand2 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); + int var96 = var1.getBlockId(var3 - 1, var4, var5); + int var97 = var1.getBlockId(var3 + 1, var4, var5); + int var98 = var1.getBlockId(var3, var4, var5 - 1); + int var99 = var1.getBlockId(var3, var4, var5 + 1); + + if (var6 != Block.sand.blockID && var96 != Block.sand.blockID && var97 != Block.sand.blockID && var98 != Block.sand.blockID && var99 != Block.sand.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 - 2, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 1, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4, var5, mod_BiomesOPlenty.quicksand.blockID); + + var1.setBlock(var3 - 1, var4 - 1, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3 + 1, var4 - 1, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 1, var5 - 1, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4 - 1, var5 + 1, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3 - 1, var4, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3 + 1, var4, var5, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4, var5 - 1, mod_BiomesOPlenty.quicksand.blockID); + var1.setBlock(var3, var4, var5 + 1, mod_BiomesOPlenty.quicksand.blockID); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforest1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforest1.java new file mode 100644 index 000000000..f6f70f61c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforest1.java @@ -0,0 +1,255 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenRainforest1 extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenRainforest1(boolean par1) + { + this(par1, 8, 3, 3, false); + } + + public WorldGenRainforest1(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(8) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 3; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 3, par4 + (var6 - 3), par5, Block.wood.blockID, 7); + this.setBlockAndMetadata(par1World, par3 + 3, par4 + (var6 - 3), par5, Block.wood.blockID, 7); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 3), par5 - 3, Block.wood.blockID, 11); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 3), par5 + 3, Block.wood.blockID, 11); + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var6 - 4), par5, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var6 - 4), par5, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 - 2, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 4), par5 + 2, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var6 - 5), par5, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var6 - 5), par5, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 5), par5 - 2, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 5), par5 + 2, Block.wood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 6), par5, Block.wood.blockID, 7); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 6), par5, Block.wood.blockID, 7); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 6), par5 - 1, Block.wood.blockID, 11); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 6), par5 + 1, Block.wood.blockID, 11); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 3), par5, Block.leaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 2), par5, Block.leaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 1), par5, Block.leaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, par3, par4 + (var6), par5, Block.leaves.blockID, this.metaLeaves); + this.setBlock(par1World, par3, par4 + (var6 - 4), par5, 0); + this.setBlock(par1World, par3, par4 + (var6 - 5), par5, 0); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var6 - 3), par5, Block.wood.blockID, 7); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var6 - 3), par5, Block.wood.blockID, 7); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 3), par5 - 1, Block.wood.blockID, 11); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 3), par5 + 1, Block.wood.blockID, 11); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 - 2), par5, Block.wood.blockID, this.metaWood); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforest2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforest2.java new file mode 100644 index 000000000..922d617de --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforest2.java @@ -0,0 +1,187 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenRainforest2 extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(4) + 8; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, Block.leaves.blockID, 3); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == Block.leaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 3); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforestTree1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforestTree1.java new file mode 100644 index 000000000..7f9179d74 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRainforestTree1.java @@ -0,0 +1,256 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; +import net.minecraft.block.Block; +import net.minecraft.util.Direction; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenRainforestTree1 extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenRainforestTree1(boolean par1) + { + this(par1, 8, 0, 0, false); + } + + public WorldGenRainforestTree1(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(2) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + Block block = Block.blocksList[var12]; + + if (var12 != 0 && + !block.isLeaves(par1World, var10, var8, var11) && + var12 != Block.grass.blockID && + var12 != Block.dirt.blockID && + !block.isWood(par1World, var10, var8, var11)) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 3; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + Block block = Block.blocksList[par1World.getBlockId(var14, var11, var16)]; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && + (block == null || block.canBeReplacedByLeaves(par1World, var14, var11, var16))) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + Block block = Block.blocksList[var12]; + + if (var12 == 0 || block == null || block.isLeaves(par1World, par3, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, Block.wood.blockID, this.metaWood); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + Block block = Block.blocksList[par1World.getBlockId(var14, var11, var15)]; + if (block != null && block.isLeaves(par1World, var14, var11, var15)) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + + if (par2Random.nextInt(5) == 0 && var6 > 5) + { + for (var11 = 0; var11 < 2; ++var11) + { + for (var12 = 0; var12 < 4; ++var12) + { + if (par2Random.nextInt(4 - var11) == 0) + { + var13 = par2Random.nextInt(3); + this.setBlockAndMetadata(par1World, par3 + Direction.offsetX[Direction.footInvisibleFaceRemap[var12]], par4 + var6 - 5 + var11, par5 + Direction.offsetZ[Direction.footInvisibleFaceRemap[var12]], Block.cocoaPlant.blockID, var13 << 2 | var12); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwood1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwood1.java new file mode 100644 index 000000000..2c8752850 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwood1.java @@ -0,0 +1,727 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenRedwood1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 8, var4, var5 + 7) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 8, var4, var5 + 7); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 8, var4 - 1, var5 + var8 + 7) && var1.isAirBlock(var3 + var7 + 8, var4 - 2, var5 + var8 + 7)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 29, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 29, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 36, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 37, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 37, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 29, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 31, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 31, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 36, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 37, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 37, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 37, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 29, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 33, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 36, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 36, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 37, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 37, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 37, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 37, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 37, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 0, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 27, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 30, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 31, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 33, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 35, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 36, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 36, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 36, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 36, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 37, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 37, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 37, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 37, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 37, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 39, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 40, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 40, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 44, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 45, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 25, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 10, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 27, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 1, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 30, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 31, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 32, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 33, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 33, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 33, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 33, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 33, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 33, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 34, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 34, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 35, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 36, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 40, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 40, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 42, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 42, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 42, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 43, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 43, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 44, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 44, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 45, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 45, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 10, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 23, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 4, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 24, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 25, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 27, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 29, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 30, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 32, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 33, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 34, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 35, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 37, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 41, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 41, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 42, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 43, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 43, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 43, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 44, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 44, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 44, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 45, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 45, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 47, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 24, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 25, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 28, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 29, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 30, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 31, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 32, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 33, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 34, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 35, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 41, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 41, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 42, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 44, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 44, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 47, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 47, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 47, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 10, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 8, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 28, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 29, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 0, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 1, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 30, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 31, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 9, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 32, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 33, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 34, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 35, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 10, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 43, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 43, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 43, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 10, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 28, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 29, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 30, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 31, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 10, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 32, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 33, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 34, var5 + 13, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 35, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 36, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 45, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 45, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 28, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 29, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 30, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 31, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 32, var5 + 14, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 33, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 34, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 35, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 36, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 36, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 42, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 43, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 45, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 29, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 13, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 33, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 30, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 32, var5 + 12, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 33, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 35, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 33, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwood2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwood2.java new file mode 100644 index 000000000..ccc0fce1e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwood2.java @@ -0,0 +1,252 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenRedwood2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 1, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 0, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 4, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 0, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 1, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 7, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 6, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 1, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 5, mod_BiomesOPlenty.redwoodWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 2, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 11, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 3, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 9, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 10, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 5, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 7, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 4, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 6, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 8, mod_BiomesOPlenty.redwoodLeaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwoodTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwoodTree.java new file mode 100644 index 000000000..b83139d5e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwoodTree.java @@ -0,0 +1,377 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.Direction; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenRedwoodTree extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenRedwoodTree(boolean par1) + { + this(par1, 30, 0, 0, false); + } + + public WorldGenRedwoodTree(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(10) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + int var81; + int var82; + int var83; + int var84; + int var85; + int var86; + int var87; + int var88; + int var89; + int var90; + int var91; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.redwoodLeaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != mod_BiomesOPlenty.redwoodWood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3 - 1, par4 - 1, par5); + var81 = par1World.getBlockId(par3 + 1, par4 - 1, par5); + var82 = par1World.getBlockId(par3, par4 - 1, par5 - 1); + var83 = par1World.getBlockId(par3, par4 - 1, par5 + 1); + var84 = par1World.getBlockId(par3 - 1, par4 - 1, par5 - 1); + var85 = par1World.getBlockId(par3 + 1, par4 - 1, par5 - 1); + var86 = par1World.getBlockId(par3 - 1, par4 - 1, par5 + 1); + var87 = par1World.getBlockId(par3 + 1, par4 - 1, par5 + 1); + var88 = par1World.getBlockId(par3 - 2, par4 - 1, par5); + var89 = par1World.getBlockId(par3 + 2, par4 - 1, par5); + var90 = par1World.getBlockId(par3, par4 - 1, par5 - 2); + var91 = par1World.getBlockId(par3, par4 - 1, par5 + 2); + + if (var81 != Block.grass.blockID) + { + return false; + } + + if (var82 != Block.grass.blockID) + { + return false; + } + + if (var83 != Block.grass.blockID) + { + return false; + } + + if (var84 != Block.grass.blockID) + { + return false; + } + + if (var85 != Block.grass.blockID) + { + return false; + } + + if (var86 != Block.grass.blockID) + { + return false; + } + + if (var87 != Block.grass.blockID) + { + return false; + } + + if (var88 != Block.grass.blockID) + { + return false; + } + + if (var89 != Block.grass.blockID) + { + return false; + } + + if (var90 != Block.grass.blockID) + { + return false; + } + + if (var91 != Block.grass.blockID) + { + return false; + } + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 9; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 4; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11 + 10, var16, mod_BiomesOPlenty.redwoodLeaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, var14, var11 + 6, var16, mod_BiomesOPlenty.redwoodLeaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, var14, var11, var16, mod_BiomesOPlenty.redwoodLeaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == mod_BiomesOPlenty.redwoodLeaves.blockID) + { + //1 + this.setBlockAndMetadata(par1World, par3, par4 + (var6), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 1), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 2), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 3), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 4), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 5), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + //2 + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 2), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 2), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 2), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 2), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + //3 + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var11 / 4), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var11 / 4), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var11 / 4), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var11 / 4), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var11 / 4), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var11 / 4), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 4), par5 - 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 4), par5 - 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 4), par5 - 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 4), par5 + 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 4), par5 + 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 4), par5 + 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + //4 + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var11 / 6), par5 - 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var11 / 6), par5 + 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var11 / 6), par5 - 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var11 / 6), par5 + 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 3, par4 + (var11 / 6), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 3, par4 + (var11 / 6), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 6), par5 - 3, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 6), par5 + 3, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + //5 + this.setBlockAndMetadata(par1World, par3 - 3, par4 + (var11 / 8), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 3, par4 + (var11 / 8), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 3, par4 + (var11 / 8), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 3, par4 + (var11 / 8), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 8), par5 - 3, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 8), par5 - 3, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 8), par5 + 3, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 8), par5 + 3, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + + if (par2Random.nextInt(5) == 0 && var6 > 5) + { + for (var11 = 0; var11 < 2; ++var11) + { + for (var12 = 0; var12 < 4; ++var12) + { + if (par2Random.nextInt(4 - var11) == 0) + { + var13 = par2Random.nextInt(3); + this.setBlockAndMetadata(par1World, par3 + Direction.offsetX[Direction.footInvisibleFaceRemap[var12]], par4 + var6 - 5 + var11, par5 + Direction.offsetZ[Direction.footInvisibleFaceRemap[var12]], Block.cocoaPlant.blockID, var13 << 2 | var12); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwoodTree2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwoodTree2.java new file mode 100644 index 000000000..ea34f77b4 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenRedwoodTree2.java @@ -0,0 +1,322 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.Direction; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenRedwoodTree2 extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenRedwoodTree2(boolean par1) + { + this(par1, 25, 0, 0, false); + } + + public WorldGenRedwoodTree2(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(10) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + int var81; + int var82; + int var83; + int var84; + int var85; + int var86; + int var87; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.redwoodLeaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != mod_BiomesOPlenty.redwoodWood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3 - 1, par4 - 1, par5); + var81 = par1World.getBlockId(par3 + 1, par4 - 1, par5); + var82 = par1World.getBlockId(par3, par4 - 1, par5 - 1); + var83 = par1World.getBlockId(par3, par4 - 1, par5 + 1); + var84 = par1World.getBlockId(par3 - 1, par4 - 1, par5 - 1); + var85 = par1World.getBlockId(par3 + 1, par4 - 1, par5 - 1); + var86 = par1World.getBlockId(par3 - 1, par4 - 1, par5 + 1); + var87 = par1World.getBlockId(par3 + 1, par4 - 1, par5 + 1); + + if (var81 != Block.grass.blockID) + { + return false; + } + + if (var82 != Block.grass.blockID) + { + return false; + } + + if (var83 != Block.grass.blockID) + { + return false; + } + + if (var84 != Block.grass.blockID) + { + return false; + } + + if (var85 != Block.grass.blockID) + { + return false; + } + + if (var86 != Block.grass.blockID) + { + return false; + } + + if (var87 != Block.grass.blockID) + { + return false; + } + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 9; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 8; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11 + 12, var16, mod_BiomesOPlenty.redwoodLeaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, var14, var11 + 6, var16, mod_BiomesOPlenty.redwoodLeaves.blockID, this.metaLeaves); + this.setBlockAndMetadata(par1World, var14, var11, var16, mod_BiomesOPlenty.redwoodLeaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == mod_BiomesOPlenty.redwoodLeaves.blockID) + { + //1 + this.setBlockAndMetadata(par1World, par3, par4 + (var6), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 1), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 2), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 3), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 4), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var6 + 5), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + //2 + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 2), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 2), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 2), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 2), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + //3 + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 4), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 4), par5 - 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 - 1, par4 + (var11 / 4), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 1, par4 + (var11 / 4), par5 + 1, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + //4 + this.setBlockAndMetadata(par1World, par3 - 2, par4 + (var11 / 8), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3 + 2, par4 + (var11 / 8), par5, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 8), par5 - 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + this.setBlockAndMetadata(par1World, par3, par4 + (var11 / 8), par5 + 2, mod_BiomesOPlenty.redwoodWood.blockID, this.metaWood); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + + if (par2Random.nextInt(5) == 0 && var6 > 5) + { + for (var11 = 0; var11 < 2; ++var11) + { + for (var12 = 0; var12 < 4; ++var12) + { + if (par2Random.nextInt(4 - var11) == 0) + { + var13 = par2Random.nextInt(3); + this.setBlockAndMetadata(par1World, par3 + Direction.offsetX[Direction.footInvisibleFaceRemap[var12]], par4 + var6 - 5 + var11, par5 + Direction.offsetZ[Direction.footInvisibleFaceRemap[var12]], Block.cocoaPlant.blockID, var13 << 2 | var12); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSandboxTree1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSandboxTree1.java new file mode 100644 index 000000000..ade7d2f2c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSandboxTree1.java @@ -0,0 +1,1173 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSandboxTree1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 9, var4, var5 + 12) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 9, var4, var5 + 12); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 9, var4 - 1, var5 + var8 + 12) && var1.isAirBlock(var3 + var7 + 9, var4 - 2, var5 + var8 + 12)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 44, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 0, var4 + 45, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 0, var4 + 45, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 43, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 1, var4 + 44, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 1, var4 + 44, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 1, var4 + 45, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 1, var4 + 46, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 1, var4 + 47, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 1, var4 + 47, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 1, var4 + 48, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 43, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 44, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 44, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 45, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 45, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 46, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 46, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 47, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 47, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 47, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 47, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 48, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 48, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 49, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 2, var4 + 51, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 51, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 51, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 51, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 52, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 52, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 52, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 53, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 38, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 44, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 44, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 45, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 45, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 45, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 46, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 46, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 46, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 46, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 47, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 47, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 47, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 47, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 48, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 48, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 49, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 50, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 51, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 51, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 51, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 52, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 52, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 52, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 52, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 52, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 53, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 53, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 53, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 53, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 53, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 54, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 37, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 38, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 40, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 46, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 46, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 46, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 47, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 47, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 49, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 49, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 50, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 50, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 50, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 50, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 51, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 51, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 51, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 51, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 51, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 52, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 52, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 52, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 52, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 52, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 53, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 53, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 53, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 53, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 53, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 54, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 54, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 54, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 54, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 54, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 36, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 38, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 40, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 44, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 45, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 45, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 46, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 47, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 47, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 48, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 49, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 50, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 50, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 50, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 50, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 51, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 51, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 51, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 51, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 51, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 52, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 53, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 53, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 53, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 53, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 53, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 53, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 53, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 5, var4 + 54, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 54, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 54, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 36, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 37, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 38, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 40, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 41, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 43, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 44, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 45, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 46, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 47, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 48, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 49, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 50, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 50, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 51, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 51, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 51, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 51, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 52, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 53, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 54, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 54, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 36, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 37, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 38, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 40, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 41, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 42, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 43, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 44, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 45, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 46, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 47, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 48, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 49, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 50, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 51, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 51, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 51, var5 + 17, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 52, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 53, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 53, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 37, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 38, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 39, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 40, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 41, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 42, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 43, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 44, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 45, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 46, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 46, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 47, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 47, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 48, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 49, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 49, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 50, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 50, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 50, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 50, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 51, var5 + 17, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 52, var5 + 17, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 53, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 53, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 53, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 53, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 53, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 53, var5 + 17, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 54, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 36, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 37, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 38, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 39, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 40, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 41, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 42, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 42, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 42, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 43, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 43, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 43, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 44, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 45, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 45, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 46, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 46, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 46, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 47, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 49, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 49, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 49, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 49, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 50, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 51, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 52, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 53, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 53, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 54, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 1, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 26, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 28, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 29, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 30, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 31, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 32, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 33, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 34, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 35, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 36, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 37, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 39, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 40, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 41, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 42, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 42, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 42, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 42, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 43, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 43, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 44, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 45, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 45, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 45, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 47, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 48, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 49, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 49, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 49, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 50, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 50, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 50, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 50, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 50, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 50, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 51, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 52, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 53, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 55, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 1, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 1, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 27, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 28, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 29, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 29, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 30, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 31, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 32, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 33, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 34, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 35, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 36, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 37, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 38, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 39, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 40, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 41, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 42, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 42, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 42, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 42, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 42, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 43, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 43, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 43, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 43, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 43, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 44, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 44, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 44, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 44, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 44, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 45, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 45, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 49, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 50, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 50, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 50, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 50, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 50, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 50, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 51, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 51, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 51, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 51, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 51, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 52, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 53, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 53, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 53, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 53, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 54, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 54, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 55, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 55, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 36, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 36, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 38, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 38, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 38, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 38, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 39, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 39, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 39, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 39, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 39, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 40, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 40, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 40, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 40, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 41, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 41, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 41, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 41, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 42, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 43, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 44, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 44, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 44, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 45, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 45, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 45, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 45, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 45, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 46, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 46, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 50, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 50, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 51, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 5, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 53, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 54, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 54, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 54, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 55, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 39, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 41, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 41, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 41, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 41, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 41, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 42, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 42, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 43, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 44, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 44, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 44, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 46, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 46, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 46, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 46, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 46, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 47, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 47, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 47, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 47, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 48, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 49, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 49, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 50, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 50, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 50, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 50, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 51, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 51, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 51, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 51, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 52, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 52, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 52, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 53, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 53, var5 + 6, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 54, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 54, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 54, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 54, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 54, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 37, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 38, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 39, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 40, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 40, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 41, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 42, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 42, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 43, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 43, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 43, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 43, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 44, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 44, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 44, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 44, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 44, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 44, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 45, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 45, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 45, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 45, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 45, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 46, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 47, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 47, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 47, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 48, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 48, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 48, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 48, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 48, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 49, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 50, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 50, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 51, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 51, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 51, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 51, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 52, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 52, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 52, var5 + 2, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 52, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 52, var5 + 7, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 53, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 53, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 53, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 53, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 54, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 54, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 39, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 39, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 42, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 43, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 43, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 43, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 44, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 44, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 44, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 44, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 44, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 44, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 44, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 45, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 45, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 45, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 45, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 45, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 45, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 46, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 46, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 46, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 46, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 46, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 47, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 47, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 48, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 48, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 49, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 49, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 49, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 49, var5 + 14, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 49, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 50, var5 + 1, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 50, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 50, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 51, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 51, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 51, var5 + 17, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 52, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 52, var5 + 4, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 52, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 53, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 42, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 42, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 43, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 43, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 43, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 43, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 43, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 43, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 43, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 44, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 44, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 44, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 44, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 44, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 45, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 46, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 46, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 46, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 46, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 46, var5 + 13, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 46, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 47, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 47, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 47, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 47, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 47, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 48, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 48, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 48, var5 + 14, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 49, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 49, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 49, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 49, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 49, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 50, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 50, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 50, var5 + 13, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 50, var5 + 15, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 51, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 51, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 52, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 52, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 52, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 52, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 53, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 53, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 53, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 53, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 53, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 54, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 55, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 42, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 43, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 43, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 43, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 43, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 43, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 44, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 44, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 44, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 44, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 45, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 45, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 45, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 45, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 45, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 45, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 45, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 46, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 46, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 46, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 47, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 47, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 47, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 47, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 47, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 48, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 48, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 50, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 50, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 50, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 50, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 51, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 51, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 51, var5 + 16, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 3, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 8, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 10, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 11, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 52, var5 + 16, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 53, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 53, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 53, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 53, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 53, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 53, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 53, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 54, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 54, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 54, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 54, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 54, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 55, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 55, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 55, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 56, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 56, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 42, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 42, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 42, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 43, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 43, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 43, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 43, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 44, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 44, var5 + 11, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 45, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 45, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 45, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 45, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 45, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 45, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 46, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 46, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 46, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 46, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 46, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 47, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 48, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 48, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 50, var5 + 9, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 50, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 50, var5 + 15, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 51, var5 + 10, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 52, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 52, var5 + 2, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 52, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 52, var5 + 12, Block.leaves.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 53, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 53, var5 + 2, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 53, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 54, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 54, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 54, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 54, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 54, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 54, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 55, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 55, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 55, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 55, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 56, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 56, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 56, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 56, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 42, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 42, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 42, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 43, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 43, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 44, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 44, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 44, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 12, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 45, var5 + 15, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 46, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 46, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 46, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 46, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 46, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 47, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 47, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 47, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 47, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 47, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 47, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 48, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 51, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 51, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 52, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 52, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 52, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 53, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 53, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 53, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 53, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 54, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 54, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 54, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 54, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 54, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 55, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 55, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 55, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 55, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 55, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 56, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 42, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 42, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 42, var5 + 13, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 43, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 43, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 43, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 43, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 43, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 44, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 44, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 45, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 45, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 45, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 46, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 46, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 46, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 47, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 47, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 48, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 52, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 54, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 54, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 55, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 56, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 43, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 45, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 46, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 47, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 47, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 47, var5 + 14, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 44, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 44, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 45, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 45, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 45, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 22, var4 + 46, var5 + 8, Block.leaves.blockID, 7); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSandboxTree2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSandboxTree2.java new file mode 100644 index 000000000..bf0bd700b --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSandboxTree2.java @@ -0,0 +1,356 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSandboxTree2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 7, var4, var5 + 12) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 7, var4, var5 + 12); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 7, var4 - 1, var5 + var8 + 12) && var1.isAirBlock(var3 + var7 + 7, var4 - 2, var5 + var8 + 12)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 0, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 20, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 22, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 1, var4 + 24, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 18, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 22, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 23, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 24, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 2, var4 + 25, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 3, var4 + 22, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 23, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 24, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 3, var4 + 25, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 4, var4 + 22, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 4, var4 + 24, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 5, var4 + 22, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 24, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 24, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 23, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 24, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 12, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 24, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 12, var4 + 25, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 4, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 22, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 14, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 7, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 3, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 15, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 15, var4 + 24, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 6, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 5, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 0, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 16, var4 + 24, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 8, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 3, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 2, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 1, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 17, var4 + 24, var5 + 5, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 16, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 16, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 7, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 9, Block.wood.blockID, 15); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 4, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 19, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 20, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 18, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 14, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 15, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 16, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 17, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 18, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 18, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 19, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 20, var5 + 10, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 21, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 19, var4 + 22, var5 + 6, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 17, var5 + 9, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 17, var5 + 11, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 20, var4 + 19, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 16, var5 + 8, Block.leaves.blockID, 7); + var1.setBlockAndMetadata(var3 + 21, var4 + 17, var5 + 9, Block.leaves.blockID, 7); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScotsPine1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScotsPine1.java new file mode 100644 index 000000000..7a289a6e8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScotsPine1.java @@ -0,0 +1,562 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenScotsPine1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 10, var4, var5 + 8) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 10, var4, var5 + 8); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 10, var4 - 1, var5 + var8 + 8) && var1.isAirBlock(var3 + var7 + 10, var4 - 2, var5 + var8 + 8)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 26, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 26, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 27, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 25, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 26, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 27, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 25, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 26, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 27, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 1, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 24, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 25, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 26, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 27, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 2, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 25, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 27, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 25, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 26, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 2, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 2, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 26, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 27, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 2, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 2, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 4, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 15, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScotsPine2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScotsPine2.java new file mode 100644 index 000000000..e6346e477 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScotsPine2.java @@ -0,0 +1,156 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenScotsPine2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 9) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 9); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 9) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 9)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 10, Block.leaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScrubland.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScrubland.java new file mode 100644 index 000000000..8f7aa030a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenScrubland.java @@ -0,0 +1,228 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenScrubland extends WorldGenerator +{ + /** The minimum height of a generated tree. */ + private final int minTreeHeight; + + /** True if this tree should grow Vines. */ + private final boolean vinesGrow; + + /** The metadata value of the wood to use in tree generation. */ + private final int metaWood; + + /** The metadata value of the leaves to use in tree generation. */ + private final int metaLeaves; + + public WorldGenScrubland(boolean par1) + { + this(par1, 2, 0, 2, false); + } + + public WorldGenScrubland(boolean par1, int par2, int par3, int par4, boolean par5) + { + super(par1); + this.minTreeHeight = par2; + this.metaWood = par3; + this.metaLeaves = par4; + this.vinesGrow = par5; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(1) + this.minTreeHeight; + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var8; + byte var9; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 2; + } + + for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 256) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && var12 != Block.wood.blockID) + { + var7 = false; + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var9 = 1; + byte var18 = 0; + int var13; + int var14; + int var15; + + for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = var18 + 1 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + var15 = var14 - par3; + + for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) + { + int var17 = var16 - par5; + + if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var14, var11, var16)]) + { + this.setBlockAndMetadata(par1World, var14, var11, var16, Block.leaves.blockID, this.metaLeaves); + } + } + } + } + + for (var11 = 0; var11 < var6; ++var11) + { + var12 = par1World.getBlockId(par3, par4 + var11, par5); + + if (var12 == 0 || var12 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, Block.wood.blockID, this.metaWood); + + if (this.vinesGrow && var11 > 0) + { + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, 8); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) + { + this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); + } + + if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) + { + this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); + } + } + } + } + + if (this.vinesGrow) + { + for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) + { + var12 = var11 - (par4 + var6); + var13 = 2 - var12 / 2; + + for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) + { + for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) + { + if (par1World.getBlockId(var14, var11, var15) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) + { + this.growVines(par1World, var14 - 1, var11, var15, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) + { + this.growVines(par1World, var14 + 1, var11, var15, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) + { + this.growVines(par1World, var14, var11, var15 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) + { + this.growVines(par1World, var14, var11, var15 + 1, 4); + } + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length + */ + private void growVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 4; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenShield.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenShield.java new file mode 100644 index 000000000..42c9dcdb1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenShield.java @@ -0,0 +1,78 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenShield 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 WorldGenShield(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) == Block.grass.blockID || par1World.getBlockId(var38, var41, var44) == Block.dirt.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSilverBirch1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSilverBirch1.java new file mode 100644 index 000000000..63e4fb05d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSilverBirch1.java @@ -0,0 +1,346 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSilverBirch1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 8, var4, var5 + 8) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 8, var4, var5 + 8); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 8, var4 - 1, var5 + var8 + 8) && var1.isAirBlock(var3 + var7 + 8, var4 - 2, var5 + var8 + 8)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 8, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 9, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 16, var5 + 6, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 1, var4 + 16, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 1, var4 + 16, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 9, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 10, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 10, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 10, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 10, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 9, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 9, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 9, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 10, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 10, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 10, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 11, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 11, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 11, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 14, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 8, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 1, var5 + 8, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 8, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 7, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 7, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 7, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 7, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 11, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 11, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 11, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 8, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 8, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 14, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 4, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 4, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 13, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 11, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 12, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 10, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 5, Block.leaves.blockID, 14); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSilverBirch2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSilverBirch2.java new file mode 100644 index 000000000..b2baa1f5e --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSilverBirch2.java @@ -0,0 +1,221 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSilverBirch2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 5, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 5, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 5, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 5, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 7, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 9, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 0, Block.leaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 2, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 1, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.wood.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 8, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 6, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 5, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 3, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 4, Block.leaves.blockID, 14); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 5, Block.leaves.blockID, 14); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSmolderingGrass.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSmolderingGrass.java new file mode 100644 index 000000000..9cdba5998 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSmolderingGrass.java @@ -0,0 +1,79 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSmolderingGrass 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 WorldGenSmolderingGrass(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) == mod_BiomesOPlenty.ash.blockID) + { + par1World.setBlock(var38, var41, var44, this.minableBlockId); + } + } + } + } + } + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSpire.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSpire.java new file mode 100644 index 000000000..fca5c3ab4 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSpire.java @@ -0,0 +1,126 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSpire extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = 6; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 71) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.willowLeaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == mod_BiomesOPlenty.driedDirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3 - 1, par4, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 + 1, par4, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4, par5 - 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4, par5 + 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 - 1, par4 + 1, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 + 1, par4 + 1, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 - 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 1, par5 + 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 - 1, par4 + 2, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 + 1, par4 + 2, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 2, par5 - 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 2, par5 + 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 - 1, par4 + 3, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 + 1, par4 + 3, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 3, par5 - 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 3, par5 + 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 - 1, par4 + 4, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3 + 1, par4 + 4, par5, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 4, par5 - 1, mod_BiomesOPlenty.driedDirt.blockID); + this.setBlock(par1World, par3, par4 + 4, par5 + 1, mod_BiomesOPlenty.driedDirt.blockID); + int var13; + int var16; + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.willowLeaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.driedDirt.blockID); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSprings.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSprings.java new file mode 100644 index 000000000..05ded1100 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSprings.java @@ -0,0 +1,45 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSprings extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (!var1.isAirBlock(var3, var4, var5) && var4 > 69) + { + --var4; + } + + int var6 = var1.getBlockId(var3, var4, var5); + + if (var6 != Block.dirt.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 - 1, var4, var5) || var1.isAirBlock(var3 + 1, var4, var5) || var1.isAirBlock(var3, var4, var5 - 1) || var1.isAirBlock(var3, var4, var5 + 1)) + { + return true; + } + else + { + return false; + } + } + } + + var1.setBlock(var3, var4, var5, Block.waterMoving.blockID); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSprout.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSprout.java new file mode 100644 index 000000000..9bc758e59 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSprout.java @@ -0,0 +1,46 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSprout extends WorldGenerator +{ + /** Stores ID for WorldGenTallGrass */ + private int tallGrassID; + private int tallGrassMetadata; + + public WorldGenSprout(int par1, int par2) + { + this.tallGrassID = par1; + this.tallGrassMetadata = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var11; + + for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + for (int var7 = 0; var7 < 128; ++var7) + { + int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var8, var9, var10) && mod_BiomesOPlenty.sprout.canBlockStay(par1World, var8, var9, var10)) + { + par1World.setBlockAndMetadata(var8, var9, var10, mod_BiomesOPlenty.sprout.blockID, 1); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSteppe.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSteppe.java new file mode 100644 index 000000000..521990d88 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSteppe.java @@ -0,0 +1,47 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSteppe extends WorldGenerator +{ + /** Stores ID for WorldGenTallGrass */ + private int tallGrassID; + private int tallGrassMetadata; + + public WorldGenSteppe(int par1, int par2) + { + this.tallGrassID = par1; + this.tallGrassMetadata = par2; + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var11; + + for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + { + ; + } + + for (int var7 = 0; var7 < 128; ++var7) + { + int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + + if (par1World.isAirBlock(var8, var9, var10) && par1World.getBlockId(var8, var9 - 1, var10) == Block.grass.blockID) + { + par1World.setBlock(var8, var9 - 1, var10, Block.sand.blockID); + par1World.setBlock(var8, var9, var10, 0); + } + } + + return true; + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenStump.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenStump.java new file mode 100644 index 000000000..b8311c2cb --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenStump.java @@ -0,0 +1,42 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenStump 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 != Block.grass.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, Block.dirt.blockID); + var1.setBlock(var3, var4 + 1, var5, Block.wood.blockID); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSwampTall.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSwampTall.java new file mode 100644 index 000000000..c24ca5b8a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenSwampTall.java @@ -0,0 +1,187 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenSwampTall extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(6) + 8; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != Block.leaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlock(par1World, var12, var16, var14, Block.leaves.blockID); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == Block.leaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, Block.wood.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == Block.leaves.blockID) + { + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + int var6 = 8; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga3.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga3.java new file mode 100644 index 000000000..0f934e6d1 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga3.java @@ -0,0 +1,180 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTaiga3 extends WorldGenerator +{ + public WorldGenTaiga3(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(10) + 35; + int var7 = var2.nextInt(5) + 10; + int var8 = var6 - var7; + int var9 = 4; + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var14; + int var15; + int var24; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var24 = 0; + } + else + { + var24 = var9; + } + + for (var13 = var3 - var24; var13 <= var3 + var24 && var10; ++var13) + { + for (var14 = var5 - var24; var14 <= var5 + var24 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.firLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + var24 = var1.getBlockId(var3 - 1, var4 - 1, var5); + var13 = var1.getBlockId(var3, var4 - 1, var5 - 1); + var14 = var1.getBlockId(var3 - 1, var4 - 1, var5 - 1); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var24 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var13 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var14 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5, Block.dirt.blockID); + var1.setBlock(var3, var4 - 1, var5 - 1, Block.dirt.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Block.dirt.blockID); + var15 = var2.nextInt(2); + int var16 = 1; + boolean var17 = false; + int var19; + int var18; + int var20; + + for (var18 = 0; var18 <= var8; ++var18) + { + var19 = var4 + var6 - var18; + + for (var20 = var3 - var15; var20 <= var3 + var15; ++var20) + { + int var21 = var20 - var3; + + for (int var22 = var5 - var15; var22 <= var5 + var15; ++var22) + { + int var23 = var22 - var5; + + if ((Math.abs(var21) != var15 || Math.abs(var23) != var15 || var15 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var20, var19, var22)]) + { + this.setBlockAndMetadata(var1, var20, var19, var22, mod_BiomesOPlenty.firLeaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22, mod_BiomesOPlenty.firLeaves.blockID, 0); + this.setBlockAndMetadata(var1, var20, var19, var22 - 1, mod_BiomesOPlenty.firLeaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22 - 1, mod_BiomesOPlenty.firLeaves.blockID, 0); + } + } + } + + if (var15 >= var16) + { + var15 = var17 ? 1 : 0; + var17 = true; + ++var16; + + if (var16 > var9) + { + var16 = var9; + } + } + else + { + ++var15; + } + } + + var18 = var2.nextInt(3); + + for (var19 = 0; var19 < var6 - var18; ++var19) + { + var20 = var1.getBlockId(var3, var4 + var19, var5); + + if (var20 == 0 || var20 == mod_BiomesOPlenty.firLeaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var19, var5, mod_BiomesOPlenty.firWood.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5, mod_BiomesOPlenty.firWood.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + var19, var5 - 1, mod_BiomesOPlenty.firWood.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5 - 1, mod_BiomesOPlenty.firWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga4.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga4.java new file mode 100644 index 000000000..a94b85ca0 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga4.java @@ -0,0 +1,145 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTaiga4 extends WorldGenerator +{ + public WorldGenTaiga4(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(15) + 20; + int var7 = var2.nextInt(3) + 5; + int var8 = var6 - var7; + int var9 = 2 + var2.nextInt(3); + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = var3 - var21; var13 <= var3 + var21 && var10; ++var13) + { + for (int var14 = var5 - var21; var14 <= var5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.firLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var21 = var2.nextInt(2); + var13 = 1; + boolean var22 = false; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = var4 + var6 - var15; + + for (var17 = var3 - var21; var17 <= var3 + var21; ++var17) + { + int var18 = var17 - var3; + + for (int var19 = var5 - var21; var19 <= var5 + var21; ++var19) + { + int var20 = var19 - var5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(var1, var17, var16, var19, mod_BiomesOPlenty.firLeaves.blockID, 0); + } + } + } + + if (var21 >= var13) + { + var21 = var22 ? 1 : 0; + var22 = true; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = var2.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = var1.getBlockId(var3, var4 + var16, var5); + + if (var17 == 0 || var17 == mod_BiomesOPlenty.firLeaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var16, var5, mod_BiomesOPlenty.firWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga5.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga5.java new file mode 100644 index 000000000..e0d0f3242 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga5.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTaiga5 extends WorldGenerator +{ + public WorldGenTaiga5(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(9) + 9; + int var7 = 2 + par2Random.nextInt(4); + int var8 = var6 - var7; + int var9 = 2 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 1); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 1); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga6.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga6.java new file mode 100644 index 000000000..5e171ad80 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga6.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTaiga6 extends WorldGenerator +{ + public WorldGenTaiga6(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(4) + 9; + int var7 = 1 + par2Random.nextInt(2); + int var8 = var6 - var7; + int var9 = 2 + par2Random.nextInt(2); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.stone.blockID) && par4 < 256 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 1); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 1); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga7.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga7.java new file mode 100644 index 000000000..6c36abb63 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga7.java @@ -0,0 +1,143 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTaiga7 extends WorldGenerator +{ + public WorldGenTaiga7(boolean par1) + { + super(par1); + } + + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6 = par2Random.nextInt(9) + 9; + int var7 = 2 + par2Random.nextInt(4); + int var8 = var6 - var7; + int var9 = 2 + par2Random.nextInt(4); + boolean var10 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 100) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = par4; var11 <= par4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - par4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = par3 - var21; var13 <= par3 + var21 && var10; ++var13) + { + for (int var14 = par5 - var21; var14 <= par5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 100) + { + var15 = par1World.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && par4 < 100 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + var21 = par2Random.nextInt(2); + var13 = 1; + byte var22 = 0; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = par4 + var6 - var15; + + for (var17 = par3 - var21; var17 <= par3 + var21; ++var17) + { + int var18 = var17 - par3; + + for (int var19 = par5 - var21; var19 <= par5 + var21; ++var19) + { + int var20 = var19 - par5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(par1World, var17, var16, var19, Block.leaves.blockID, 1); + } + } + } + + if (var21 >= var13) + { + var21 = var22; + var22 = 1; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = par2Random.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(par1World, par3, par4 + var16, par5, Block.wood.blockID, 1); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga8.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga8.java new file mode 100644 index 000000000..b48f7871a --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga8.java @@ -0,0 +1,145 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTaiga8 extends WorldGenerator +{ + public WorldGenTaiga8(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(15) + 15; + int var7 = var2.nextInt(3) + 5; + int var8 = var6 - var7; + int var9 = 3; + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = var3 - var21; var13 <= var3 + var21 && var10; ++var13) + { + for (int var14 = var5 - var21; var14 <= var5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var21 = var2.nextInt(2); + var13 = 1; + boolean var22 = false; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = var4 + var6 - var15; + + for (var17 = var3 - var21; var17 <= var3 + var21; ++var17) + { + int var18 = var17 - var3; + + for (int var19 = var5 - var21; var19 <= var5 + var21; ++var19) + { + int var20 = var19 - var5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(var1, var17, var16, var19, Block.leaves.blockID, 1); + } + } + } + + if (var21 >= var13) + { + var21 = var22 ? 1 : 0; + var22 = true; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = var2.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = var1.getBlockId(var3, var4 + var16, var5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var16, var5, Block.wood.blockID, 1); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga9.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga9.java new file mode 100644 index 000000000..cfdcc8dca --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTaiga9.java @@ -0,0 +1,145 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTaiga9 extends WorldGenerator +{ + public WorldGenTaiga9(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(10) + 10; + int var7 = 2; + int var8 = var6 - var7; + int var9 = 2 + var2.nextInt(2); + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = var3 - var21; var13 <= var3 + var21 && var10; ++var13) + { + for (int var14 = var5 - var21; var14 <= var5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != mod_BiomesOPlenty.firLeaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var21 = var2.nextInt(2); + var13 = 1; + boolean var22 = false; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = var4 + var6 - var15; + + for (var17 = var3 - var21; var17 <= var3 + var21; ++var17) + { + int var18 = var17 - var3; + + for (int var19 = var5 - var21; var19 <= var5 + var21; ++var19) + { + int var20 = var19 - var5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(var1, var17, var16, var19, mod_BiomesOPlenty.firLeaves.blockID, 0); + } + } + } + + if (var21 >= var13) + { + var21 = var22 ? 1 : 0; + var22 = true; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = var2.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = var1.getBlockId(var3, var4 + var16, var5); + + if (var17 == 0 || var17 == mod_BiomesOPlenty.firLeaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var16, var5, mod_BiomesOPlenty.firWood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTemperate.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTemperate.java new file mode 100644 index 000000000..b8a334f87 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenTemperate.java @@ -0,0 +1,145 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenTemperate extends WorldGenerator +{ + public WorldGenTemperate(boolean var1) + { + super(var1); + } + + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + int var6 = var2.nextInt(25) + 10; + int var7 = var2.nextInt(3) + 2; + int var8 = var6 - var7; + int var9 = 2 + var2.nextInt(2); + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var15; + int var21; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var21 = 0; + } + else + { + var21 = var9; + } + + for (var13 = var3 - var21; var13 <= var3 + var21 && var10; ++var13) + { + for (int var14 = var5 - var21; var14 <= var5 + var21 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var21 = var2.nextInt(2); + var13 = 1; + boolean var22 = false; + int var17; + int var16; + + for (var15 = 0; var15 <= var8; ++var15) + { + var16 = var4 + var6 - var15; + + for (var17 = var3 - var21; var17 <= var3 + var21; ++var17) + { + int var18 = var17 - var3; + + for (int var19 = var5 - var21; var19 <= var5 + var21; ++var19) + { + int var20 = var19 - var5; + + if ((Math.abs(var18) != var21 || Math.abs(var20) != var21 || var21 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var17, var16, var19)]) + { + this.setBlockAndMetadata(var1, var17, var16, var19, Block.leaves.blockID, 0); + } + } + } + + if (var21 >= var13) + { + var21 = var22 ? 1 : 0; + var22 = true; + ++var13; + + if (var13 > var9) + { + var13 = var9; + } + } + else + { + ++var21; + } + } + + var15 = var2.nextInt(3); + + for (var16 = 0; var16 < var6 - var15; ++var16) + { + var17 = var1.getBlockId(var3, var4 + var16, var5); + + if (var17 == 0 || var17 == Block.leaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var16, var5, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenThickTree.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenThickTree.java new file mode 100644 index 000000000..e95274bf8 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenThickTree.java @@ -0,0 +1,180 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenThickTree extends WorldGenerator +{ + public WorldGenThickTree(boolean var1) + { + super(var1); + } + + 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 var8 = var6 - var7; + int var9 = 2 + var2.nextInt(2); + boolean var10 = true; + + if (var4 >= 1 && var4 + var6 + 1 <= 256) + { + int var11; + int var13; + int var14; + int var15; + int var24; + + for (var11 = var4; var11 <= var4 + 1 + var6 && var10; ++var11) + { + boolean var12 = true; + + if (var11 - var4 < var7) + { + var24 = 0; + } + else + { + var24 = var9; + } + + for (var13 = var3 - var24; var13 <= var3 + var24 && var10; ++var13) + { + for (var14 = var5 - var24; var14 <= var5 + var24 && var10; ++var14) + { + if (var11 >= 0 && var11 < 256) + { + var15 = var1.getBlockId(var13, var11, var14); + + if (var15 != 0 && var15 != Block.leaves.blockID) + { + var10 = false; + } + } + else + { + var10 = false; + } + } + } + } + + if (!var10) + { + return false; + } + else + { + var11 = var1.getBlockId(var3, var4 - 1, var5); + var24 = var1.getBlockId(var3 - 1, var4 - 1, var5); + var13 = var1.getBlockId(var3, var4 - 1, var5 - 1); + var14 = var1.getBlockId(var3 - 1, var4 - 1, var5 - 1); + + if ((var11 == Block.grass.blockID || var11 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var24 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var13 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + if ((var14 == Block.grass.blockID || var24 == Block.dirt.blockID) && var4 < 256 - var6 - 1) + { + var1.setBlock(var3, var4 - 1, var5, Block.dirt.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5, Block.dirt.blockID); + var1.setBlock(var3, var4 - 1, var5 - 1, Block.dirt.blockID); + var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Block.dirt.blockID); + var15 = var2.nextInt(2); + int var16 = 1; + boolean var17 = false; + int var19; + int var18; + int var20; + + for (var18 = 0; var18 <= var8; ++var18) + { + var19 = var4 + var6 - var18; + + for (var20 = var3 - var15; var20 <= var3 + var15; ++var20) + { + int var21 = var20 - var3; + + for (int var22 = var5 - var15; var22 <= var5 + var15; ++var22) + { + int var23 = var22 - var5; + + if ((Math.abs(var21) != var15 || Math.abs(var23) != var15 || var15 <= 0) && !Block.opaqueCubeLookup[var1.getBlockId(var20, var19, var22)]) + { + this.setBlockAndMetadata(var1, var20, var19, var22, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20, var19, var22 - 1, Block.leaves.blockID, 0); + this.setBlockAndMetadata(var1, var20 - 1, var19, var22 - 1, Block.leaves.blockID, 0); + } + } + } + + if (var15 >= var16) + { + var15 = var17 ? 1 : 0; + var17 = true; + ++var16; + + if (var16 > var9) + { + var16 = var9; + } + } + else + { + ++var15; + } + } + + var18 = var2.nextInt(3); + + for (var19 = 0; var19 < var6 - var18; ++var19) + { + var20 = var1.getBlockId(var3, var4 + var19, var5); + + if (var20 == 0 || var20 == Block.leaves.blockID) + { + this.setBlockAndMetadata(var1, var3, var4 + var19, var5, Block.wood.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5, Block.wood.blockID, 0); + this.setBlockAndMetadata(var1, var3, var4 + var19, var5 - 1, Block.wood.blockID, 0); + this.setBlockAndMetadata(var1, var3 - 1, var4 + var19, var5 - 1, Block.wood.blockID, 0); + } + } + + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + else + { + return false; + } + } + } + else + { + return false; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenVolcano.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenVolcano.java new file mode 100644 index 000000000..3e9625030 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenVolcano.java @@ -0,0 +1,49 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenVolcano extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3, var4, var5) && var4 > 75) + { + --var4; + } + + int var6 = var1.getBlockId(var3, var4, var5); + + if (var6 != mod_BiomesOPlenty.ashStone.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.setBlockWithNotify(var3, var4 - 1, var5, Block.lavaMoving.blockID); + var1.setBlockWithNotify(var3, var4, var5, Block.lavaMoving.blockID); + var1.setBlockWithNotify(var3, var4 + 1, var5, Block.lavaMoving.blockID); + var1.setBlockWithNotify(var3 - 1, var4 + 1, var5, Block.lavaMoving.blockID); + var1.setBlockWithNotify(var3 + 1, var4 + 1, var5, Block.lavaMoving.blockID); + var1.setBlockWithNotify(var3, var4 + 1, var5 - 1, Block.lavaMoving.blockID); + var1.setBlockWithNotify(var3, var4 + 1, var5 + 1, Block.lavaMoving.blockID); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWhiteOak1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWhiteOak1.java new file mode 100644 index 000000000..ca893b433 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWhiteOak1.java @@ -0,0 +1,1470 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenWhiteOak1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 9, var4, var5 + 9) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 9, var4, var5 + 9); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 9, var4 - 1, var5 + var8 + 9) && var1.isAirBlock(var3 + var7 + 9, var4 - 2, var5 + var8 + 9)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 5, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 6, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 11, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 19, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 21, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 20, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 21, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 17, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 18, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 20, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 22, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 23, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 16, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 21, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 22, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 24, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 2, var5 + 16, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 17, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 19, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 21, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 22, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 2, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 3, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 18, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 20, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 22, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 23, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 0, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 16, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 3, var5 + 17, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 6, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 18, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 19, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 21, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 22, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 0, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 1, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 1, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 18, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 16, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 17, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 16, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 18, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 19, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 20, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 21, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 22, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 1, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 1, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 2, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 2, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 9, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 9, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 12, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 18, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 19, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 20, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 21, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 22, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 0, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 2, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 2, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 2, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 16, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 8, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 11, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 12, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 13, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 14, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 18, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 11, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 20, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 21, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 22, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 2, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 2, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 3, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 3, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 3, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 18, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 1, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 8, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 9, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 10, var5 + 21, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 11, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 12, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 15, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 14, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 15, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 16, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 18, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 19, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 20, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 21, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 22, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 22, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 22, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 24, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 2, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 2, var5 + 14, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 2, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 3, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 3, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 3, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 3, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 4, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 10, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 6, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 7, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 8, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 9, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 10, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 11, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 12, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 14, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 15, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 16, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 17, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 19, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 20, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 22, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 22, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 22, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 15, var4 + 23, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 3, var5 + 11, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 3, var5 + 15, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 4, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 4, var5 + 12, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 13, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 5, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 6, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 7, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 7, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 8, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 9, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 10, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 11, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 12, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 13, var5 + 19, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 14, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 15, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 16, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 17, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 19, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 20, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 21, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 22, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 16, var4 + 24, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 3, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 3, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 4, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 4, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 5, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 5, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 5, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 6, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 7, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 10, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 17, var4 + 8, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 9, var5 + 20, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 10, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 12, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 13, var5 + 18, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 14, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 15, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 16, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 17, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 18, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 19, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 20, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 21, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 22, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 17, var4 + 23, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 2, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 18, var4 + 3, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 3, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 18, var4 + 4, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 18, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 5, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 6, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 9, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 9, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 9, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 10, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 11, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 12, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 12, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 13, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 14, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 14, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 15, var5 + 17, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 16, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 17, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 18, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 19, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 20, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 20, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 22, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 18, var4 + 22, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 4, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 11, var5 + 13, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 11, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 13, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 13, var5 + 16, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 15, var5 + 14, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 16, var5 + 15, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 21, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 19, var4 + 22, var5 + 11, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 20, var4 + 7, var5 + 7, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWhiteOak2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWhiteOak2.java new file mode 100644 index 000000000..59d8ec38c --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWhiteOak2.java @@ -0,0 +1,266 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenWhiteOak2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 5) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 5); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 5) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 5)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 5, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 5, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 6, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 10, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 2, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 3, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 7, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 0, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 2, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 4, Block.wood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 7, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 8, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 2, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 7, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 9, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 3, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 3, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 1, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 8, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 5, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 5, var5 + 6, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 3, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 6, Block.leaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 4, var5 + 4, Block.leaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 5, var5 + 2, Block.leaves.blockID, 4); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow.java new file mode 100644 index 000000000..09dbfffcd --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow.java @@ -0,0 +1,189 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; + +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenWillow extends WorldGenerator +{ + public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + { + int var6; + + for (var6 = par2Random.nextInt(4) + 5; par1World.getBlockMaterial(par3, par4 - 1, par5) == Material.water; --par4) + { + ; + } + + boolean var7 = true; + + if (par4 >= 1 && par4 + var6 + 1 <= 128) + { + int var8; + int var10; + int var11; + int var12; + + for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) + { + byte var9 = 1; + + if (var8 == par4) + { + var9 = 0; + } + + if (var8 >= par4 + 1 + var6 - 2) + { + var9 = 3; + } + + for (var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) + { + for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) + { + if (var8 >= 0 && var8 < 128) + { + var12 = par1World.getBlockId(var10, var8, var11); + + if (var12 != 0 && var12 != mod_BiomesOPlenty.willowLeaves.blockID) + { + if (var12 != Block.waterStill.blockID && var12 != Block.waterMoving.blockID) + { + var7 = false; + } + else if (var8 > par4) + { + var7 = false; + } + } + } + else + { + var7 = false; + } + } + } + } + + if (!var7) + { + return false; + } + else + { + var8 = par1World.getBlockId(par3, par4 - 1, par5); + + if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 128 - var6 - 1) + { + this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); + int var13; + int var16; + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + var13 = var12 - par3; + + for (int var14 = par5 - var11; var14 <= par5 + var11; ++var14) + { + int var15 = var14 - par5; + + if ((Math.abs(var13) != var11 || Math.abs(var15) != var11 || par2Random.nextInt(2) != 0 && var10 != 0) && !Block.opaqueCubeLookup[par1World.getBlockId(var12, var16, var14)]) + { + this.setBlockAndMetadata(par1World, var12, var16, var14, mod_BiomesOPlenty.willowLeaves.blockID, 0); + } + } + } + } + + for (var16 = 0; var16 < var6; ++var16) + { + var10 = par1World.getBlockId(par3, par4 + var16, par5); + + if (var10 == 0 || var10 == mod_BiomesOPlenty.willowLeaves.blockID || var10 == Block.waterMoving.blockID || var10 == Block.waterStill.blockID) + { + this.setBlock(par1World, par3, par4 + var16, par5, mod_BiomesOPlenty.willowWood.blockID); + } + } + + for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) + { + var10 = var16 - (par4 + var6); + var11 = 2 - var10 / 2; + + for (var12 = par3 - var11; var12 <= par3 + var11; ++var12) + { + for (var13 = par5 - var11; var13 <= par5 + var11; ++var13) + { + if (par1World.getBlockId(var12, var16, var13) == mod_BiomesOPlenty.willowLeaves.blockID) + { + if (par2Random.nextInt(2) == 0 && par1World.getBlockId(var12 - 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 - 1, var16, var13, 8); + } + + if (par2Random.nextInt(2) == 0 && par1World.getBlockId(var12 + 1, var16, var13) == 0) + { + this.generateVines(par1World, var12 + 1, var16, var13, 2); + } + + if (par2Random.nextInt(2) == 0 && par1World.getBlockId(var12, var16, var13 - 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 - 1, 1); + } + + if (par2Random.nextInt(2) == 0 && par1World.getBlockId(var12, var16, var13 + 1) == 0) + { + this.generateVines(par1World, var12, var16, var13 + 1, 4); + } + } + } + } + } + + return true; + } + else + { + return false; + } + } + } + else + { + return false; + } + } + + /** + * Generates vines at the given position until it hits a block. + */ + private void generateVines(World par1World, int par2, int par3, int par4, int par5) + { + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + int var6 = 7; + + while (true) + { + --par3; + + if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) + { + return; + } + + this.setBlockAndMetadata(par1World, par2, par3, par4, mod_BiomesOPlenty.willow.blockID, par5); + --var6; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow1.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow1.java new file mode 100644 index 000000000..48be99b35 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow1.java @@ -0,0 +1,830 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenWillow1 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 7, var4, var5 + 8) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 7, var4, var5 + 8); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 7, var4 - 1, var5 + var8 + 8) && var1.isAirBlock(var3 + var7 + 7, var4 - 2, var5 + var8 + 8)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 0, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 0, var4 + 15, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 8, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 9, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 1, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 10, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 11, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 12, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 13, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 16, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 17, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 1, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 11, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 12, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 13, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 14, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 15, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 16, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 17, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 11, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 12, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 13, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 14, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 15, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 12, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 16, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 17, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 4, var4 + 18, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 0, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 1, var5 + 15, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 15, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 16, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 15, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 16, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 15, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 16, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 14, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 16, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 15, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 16, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 11, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 12, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 13, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 14, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 15, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 16, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 0, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 1, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 15, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 13, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 16, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 13, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 14, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 15, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 16, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 17, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 0, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 12, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 6, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 7, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 9, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 10, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 11, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 12, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 13, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 7, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 15, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 16, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 17, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 18, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 0, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 4, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 5, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 6, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 7, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 8, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 9, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 10, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 11, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 12, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 13, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 8, var4 + 16, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 7, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 8, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 10, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 9, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 10, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 11, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 11, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 12, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 12, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 13, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 14, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 15, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 9, var4 + 16, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 7, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 8, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 9, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 10, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 11, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 12, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 10, var4 + 13, var5 + 14, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 14, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 15, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 10, var4 + 16, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 1, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 2, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 3, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 4, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 5, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 6, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 7, var5 + 7, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 8, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 9, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 10, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 11, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 12, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 13, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 14, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 12, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 15, var5 + 13, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 16, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 11, var4 + 17, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 1, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 1, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 2, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 2, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 2, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 3, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 4, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 5, var5 + 9, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 6, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 7, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 8, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 10, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 11, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 12, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 13, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 14, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 16, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 12, var4 + 17, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 1, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 2, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 3, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 4, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 5, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 6, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 7, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 14, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 8, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 9, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 15, var5 + 11, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 13, var4 + 16, var5 + 10, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 4, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 5, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 14, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 4); + var1.setBlockAndMetadata(var3 + 14, var4 + 7, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow2.java b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow2.java new file mode 100644 index 000000000..0f394c6ed --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldgen/WorldGenWillow2.java @@ -0,0 +1,201 @@ +package tdwp_ftw.biomesop.worldgen; + +import java.util.Random; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenerator; + +public class WorldGenWillow2 extends WorldGenerator +{ + public boolean generate(World var1, Random var2, int var3, int var4, int var5) + { + while (var1.isAirBlock(var3 + 4, var4, var5 + 3) && var4 > 2) + { + --var4; + } + + int var6 = var1.getBlockId(var3 + 4, var4, var5 + 3); + + if (var6 != Block.grass.blockID) + { + return false; + } + else + { + for (int var7 = -2; var7 <= 2; ++var7) + { + for (int var8 = -2; var8 <= 2; ++var8) + { + if (var1.isAirBlock(var3 + var7 + 4, var4 - 1, var5 + var8 + 3) && var1.isAirBlock(var3 + var7 + 4, var4 - 2, var5 + var8 + 3)) + { + return false; + } + } + } + + var1.setBlockAndMetadata(var3 + 1, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 5, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 6, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 1, var4 + 7, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 2, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 3, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 4, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 5, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 2, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 6, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 7, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 2, var4 + 9, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 2, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 3, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 4, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 5, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 6, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 0, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 7, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 8, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 9, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 3, var4 + 10, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 6); + var1.setBlockAndMetadata(var3 + 4, var4 + 0, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 1, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 2, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 3, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 4, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 5, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 7, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 5, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 8, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 9, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 4, var4 + 10, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 2, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 3, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 4, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 5, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 6, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 5, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 7, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 6, mod_BiomesOPlenty.willowWood.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 8, var5 + 7, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 9, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 5, var4 + 10, var5 + 6, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 2, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 3, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 1, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 4, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 6, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 8, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 6, var4 + 9, var5 + 4, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 1, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 2, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 3, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 2, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 4, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + var1.setBlockAndMetadata(var3 + 7, var4 + 5, var5 + 3, mod_BiomesOPlenty.willowLeaves.blockID, 12); + return true; + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldtype/WTBiomesOP.java b/src/minecraft/tdwp_ftw/biomesop/worldtype/WTBiomesOP.java new file mode 100644 index 000000000..90f2bcb03 --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldtype/WTBiomesOP.java @@ -0,0 +1,388 @@ +package tdwp_ftw.biomesop.worldtype; + +import net.minecraft.world.WorldType; +import net.minecraft.world.biome.BiomeGenBase; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +public class WTBiomesOP extends WorldTypeBase +{ + public WTBiomesOP() { + super(4, "BIOMESOP"); + this.removeAllBiomes(); + this.removeBiome(BiomeGenBase.plains); + this.removeBiome(BiomeGenBase.desert); + this.removeBiome(BiomeGenBase.forest); + this.removeBiome(BiomeGenBase.extremeHills); + this.removeBiome(BiomeGenBase.taiga); + this.removeBiome(BiomeGenBase.swampland); + this.removeBiome(BiomeGenBase.jungle); + + if (mod_BiomesOPlenty.alpsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.alps); + } + if (mod_BiomesOPlenty.arcticGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.arctic); + } + if (mod_BiomesOPlenty.badlandsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.badlands); + } + if (mod_BiomesOPlenty.bambooForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.bambooForest); + } + if (mod_BiomesOPlenty.bayouGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.bayou); + } + if (mod_BiomesOPlenty.birchForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.birchForest); + } + if (mod_BiomesOPlenty.bogGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.bog); + } + if (mod_BiomesOPlenty.borealForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.borealForest); + } + if (mod_BiomesOPlenty.canyonGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.canyon); + } + if (mod_BiomesOPlenty.chaparralGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.chaparral); + } + if (mod_BiomesOPlenty.cherryBlossomGroveGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.cherryBlossomGrove); + } + if (mod_BiomesOPlenty.coniferousForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.coniferousForest); + } + if (mod_BiomesOPlenty.cragGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.crag); + } + if (mod_BiomesOPlenty.deadForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.deadForest); + } + if (mod_BiomesOPlenty.deadSwampGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.deadSwamp); + } + if (mod_BiomesOPlenty.deadlandsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.deadlands); + } + if (mod_BiomesOPlenty.deciduousForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.deciduousForest); + } + if (mod_BiomesOPlenty.drylandsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.drylands); + } + if (mod_BiomesOPlenty.dunesGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.dunes); + } + if (mod_BiomesOPlenty.fenGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.fen); + } + if (mod_BiomesOPlenty.fieldGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.field); + } + if (mod_BiomesOPlenty.frostForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.frostForest); + } + if (mod_BiomesOPlenty.fungiForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.fungiForest); + } + if (mod_BiomesOPlenty.gardenGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.garden); + } + if (mod_BiomesOPlenty.glacierGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.glacier); + } + if (mod_BiomesOPlenty.grasslandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.grassland); + } + if (mod_BiomesOPlenty.groveGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.grove); + } + if (mod_BiomesOPlenty.heathlandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.heathland); + } + if (mod_BiomesOPlenty.highlandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.highland); + } + if (mod_BiomesOPlenty.iceSheetGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.iceSheet); + } + if (mod_BiomesOPlenty.icyHillsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.icyHills); + } + if (mod_BiomesOPlenty.jadeCliffsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.jadeCliffs); + } + if (mod_BiomesOPlenty.lushDesertGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.lushDesert); + } + if (mod_BiomesOPlenty.lushSwampGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.lushSwamp); + } + if (mod_BiomesOPlenty.mangroveGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.mangrove); + } + if (mod_BiomesOPlenty.mapleWoodsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.mapleWoods); + } + if (mod_BiomesOPlenty.marshGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.marsh); + } + if (mod_BiomesOPlenty.meadowGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.meadow); + } + if (mod_BiomesOPlenty.mesaGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.mesa); + } + if (mod_BiomesOPlenty.moorGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.moor); + } + if (mod_BiomesOPlenty.mountainGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.mountain); + } + if (mod_BiomesOPlenty.mushroomIslandGen == true) + { + this.addNewBiome(BiomeGenBase.mushroomIsland); + } + if (mod_BiomesOPlenty.mysticGroveGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.mysticGrove); + } + if (mod_BiomesOPlenty.oasisGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.oasis); + } + if (mod_BiomesOPlenty.ominousWoodsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.ominousWoods); + } + if (mod_BiomesOPlenty.orchardGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.orchard); + } + if (mod_BiomesOPlenty.originValleyGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.originValley); + } + if (mod_BiomesOPlenty.outbackGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.outback); + } + if (mod_BiomesOPlenty.pastureGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.pasture); + } + if (mod_BiomesOPlenty.prairieGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.prairie); + } + if (mod_BiomesOPlenty.quagmireGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.quagmire); + } + if (mod_BiomesOPlenty.rainforestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.rainforest); + } + if (mod_BiomesOPlenty.redwoodForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.redwoodForest); + } + if (mod_BiomesOPlenty.sacredSpringsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.sacredSprings); + } + if (mod_BiomesOPlenty.savannaGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.savanna); + } + if (mod_BiomesOPlenty.scrublandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.scrubland); + } + if (mod_BiomesOPlenty.seasonalForestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.seasonalForest); + } + if (mod_BiomesOPlenty.shieldGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.shield); + } + if (mod_BiomesOPlenty.shrublandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.shrubland); + } + if (mod_BiomesOPlenty.snowyWoodsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.snowyWoods); + } + if (mod_BiomesOPlenty.spruceWoodsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.spruceWoods); + } + if (mod_BiomesOPlenty.steppeGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.steppe); + } + if (mod_BiomesOPlenty.swampwoodsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.swampwoods); + } + if (mod_BiomesOPlenty.temperateRainforestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.temperateRainforest); + } + if (mod_BiomesOPlenty.thicketGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.thicket); + } + if (mod_BiomesOPlenty.tropicalRainforestGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.tropicalRainforest); + } + if (mod_BiomesOPlenty.tropicsGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.tropics); + } + if (mod_BiomesOPlenty.tundraGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.tundra); + } + if (mod_BiomesOPlenty.volcanoGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.volcano); + } + if (mod_BiomesOPlenty.wastelandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.wasteland); + } + if (mod_BiomesOPlenty.wetlandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.wetland); + } + if (mod_BiomesOPlenty.woodlandGen == true) + { + this.addNewBiome(mod_BiomesOPlenty.woodland); + } + + + if (mod_BiomesOPlenty.plainsGen == true) + { + if (mod_BiomesOPlenty.vanillaEnhanced == true) + { + this.addNewBiome(mod_BiomesOPlenty.plainsNew); + } + else + { + this.addNewBiome(BiomeGenBase.plains); + } + } + if (mod_BiomesOPlenty.desertGen == true) + { + if (mod_BiomesOPlenty.vanillaEnhanced == true) + { + this.addNewBiome(mod_BiomesOPlenty.desertNew); + } + else + { + this.addNewBiome(BiomeGenBase.desert); + } + } + if (mod_BiomesOPlenty.extremeHillsGen == true) + { + if (mod_BiomesOPlenty.vanillaEnhanced == true) + { + this.addNewBiome(mod_BiomesOPlenty.extremeHillsNew); + } + else + { + this.addNewBiome(BiomeGenBase.extremeHills); + } + } + if (mod_BiomesOPlenty.forestGen == true) + { + if (mod_BiomesOPlenty.vanillaEnhanced == true) + { + this.addNewBiome(mod_BiomesOPlenty.forestNew); + } + else + { + this.addNewBiome(BiomeGenBase.forest); + } + } + if (mod_BiomesOPlenty.taigaGen == true) + { + if (mod_BiomesOPlenty.vanillaEnhanced == true) + { + this.addNewBiome(mod_BiomesOPlenty.taigaNew); + } + else + { + this.addNewBiome(BiomeGenBase.taiga); + } + } + if (mod_BiomesOPlenty.swamplandGen == true) + { + if (mod_BiomesOPlenty.vanillaEnhanced == true) + { + this.addNewBiome(mod_BiomesOPlenty.swamplandNew); + } + else + { + this.addNewBiome(BiomeGenBase.swampland); + } + } + if (mod_BiomesOPlenty.jungleGen == true) + { + if (mod_BiomesOPlenty.vanillaEnhanced == true) + { + this.addNewBiome(mod_BiomesOPlenty.jungleNew); + } + else + { + this.addNewBiome(BiomeGenBase.jungle); + } + } + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldtype/WorldChunkManagerBOP.java b/src/minecraft/tdwp_ftw/biomesop/worldtype/WorldChunkManagerBOP.java new file mode 100644 index 000000000..efd0064ed --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldtype/WorldChunkManagerBOP.java @@ -0,0 +1,323 @@ +package tdwp_ftw.biomesop.worldtype; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; +import net.minecraft.world.WorldType; +import net.minecraft.world.biome.BiomeCache; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.WorldChunkManager; +import net.minecraft.world.gen.layer.GenLayer; +import net.minecraft.world.gen.layer.IntCache; +import tdwp_ftw.biomesop.mod_BiomesOPlenty; + +public class WorldChunkManagerBOP extends WorldChunkManager +{ + private GenLayer genBiomes; + + /** A GenLayer containing the indices into BiomeGenBase.biomeList[] */ + private GenLayer biomeIndexLayer; + + /** The BiomeCache object for this world. */ + private BiomeCache biomeCache; + + /** A list of biomes that the player can spawn in. */ + private List biomesToSpawnIn; + + protected WorldChunkManagerBOP() + { + this.biomeCache = new BiomeCache(this); + this.biomesToSpawnIn = new ArrayList(); + this.biomesToSpawnIn.add(BiomeGenBase.forest); + this.biomesToSpawnIn.add(BiomeGenBase.plains); + this.biomesToSpawnIn.add(BiomeGenBase.taiga); + this.biomesToSpawnIn.add(BiomeGenBase.taigaHills); + this.biomesToSpawnIn.add(BiomeGenBase.forestHills); + this.biomesToSpawnIn.add(BiomeGenBase.jungle); + this.biomesToSpawnIn.add(BiomeGenBase.jungleHills); + + this.biomesToSpawnIn.add(mod_BiomesOPlenty.alps); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.arctic); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.badlands); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.bambooForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.bayou); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.birchForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.bog); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.borealForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.chaparral); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.cherryBlossomGrove); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.coniferousForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.crag); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.deadForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.deciduousForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.drylands); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.dunes); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.frostForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.glacier); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.grassland); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.grove); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.heathland); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.highland); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.lushDesert); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.lushSwamp); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.mangrove); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.mapleWoods); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.marsh); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.meadow); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.mesa); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.mountain); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.oasis); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.orchard); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.pasture); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.prairie); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.quagmire); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.rainforest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.redwoodForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.savanna); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.scrubland); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.seasonalForest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.shrubland); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.steppe); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.temperateRainforest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.tropicalRainforest); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.tropics); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.tundra); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.volcano); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.wetland); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.woodland); + + this.biomesToSpawnIn.add(mod_BiomesOPlenty.forestNew); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.plainsNew); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.taigaNew); + this.biomesToSpawnIn.add(mod_BiomesOPlenty.jungleNew); + } + + public WorldChunkManagerBOP(long par1, WorldType par3WorldType) + { + this(); + GenLayer[] var4 = GenLayer.initializeAllBiomeGenerators(par1, par3WorldType); + this.genBiomes = (GenLayer) var4[0]; + this.biomeIndexLayer = (GenLayer) var4[1]; + } + + public WorldChunkManagerBOP(World par1World) + { + this(par1World.getSeed(), par1World.getWorldInfo().getTerrainType()); + } + + /** + * Gets the list of valid biomes for the player to spawn in. + */ + public List getBiomesToSpawnIn() + { + return this.biomesToSpawnIn; + } + + /** + * Returns the BiomeGenBase related to the x, z position on the world. + */ + public BiomeGenBase getBiomeGenAt(int par1, int par2) + { + return this.biomeCache.getBiomeGenAt(par1, par2); + } + + /** + * Returns a list of rainfall values for the specified blocks. Args: listToReuse, x, z, width, length. + */ + public float[] getRainfall(float[] par1ArrayOfFloat, int par2, int par3, int par4, int par5) + { + IntCache.resetIntCache(); + + if (par1ArrayOfFloat == null || par1ArrayOfFloat.length < par4 * par5) + { + par1ArrayOfFloat = new float[par4 * par5]; + } + + int[] var6 = this.biomeIndexLayer.getInts(par2, par3, par4, par5); + + for (int var7 = 0; var7 < par4 * par5; ++var7) + { + float var8 = (float)BiomeGenBase.biomeList[var6[var7]].getIntRainfall() / 65536.0F; + + if (var8 > 1.0F) + { + var8 = 1.0F; + } + + par1ArrayOfFloat[var7] = var8; + } + + return par1ArrayOfFloat; + } + + /** + * Return an adjusted version of a given temperature based on the y height + */ + public float getTemperatureAtHeight(float par1, int par2) + { + return par1; + } + + /** + * Returns a list of temperatures to use for the specified blocks. Args: listToReuse, x, y, width, length + */ + public float[] getTemperatures(float[] par1ArrayOfFloat, int par2, int par3, int par4, int par5) + { + IntCache.resetIntCache(); + + if (par1ArrayOfFloat == null || par1ArrayOfFloat.length < par4 * par5) + { + par1ArrayOfFloat = new float[par4 * par5]; + } + + int[] var6 = this.biomeIndexLayer.getInts(par2, par3, par4, par5); + + for (int var7 = 0; var7 < par4 * par5; ++var7) + { + float var8 = (float)BiomeGenBase.biomeList[var6[var7]].getIntTemperature() / 65536.0F; + + if (var8 > 1.0F) + { + var8 = 1.0F; + } + + par1ArrayOfFloat[var7] = var8; + } + + return par1ArrayOfFloat; + } + + /** + * Returns an array of biomes for the location input. + */ + public BiomeGenBase[] getBiomesForGeneration(BiomeGenBase[] par1ArrayOfBiomeGenBase, int par2, int par3, int par4, int par5) + { + IntCache.resetIntCache(); + + if (par1ArrayOfBiomeGenBase == null || par1ArrayOfBiomeGenBase.length < par4 * par5) + { + par1ArrayOfBiomeGenBase = new BiomeGenBase[par4 * par5]; + } + + int[] var6 = this.genBiomes.getInts(par2, par3, par4, par5); + + for (int var7 = 0; var7 < par4 * par5; ++var7) + { + par1ArrayOfBiomeGenBase[var7] = BiomeGenBase.biomeList[var6[var7]]; + } + + return par1ArrayOfBiomeGenBase; + } + + /** + * Returns biomes to use for the blocks and loads the other data like temperature and humidity onto the + * WorldChunkManager Args: oldBiomeList, x, z, width, depth + */ + public BiomeGenBase[] loadBlockGeneratorData(BiomeGenBase[] par1ArrayOfBiomeGenBase, int par2, int par3, int par4, int par5) + { + return this.getBiomeGenAt(par1ArrayOfBiomeGenBase, par2, par3, par4, par5, true); + } + + /** + * Return a list of biomes for the specified blocks. Args: listToReuse, x, y, width, length, cacheFlag (if false, + * don't check biomeCache to avoid infinite loop in BiomeCacheBlock) + */ + public BiomeGenBase[] getBiomeGenAt(BiomeGenBase[] par1ArrayOfBiomeGenBase, int par2, int par3, int par4, int par5, boolean par6) + { + IntCache.resetIntCache(); + + if (par1ArrayOfBiomeGenBase == null || par1ArrayOfBiomeGenBase.length < par4 * par5) + { + par1ArrayOfBiomeGenBase = new BiomeGenBase[par4 * par5]; + } + + if (par6 && par4 == 16 && par5 == 16 && (par2 & 15) == 0 && (par3 & 15) == 0) + { + BiomeGenBase[] var9 = this.biomeCache.getCachedBiomes(par2, par3); + System.arraycopy(var9, 0, par1ArrayOfBiomeGenBase, 0, par4 * par5); + return par1ArrayOfBiomeGenBase; + } + else + { + int[] var7 = this.biomeIndexLayer.getInts(par2, par3, par4, par5); + + for (int var8 = 0; var8 < par4 * par5; ++var8) + { + par1ArrayOfBiomeGenBase[var8] = BiomeGenBase.biomeList[var7[var8]]; + } + + return par1ArrayOfBiomeGenBase; + } + } + + /** + * checks given Chunk's Biomes against List of allowed ones + */ + public boolean areBiomesViable(int par1, int par2, int par3, List par4List) + { + IntCache.resetIntCache(); + int var5 = par1 - par3 >> 2; + int var6 = par2 - par3 >> 2; + int var7 = par1 + par3 >> 2; + int var8 = par2 + par3 >> 2; + int var9 = var7 - var5 + 1; + int var10 = var8 - var6 + 1; + int[] var11 = this.genBiomes.getInts(var5, var6, var9, var10); + + for (int var12 = 0; var12 < var9 * var10; ++var12) + { + BiomeGenBase var13 = BiomeGenBase.biomeList[var11[var12]]; + + if (!par4List.contains(var13)) + { + return false; + } + } + + return true; + } + + /** + * Finds a valid position within a range, that is in one of the listed biomes. Searches {par1,par2} +-par3 blocks. + * Strongly favors positive y positions. + */ + public ChunkPosition findBiomePosition(int par1, int par2, int par3, List par4List, Random par5Random) + { + IntCache.resetIntCache(); + int var6 = par1 - par3 >> 2; + int var7 = par2 - par3 >> 2; + int var8 = par1 + par3 >> 2; + int var9 = par2 + par3 >> 2; + int var10 = var8 - var6 + 1; + int var11 = var9 - var7 + 1; + int[] var12 = this.genBiomes.getInts(var6, var7, var10, var11); + ChunkPosition var13 = null; + int var14 = 0; + + for (int var15 = 0; var15 < var12.length; ++var15) + { + int var16 = var6 + var15 % var10 << 2; + int var17 = var7 + var15 / var10 << 2; + BiomeGenBase var18 = BiomeGenBase.biomeList[var12[var15]]; + + if (par4List.contains(var18) && (var13 == null || par5Random.nextInt(var14 + 1) == 0)) + { + var13 = new ChunkPosition(var16, 0, var17); + ++var14; + } + } + + return var13; + } + + /** + * Calls the WorldChunkManager's biomeCache.cleanupCache() + */ + public void cleanupCache() + { + this.biomeCache.cleanupCache(); + } +} diff --git a/src/minecraft/tdwp_ftw/biomesop/worldtype/WorldTypeBase.java b/src/minecraft/tdwp_ftw/biomesop/worldtype/WorldTypeBase.java new file mode 100644 index 000000000..db3b5604d --- /dev/null +++ b/src/minecraft/tdwp_ftw/biomesop/worldtype/WorldTypeBase.java @@ -0,0 +1,30 @@ +package tdwp_ftw.biomesop.worldtype; + +import net.minecraft.world.World; +import net.minecraft.world.WorldType; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.WorldChunkManager; + +public class WorldTypeBase extends WorldType +{ + + public WorldTypeBase(int par1, String par2Str) { + super(par1, par2Str); + } + + public WorldChunkManager getChunkManager(World var1) + { + return new WorldChunkManagerBOP(var1); + } + + public void removeAllBiomes() + { + this.removeBiome(BiomeGenBase.plains); + this.removeBiome(BiomeGenBase.desert); + this.removeBiome(BiomeGenBase.forest); + this.removeBiome(BiomeGenBase.extremeHills); + this.removeBiome(BiomeGenBase.taiga); + this.removeBiome(BiomeGenBase.swampland); + this.removeBiome(BiomeGenBase.jungle); + } +}