package net.minecraft.world.gen.structure; import java.util.Random; import net.minecraft.block.BlockLever; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.monster.EntityWitch; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Direction; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraftforge.common.ChestGenHooks; import static net.minecraftforge.common.ChestGenHooks.*; public class ComponentScatteredFeaturePieces { private static final String __OBFID = "CL_00000473"; public static void registerScatteredFeaturePieces() { MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.DesertPyramid.class, "TeDP"); MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.JunglePyramid.class, "TeJP"); MapGenStructureIO.registerStructureComponent(ComponentScatteredFeaturePieces.SwampHut.class, "TeSH"); } public static class DesertPyramid extends ComponentScatteredFeaturePieces.Feature { private boolean[] field_74940_h = new boolean[4]; /** List of items to generate in chests of Temples. */ public static final WeightedRandomChestContent[] itemsToGenerateInTemple = new WeightedRandomChestContent[] {new WeightedRandomChestContent(Items.diamond, 0, 1, 3, 3), new WeightedRandomChestContent(Items.iron_ingot, 0, 1, 5, 10), new WeightedRandomChestContent(Items.gold_ingot, 0, 2, 7, 15), new WeightedRandomChestContent(Items.emerald, 0, 1, 3, 2), new WeightedRandomChestContent(Items.bone, 0, 4, 6, 20), new WeightedRandomChestContent(Items.rotten_flesh, 0, 3, 7, 16), new WeightedRandomChestContent(Items.saddle, 0, 1, 1, 3), new WeightedRandomChestContent(Items.iron_horse_armor, 0, 1, 1, 1), new WeightedRandomChestContent(Items.golden_horse_armor, 0, 1, 1, 1), new WeightedRandomChestContent(Items.diamond_horse_armor, 0, 1, 1, 1)}; private static final String __OBFID = "CL_00000476"; public DesertPyramid() {} public DesertPyramid(Random p_i2062_1_, int p_i2062_2_, int p_i2062_3_) { super(p_i2062_1_, p_i2062_2_, 64, p_i2062_3_, 21, 15, 21); } /** * (abstract) Helper method to write subclass data to NBT */ protected void writeStructureToNBT(NBTTagCompound p_143012_1_) { super.writeStructureToNBT(p_143012_1_); p_143012_1_.setBoolean("hasPlacedChest0", this.field_74940_h[0]); p_143012_1_.setBoolean("hasPlacedChest1", this.field_74940_h[1]); p_143012_1_.setBoolean("hasPlacedChest2", this.field_74940_h[2]); p_143012_1_.setBoolean("hasPlacedChest3", this.field_74940_h[3]); } /** * (abstract) Helper method to read subclass data from NBT */ protected void readStructureFromNBT(NBTTagCompound p_143011_1_) { super.readStructureFromNBT(p_143011_1_); this.field_74940_h[0] = p_143011_1_.getBoolean("hasPlacedChest0"); this.field_74940_h[1] = p_143011_1_.getBoolean("hasPlacedChest1"); this.field_74940_h[2] = p_143011_1_.getBoolean("hasPlacedChest2"); this.field_74940_h[3] = p_143011_1_.getBoolean("hasPlacedChest3"); } /** * second Part of Structure generating, this for example places Spiderwebs, Mob Spawners, it closes * Mineshafts at the end, it adds Fences... */ public boolean addComponentParts(World p_74875_1_, Random p_74875_2_, StructureBoundingBox p_74875_3_) { this.fillWithBlocks(p_74875_1_, p_74875_3_, 0, -4, 0, this.scatteredFeatureSizeX - 1, 0, this.scatteredFeatureSizeZ - 1, Blocks.sandstone, Blocks.sandstone, false); int i; for (i = 1; i <= 9; ++i) { this.fillWithBlocks(p_74875_1_, p_74875_3_, i, i, i, this.scatteredFeatureSizeX - 1 - i, i, this.scatteredFeatureSizeZ - 1 - i, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, i + 1, i, i + 1, this.scatteredFeatureSizeX - 2 - i, i, this.scatteredFeatureSizeZ - 2 - i, Blocks.air, Blocks.air, false); } int j; for (i = 0; i < this.scatteredFeatureSizeX; ++i) { for (j = 0; j < this.scatteredFeatureSizeZ; ++j) { byte b0 = -5; this.func_151554_b(p_74875_1_, Blocks.sandstone, 0, i, b0, j, p_74875_3_); } } i = this.getMetadataWithOffset(Blocks.sandstone_stairs, 3); j = this.getMetadataWithOffset(Blocks.sandstone_stairs, 2); int k1 = this.getMetadataWithOffset(Blocks.sandstone_stairs, 0); int k = this.getMetadataWithOffset(Blocks.sandstone_stairs, 1); byte b1 = 1; byte b2 = 11; this.fillWithBlocks(p_74875_1_, p_74875_3_, 0, 0, 0, 4, 9, 4, Blocks.sandstone, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 1, 10, 1, 3, 10, 3, Blocks.sandstone, Blocks.sandstone, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, i, 2, 10, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, j, 2, 10, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, k1, 0, 10, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, k, 4, 10, 2, p_74875_3_); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 5, 0, 0, this.scatteredFeatureSizeX - 1, 9, 4, Blocks.sandstone, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 4, 10, 1, this.scatteredFeatureSizeX - 2, 10, 3, Blocks.sandstone, Blocks.sandstone, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, i, this.scatteredFeatureSizeX - 3, 10, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, j, this.scatteredFeatureSizeX - 3, 10, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, k1, this.scatteredFeatureSizeX - 5, 10, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, k, this.scatteredFeatureSizeX - 1, 10, 2, p_74875_3_); this.fillWithBlocks(p_74875_1_, p_74875_3_, 8, 0, 0, 12, 4, 4, Blocks.sandstone, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 9, 1, 0, 11, 3, 4, Blocks.air, Blocks.air, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 9, 1, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 9, 2, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 9, 3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 10, 3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 11, 3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 11, 2, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 11, 1, 1, p_74875_3_); this.fillWithBlocks(p_74875_1_, p_74875_3_, 4, 1, 1, 8, 3, 3, Blocks.sandstone, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 4, 1, 2, 8, 2, 2, Blocks.air, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 12, 1, 1, 16, 3, 3, Blocks.sandstone, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 12, 1, 2, 16, 2, 2, Blocks.air, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 5, 4, 5, this.scatteredFeatureSizeX - 6, 4, this.scatteredFeatureSizeZ - 6, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 9, 4, 9, 11, 4, 11, Blocks.air, Blocks.air, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 8, 1, 8, 8, 3, 8, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 12, 1, 8, 12, 3, 8, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 8, 1, 12, 8, 3, 12, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 12, 1, 12, 12, 3, 12, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 1, 1, 5, 4, 4, 11, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 5, 1, 5, this.scatteredFeatureSizeX - 2, 4, 11, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 6, 7, 9, 6, 7, 11, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 7, 7, 9, this.scatteredFeatureSizeX - 7, 7, 11, Blocks.sandstone, Blocks.sandstone, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 5, 5, 9, 5, 7, 11, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 6, 5, 9, this.scatteredFeatureSizeX - 6, 7, 11, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 5, 5, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 5, 6, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 6, 6, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, this.scatteredFeatureSizeX - 6, 5, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, this.scatteredFeatureSizeX - 6, 6, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, this.scatteredFeatureSizeX - 7, 6, 10, p_74875_3_); this.fillWithBlocks(p_74875_1_, p_74875_3_, 2, 4, 4, 2, 6, 4, Blocks.air, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 3, 4, 4, this.scatteredFeatureSizeX - 3, 6, 4, Blocks.air, Blocks.air, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, i, 2, 4, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, i, 2, 3, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, i, this.scatteredFeatureSizeX - 3, 4, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, i, this.scatteredFeatureSizeX - 3, 3, 4, p_74875_3_); this.fillWithBlocks(p_74875_1_, p_74875_3_, 1, 1, 3, 2, 2, 3, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 3, 1, 3, this.scatteredFeatureSizeX - 2, 2, 3, Blocks.sandstone, Blocks.sandstone, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, 0, 1, 1, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, 0, this.scatteredFeatureSizeX - 2, 1, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_slab, 1, 1, 2, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_slab, 1, this.scatteredFeatureSizeX - 2, 2, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, k, 2, 1, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone_stairs, k1, this.scatteredFeatureSizeX - 3, 1, 2, p_74875_3_); this.fillWithBlocks(p_74875_1_, p_74875_3_, 4, 3, 5, 4, 3, 18, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 5, 3, 5, this.scatteredFeatureSizeX - 5, 3, 17, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 3, 1, 5, 4, 2, 16, Blocks.air, Blocks.air, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, this.scatteredFeatureSizeX - 6, 1, 5, this.scatteredFeatureSizeX - 5, 2, 16, Blocks.air, Blocks.air, false); int l; for (l = 5; l <= 17; l += 2) { this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 4, 1, l, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, 4, 2, l, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, this.scatteredFeatureSizeX - 5, 1, l, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, this.scatteredFeatureSizeX - 5, 2, l, p_74875_3_); } this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 10, 0, 7, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 10, 0, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 9, 0, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 11, 0, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 8, 0, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 12, 0, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 7, 0, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 13, 0, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 9, 0, 11, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 11, 0, 11, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 10, 0, 12, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 10, 0, 13, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b2, 10, 0, 10, p_74875_3_); for (l = 0; l <= this.scatteredFeatureSizeX - 1; l += this.scatteredFeatureSizeX - 1) { this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 2, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 2, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 2, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 3, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 3, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 4, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, l, 4, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 4, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 5, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 5, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 5, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 6, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, l, 6, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 6, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 7, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 7, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 7, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 8, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 8, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 8, 3, p_74875_3_); } for (l = 2; l <= this.scatteredFeatureSizeX - 3; l += this.scatteredFeatureSizeX - 3 - 2) { this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l - 1, 2, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 2, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l + 1, 2, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l - 1, 3, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 3, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l + 1, 3, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l - 1, 4, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, l, 4, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l + 1, 4, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l - 1, 5, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 5, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l + 1, 5, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l - 1, 6, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, l, 6, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l + 1, 6, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l - 1, 7, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l, 7, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, l + 1, 7, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l - 1, 8, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l, 8, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, l + 1, 8, 0, p_74875_3_); } this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 8, 4, 0, 12, 6, 0, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 8, 6, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 12, 6, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 9, 5, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, 10, 5, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.wool, b1, 11, 5, 0, p_74875_3_); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 8, -14, 8, 12, -11, 12, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 8, -10, 8, 12, -10, 12, Blocks.sandstone, 1, Blocks.sandstone, 1, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 8, -9, 8, 12, -9, 12, Blocks.sandstone, 2, Blocks.sandstone, 2, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 8, -8, 8, 12, -1, 12, Blocks.sandstone, Blocks.sandstone, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 9, -11, 9, 11, -1, 11, Blocks.air, Blocks.air, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_pressure_plate, 0, 10, -11, 10, p_74875_3_); this.fillWithBlocks(p_74875_1_, p_74875_3_, 9, -13, 9, 11, -13, 11, Blocks.tnt, Blocks.air, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 8, -11, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 8, -10, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, 7, -10, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 7, -11, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 12, -11, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 12, -10, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, 13, -10, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 13, -11, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 10, -11, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 10, -10, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, 10, -10, 7, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 10, -11, 7, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 10, -11, 12, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 10, -10, 12, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 1, 10, -10, 13, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sandstone, 2, 10, -11, 13, p_74875_3_); for (l = 0; l < 4; ++l) { if (!this.field_74940_h[l]) { int i1 = Direction.offsetX[l] * 2; int j1 = Direction.offsetZ[l] * 2; this.field_74940_h[l] = this.generateStructureChestContents(p_74875_1_, p_74875_3_, p_74875_2_, 10 + i1, -11, 10 + j1, ChestGenHooks.getItems(PYRAMID_DESERT_CHEST, p_74875_2_), ChestGenHooks.getCount(PYRAMID_DESERT_CHEST, p_74875_2_)); } } return true; } } abstract static class Feature extends StructureComponent { /** The size of the bounding box for this feature in the X axis */ protected int scatteredFeatureSizeX; /** The size of the bounding box for this feature in the Y axis */ protected int scatteredFeatureSizeY; /** The size of the bounding box for this feature in the Z axis */ protected int scatteredFeatureSizeZ; protected int field_74936_d = -1; private static final String __OBFID = "CL_00000479"; public Feature() {} protected Feature(Random p_i2065_1_, int p_i2065_2_, int p_i2065_3_, int p_i2065_4_, int p_i2065_5_, int p_i2065_6_, int p_i2065_7_) { super(0); this.scatteredFeatureSizeX = p_i2065_5_; this.scatteredFeatureSizeY = p_i2065_6_; this.scatteredFeatureSizeZ = p_i2065_7_; this.coordBaseMode = p_i2065_1_.nextInt(4); switch (this.coordBaseMode) { case 0: case 2: this.boundingBox = new StructureBoundingBox(p_i2065_2_, p_i2065_3_, p_i2065_4_, p_i2065_2_ + p_i2065_5_ - 1, p_i2065_3_ + p_i2065_6_ - 1, p_i2065_4_ + p_i2065_7_ - 1); break; default: this.boundingBox = new StructureBoundingBox(p_i2065_2_, p_i2065_3_, p_i2065_4_, p_i2065_2_ + p_i2065_7_ - 1, p_i2065_3_ + p_i2065_6_ - 1, p_i2065_4_ + p_i2065_5_ - 1); } } /** * (abstract) Helper method to write subclass data to NBT */ protected void writeStructureToNBT(NBTTagCompound p_143012_1_) { p_143012_1_.setInteger("Width", this.scatteredFeatureSizeX); p_143012_1_.setInteger("Height", this.scatteredFeatureSizeY); p_143012_1_.setInteger("Depth", this.scatteredFeatureSizeZ); p_143012_1_.setInteger("HPos", this.field_74936_d); } /** * (abstract) Helper method to read subclass data from NBT */ protected void readStructureFromNBT(NBTTagCompound p_143011_1_) { this.scatteredFeatureSizeX = p_143011_1_.getInteger("Width"); this.scatteredFeatureSizeY = p_143011_1_.getInteger("Height"); this.scatteredFeatureSizeZ = p_143011_1_.getInteger("Depth"); this.field_74936_d = p_143011_1_.getInteger("HPos"); } protected boolean func_74935_a(World p_74935_1_, StructureBoundingBox p_74935_2_, int p_74935_3_) { if (this.field_74936_d >= 0) { return true; } else { int j = 0; int k = 0; for (int l = this.boundingBox.minZ; l <= this.boundingBox.maxZ; ++l) { for (int i1 = this.boundingBox.minX; i1 <= this.boundingBox.maxX; ++i1) { if (p_74935_2_.isVecInside(i1, 64, l)) { j += Math.max(p_74935_1_.getTopSolidOrLiquidBlock(i1, l), p_74935_1_.provider.getAverageGroundLevel()); ++k; } } } if (k == 0) { return false; } else { this.field_74936_d = j / k; this.boundingBox.offset(0, this.field_74936_d - this.boundingBox.minY + p_74935_3_, 0); return true; } } } } public static class JunglePyramid extends ComponentScatteredFeaturePieces.Feature { private boolean field_74947_h; private boolean field_74948_i; private boolean field_74945_j; private boolean field_74946_k; /** List of Chest contents to be generated in the Jungle Pyramid chests. */ public static final WeightedRandomChestContent[] junglePyramidsChestContents = new WeightedRandomChestContent[] {new WeightedRandomChestContent(Items.diamond, 0, 1, 3, 3), new WeightedRandomChestContent(Items.iron_ingot, 0, 1, 5, 10), new WeightedRandomChestContent(Items.gold_ingot, 0, 2, 7, 15), new WeightedRandomChestContent(Items.emerald, 0, 1, 3, 2), new WeightedRandomChestContent(Items.bone, 0, 4, 6, 20), new WeightedRandomChestContent(Items.rotten_flesh, 0, 3, 7, 16), new WeightedRandomChestContent(Items.saddle, 0, 1, 1, 3), new WeightedRandomChestContent(Items.iron_horse_armor, 0, 1, 1, 1), new WeightedRandomChestContent(Items.golden_horse_armor, 0, 1, 1, 1), new WeightedRandomChestContent(Items.diamond_horse_armor, 0, 1, 1, 1)}; /** List of Dispenser contents to be generated in the Jungle Pyramid dispensers. */ public static final WeightedRandomChestContent[] junglePyramidsDispenserContents = new WeightedRandomChestContent[] {new WeightedRandomChestContent(Items.arrow, 0, 2, 7, 30)}; /** List of random stones to be generated in the Jungle Pyramid. */ private static ComponentScatteredFeaturePieces.JunglePyramid.Stones junglePyramidsRandomScatteredStones = new ComponentScatteredFeaturePieces.JunglePyramid.Stones(null); private static final String __OBFID = "CL_00000477"; public JunglePyramid() {} public JunglePyramid(Random p_i2064_1_, int p_i2064_2_, int p_i2064_3_) { super(p_i2064_1_, p_i2064_2_, 64, p_i2064_3_, 12, 10, 15); } /** * (abstract) Helper method to write subclass data to NBT */ protected void writeStructureToNBT(NBTTagCompound p_143012_1_) { super.writeStructureToNBT(p_143012_1_); p_143012_1_.setBoolean("placedMainChest", this.field_74947_h); p_143012_1_.setBoolean("placedHiddenChest", this.field_74948_i); p_143012_1_.setBoolean("placedTrap1", this.field_74945_j); p_143012_1_.setBoolean("placedTrap2", this.field_74946_k); } /** * (abstract) Helper method to read subclass data from NBT */ protected void readStructureFromNBT(NBTTagCompound p_143011_1_) { super.readStructureFromNBT(p_143011_1_); this.field_74947_h = p_143011_1_.getBoolean("placedMainChest"); this.field_74948_i = p_143011_1_.getBoolean("placedHiddenChest"); this.field_74945_j = p_143011_1_.getBoolean("placedTrap1"); this.field_74946_k = p_143011_1_.getBoolean("placedTrap2"); } /** * second Part of Structure generating, this for example places Spiderwebs, Mob Spawners, it closes * Mineshafts at the end, it adds Fences... */ public boolean addComponentParts(World p_74875_1_, Random p_74875_2_, StructureBoundingBox p_74875_3_) { if (!this.func_74935_a(p_74875_1_, p_74875_3_, 0)) { return false; } else { int i = this.getMetadataWithOffset(Blocks.stone_stairs, 3); int j = this.getMetadataWithOffset(Blocks.stone_stairs, 2); int k = this.getMetadataWithOffset(Blocks.stone_stairs, 0); int l = this.getMetadataWithOffset(Blocks.stone_stairs, 1); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 0, -4, 0, this.scatteredFeatureSizeX - 1, 0, this.scatteredFeatureSizeZ - 1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 1, 2, 9, 2, 2, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 1, 12, 9, 2, 12, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 1, 3, 2, 2, 11, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 9, 1, 3, 9, 2, 11, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 1, 3, 1, 10, 6, 1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 1, 3, 13, 10, 6, 13, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 1, 3, 2, 1, 6, 12, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 10, 3, 2, 10, 6, 12, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 3, 2, 9, 3, 12, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 6, 2, 9, 6, 12, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 3, 7, 3, 8, 7, 11, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 4, 8, 4, 7, 8, 10, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithAir(p_74875_1_, p_74875_3_, 3, 1, 3, 8, 2, 11); this.fillWithAir(p_74875_1_, p_74875_3_, 4, 3, 6, 7, 3, 9); this.fillWithAir(p_74875_1_, p_74875_3_, 2, 4, 2, 9, 5, 12); this.fillWithAir(p_74875_1_, p_74875_3_, 4, 6, 5, 7, 6, 9); this.fillWithAir(p_74875_1_, p_74875_3_, 5, 7, 6, 6, 7, 8); this.fillWithAir(p_74875_1_, p_74875_3_, 5, 1, 2, 6, 2, 2); this.fillWithAir(p_74875_1_, p_74875_3_, 5, 2, 12, 6, 2, 12); this.fillWithAir(p_74875_1_, p_74875_3_, 5, 5, 1, 6, 5, 1); this.fillWithAir(p_74875_1_, p_74875_3_, 5, 5, 13, 6, 5, 13); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 1, 5, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 10, 5, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 1, 5, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 10, 5, 9, p_74875_3_); int i1; for (i1 = 0; i1 <= 14; i1 += 14) { this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 4, i1, 2, 5, i1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 4, 4, i1, 4, 5, i1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 7, 4, i1, 7, 5, i1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 9, 4, i1, 9, 5, i1, false, p_74875_2_, junglePyramidsRandomScatteredStones); } this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 5, 6, 0, 6, 6, 0, false, p_74875_2_, junglePyramidsRandomScatteredStones); for (i1 = 0; i1 <= 11; i1 += 11) { for (int j1 = 2; j1 <= 12; j1 += 2) { this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, i1, 4, j1, i1, 5, j1, false, p_74875_2_, junglePyramidsRandomScatteredStones); } this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, i1, 6, 5, i1, 6, 5, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, i1, 6, 9, i1, 6, 9, false, p_74875_2_, junglePyramidsRandomScatteredStones); } this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 7, 2, 2, 9, 2, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 9, 7, 2, 9, 9, 2, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, 7, 12, 2, 9, 12, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 9, 7, 12, 9, 9, 12, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 4, 9, 4, 4, 9, 4, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 7, 9, 4, 7, 9, 4, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 4, 9, 10, 4, 9, 10, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 7, 9, 10, 7, 9, 10, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 5, 9, 7, 6, 9, 7, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 5, 9, 6, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 6, 9, 6, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, j, 5, 9, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, j, 6, 9, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 4, 0, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 5, 0, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 6, 0, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 7, 0, 0, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 4, 1, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 4, 2, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 4, 3, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 7, 1, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 7, 2, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, i, 7, 3, 10, p_74875_3_); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 4, 1, 9, 4, 1, 9, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 7, 1, 9, 7, 1, 9, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 4, 1, 10, 7, 2, 10, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 5, 4, 5, 6, 4, 5, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, k, 4, 4, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, l, 7, 4, 5, p_74875_3_); for (i1 = 0; i1 < 4; ++i1) { this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, j, 5, 0 - i1, 6 + i1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stone_stairs, j, 6, 0 - i1, 6 + i1, p_74875_3_); this.fillWithAir(p_74875_1_, p_74875_3_, 5, 0 - i1, 7 + i1, 6, 0 - i1, 9 + i1); } this.fillWithAir(p_74875_1_, p_74875_3_, 1, -3, 12, 10, -1, 13); this.fillWithAir(p_74875_1_, p_74875_3_, 1, -3, 1, 3, -1, 13); this.fillWithAir(p_74875_1_, p_74875_3_, 1, -3, 1, 9, -1, 5); for (i1 = 1; i1 <= 13; i1 += 2) { this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 1, -3, i1, 1, -2, i1, false, p_74875_2_, junglePyramidsRandomScatteredStones); } for (i1 = 2; i1 <= 12; i1 += 2) { this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 1, -1, i1, 3, -1, i1, false, p_74875_2_, junglePyramidsRandomScatteredStones); } this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 2, -2, 1, 5, -2, 1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 7, -2, 1, 9, -2, 1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 6, -3, 1, 6, -3, 1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 6, -1, 1, 6, -1, 1, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire_hook, this.getMetadataWithOffset(Blocks.tripwire_hook, 3) | 4, 1, -3, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire_hook, this.getMetadataWithOffset(Blocks.tripwire_hook, 1) | 4, 4, -3, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire, 4, 2, -3, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire, 4, 3, -3, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 5, -3, 7, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 5, -3, 6, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 5, -3, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 5, -3, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 5, -3, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 5, -3, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 5, -3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 4, -3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 3, -3, 1, p_74875_3_); ChestGenHooks dispenser = ChestGenHooks.getInfo(PYRAMID_JUNGLE_DISPENSER); ChestGenHooks chest = ChestGenHooks.getInfo(PYRAMID_JUNGLE_CHEST); if (!this.field_74945_j) { this.field_74945_j = this.generateStructureDispenserContents(p_74875_1_, p_74875_3_, p_74875_2_, 3, -2, 1, 2, dispenser.getItems(p_74875_2_), dispenser.getCount(p_74875_2_)); } this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.vine, 15, 3, -2, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire_hook, this.getMetadataWithOffset(Blocks.tripwire_hook, 2) | 4, 7, -3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire_hook, this.getMetadataWithOffset(Blocks.tripwire_hook, 0) | 4, 7, -3, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire, 4, 7, -3, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire, 4, 7, -3, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.tripwire, 4, 7, -3, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 8, -3, 6, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 9, -3, 6, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 9, -3, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 9, -3, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 9, -2, 4, p_74875_3_); if (!this.field_74946_k) { this.field_74946_k = this.generateStructureDispenserContents(p_74875_1_, p_74875_3_, p_74875_2_, 9, -2, 3, 4, dispenser.getItems(p_74875_2_), dispenser.getCount(p_74875_2_)); } this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.vine, 15, 8, -1, 3, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.vine, 15, 8, -2, 3, p_74875_3_); if (!this.field_74947_h) { this.field_74947_h = this.generateStructureChestContents(p_74875_1_, p_74875_3_, p_74875_2_, 8, -3, 3, chest.getItems(p_74875_2_), chest.getCount(p_74875_2_)); } this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 9, -3, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 8, -3, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 4, -3, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 5, -2, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 5, -1, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 6, -3, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 7, -2, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 7, -1, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 8, -3, 5, p_74875_3_); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 9, -1, 1, 9, -1, 5, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithAir(p_74875_1_, p_74875_3_, 8, -3, 8, 10, -1, 10); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stonebrick, 3, 8, -2, 11, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stonebrick, 3, 9, -2, 11, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.stonebrick, 3, 10, -2, 11, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.lever, BlockLever.invertMetadata(this.getMetadataWithOffset(Blocks.lever, 2)), 8, -2, 12, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.lever, BlockLever.invertMetadata(this.getMetadataWithOffset(Blocks.lever, 2)), 9, -2, 12, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.lever, BlockLever.invertMetadata(this.getMetadataWithOffset(Blocks.lever, 2)), 10, -2, 12, p_74875_3_); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 8, -3, 8, 8, -3, 10, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.fillWithRandomizedBlocks(p_74875_1_, p_74875_3_, 10, -3, 8, 10, -3, 10, false, p_74875_2_, junglePyramidsRandomScatteredStones); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.mossy_cobblestone, 0, 10, -2, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 8, -2, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 8, -2, 10, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.redstone_wire, 0, 10, -1, 9, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sticky_piston, 1, 9, -2, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sticky_piston, this.getMetadataWithOffset(Blocks.sticky_piston, 4), 10, -2, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.sticky_piston, this.getMetadataWithOffset(Blocks.sticky_piston, 4), 10, -1, 8, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.unpowered_repeater, this.getMetadataWithOffset(Blocks.unpowered_repeater, 2), 10, -2, 10, p_74875_3_); if (!this.field_74948_i) { this.field_74948_i = this.generateStructureChestContents(p_74875_1_, p_74875_3_, p_74875_2_, 9, -3, 10, chest.getItems(p_74875_2_), chest.getCount(p_74875_2_)); } return true; } } static class Stones extends StructureComponent.BlockSelector { private static final String __OBFID = "CL_00000478"; private Stones() {} /** * picks Block Ids and Metadata (Silverfish) */ public void selectBlocks(Random p_75062_1_, int p_75062_2_, int p_75062_3_, int p_75062_4_, boolean p_75062_5_) { if (p_75062_1_.nextFloat() < 0.4F) { this.field_151562_a = Blocks.cobblestone; } else { this.field_151562_a = Blocks.mossy_cobblestone; } } Stones(Object p_i2063_1_) { this(); } } } public static class SwampHut extends ComponentScatteredFeaturePieces.Feature { /** Whether this swamp hut has a witch. */ private boolean hasWitch; private static final String __OBFID = "CL_00000480"; public SwampHut() {} public SwampHut(Random p_i2066_1_, int p_i2066_2_, int p_i2066_3_) { super(p_i2066_1_, p_i2066_2_, 64, p_i2066_3_, 7, 5, 9); } /** * (abstract) Helper method to write subclass data to NBT */ protected void writeStructureToNBT(NBTTagCompound p_143012_1_) { super.writeStructureToNBT(p_143012_1_); p_143012_1_.setBoolean("Witch", this.hasWitch); } /** * (abstract) Helper method to read subclass data from NBT */ protected void readStructureFromNBT(NBTTagCompound p_143011_1_) { super.readStructureFromNBT(p_143011_1_); this.hasWitch = p_143011_1_.getBoolean("Witch"); } /** * second Part of Structure generating, this for example places Spiderwebs, Mob Spawners, it closes * Mineshafts at the end, it adds Fences... */ public boolean addComponentParts(World p_74875_1_, Random p_74875_2_, StructureBoundingBox p_74875_3_) { if (!this.func_74935_a(p_74875_1_, p_74875_3_, 0)) { return false; } else { this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 1, 1, 1, 5, 1, 7, Blocks.planks, 1, Blocks.planks, 1, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 1, 4, 2, 5, 4, 7, Blocks.planks, 1, Blocks.planks, 1, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 2, 1, 0, 4, 1, 0, Blocks.planks, 1, Blocks.planks, 1, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 2, 2, 2, 3, 3, 2, Blocks.planks, 1, Blocks.planks, 1, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 1, 2, 3, 1, 3, 6, Blocks.planks, 1, Blocks.planks, 1, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 5, 2, 3, 5, 3, 6, Blocks.planks, 1, Blocks.planks, 1, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 2, 2, 7, 4, 3, 7, Blocks.planks, 1, Blocks.planks, 1, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 1, 0, 2, 1, 3, 2, Blocks.log, Blocks.log, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 5, 0, 2, 5, 3, 2, Blocks.log, Blocks.log, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 1, 0, 7, 1, 3, 7, Blocks.log, Blocks.log, false); this.fillWithBlocks(p_74875_1_, p_74875_3_, 5, 0, 7, 5, 3, 7, Blocks.log, Blocks.log, false); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.fence, 0, 2, 3, 2, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.fence, 0, 3, 3, 7, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 1, 3, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 5, 3, 4, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.air, 0, 5, 3, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.flower_pot, 7, 1, 3, 5, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.crafting_table, 0, 3, 2, 6, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.cauldron, 0, 4, 2, 6, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.fence, 0, 1, 2, 1, p_74875_3_); this.placeBlockAtCurrentPosition(p_74875_1_, Blocks.fence, 0, 5, 2, 1, p_74875_3_); int i = this.getMetadataWithOffset(Blocks.oak_stairs, 3); int j = this.getMetadataWithOffset(Blocks.oak_stairs, 1); int k = this.getMetadataWithOffset(Blocks.oak_stairs, 0); int l = this.getMetadataWithOffset(Blocks.oak_stairs, 2); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 0, 4, 1, 6, 4, 1, Blocks.spruce_stairs, i, Blocks.spruce_stairs, i, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 0, 4, 2, 0, 4, 7, Blocks.spruce_stairs, k, Blocks.spruce_stairs, k, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 6, 4, 2, 6, 4, 7, Blocks.spruce_stairs, j, Blocks.spruce_stairs, j, false); this.fillWithMetadataBlocks(p_74875_1_, p_74875_3_, 0, 4, 8, 6, 4, 8, Blocks.spruce_stairs, l, Blocks.spruce_stairs, l, false); int i1; int j1; for (i1 = 2; i1 <= 7; i1 += 5) { for (j1 = 1; j1 <= 5; j1 += 4) { this.func_151554_b(p_74875_1_, Blocks.log, 0, j1, -1, i1, p_74875_3_); } } if (!this.hasWitch) { i1 = this.getXWithOffset(2, 5); j1 = this.getYWithOffset(2); int k1 = this.getZWithOffset(2, 5); if (p_74875_3_.isVecInside(i1, j1, k1)) { this.hasWitch = true; EntityWitch entitywitch = new EntityWitch(p_74875_1_); entitywitch.setLocationAndAngles((double)i1 + 0.5D, (double)j1, (double)k1 + 0.5D, 0.0F, 0.0F); entitywitch.onSpawnWithEgg((IEntityLivingData)null); p_74875_1_.spawnEntityInWorld(entitywitch); } } return true; } } } }