static {
   registerStructure(StructureMineshaftStart.class, "Mineshaft");
   registerStructure(MapGenVillage.Start.class, "Village");
   registerStructure(MapGenNetherBridge.Start.class, "Fortress");
   registerStructure(MapGenStronghold.Start.class, "Stronghold");
   registerStructure(MapGenScatteredFeature.Start.class, "Temple");
   registerStructure(StructureOceanMonument.StartMonument.class, "Monument");
   StructureMineshaftPieces.registerStructurePieces();
   StructureVillagePieces.registerVillagePieces();
   StructureNetherBridgePieces.registerNetherFortressPieces();
   StructureStrongholdPieces.registerStrongholdPieces();
   ComponentScatteredFeaturePieces.registerScatteredFeaturePieces();
   StructureOceanMonumentPieces.func_175970_a();
 }
 public boolean func_35023_a(
     World world, Random random, StructureBoundingBox structureboundingbox) {
   if (func_35013_a(world, structureboundingbox)) {
     return false;
   } else {
     if (!field_35036_a) ;
     func_35022_a(
         world,
         structureboundingbox,
         0,
         0,
         0,
         4,
         10,
         4,
         true,
         random,
         StructureStrongholdPieces.func_35852_b());
     func_35033_a(world, random, structureboundingbox, field_35035_b, 1, 7, 0);
     func_35033_a(world, random, structureboundingbox, EnumDoor.OPENING, 1, 1, 4);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 2, 6, 1, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 1, 5, 1, structureboundingbox);
     func_35018_a(world, Block.stairSingle.blockID, 0, 1, 6, 1, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 1, 5, 2, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 1, 4, 3, structureboundingbox);
     func_35018_a(world, Block.stairSingle.blockID, 0, 1, 5, 3, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 2, 4, 3, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 3, 3, 3, structureboundingbox);
     func_35018_a(world, Block.stairSingle.blockID, 0, 3, 4, 3, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 3, 3, 2, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 3, 2, 1, structureboundingbox);
     func_35018_a(world, Block.stairSingle.blockID, 0, 3, 3, 1, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 2, 2, 1, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 1, 1, 1, structureboundingbox);
     func_35018_a(world, Block.stairSingle.blockID, 0, 1, 2, 1, structureboundingbox);
     func_35018_a(world, Block.field_35285_bn.blockID, 0, 1, 1, 2, structureboundingbox);
     func_35018_a(world, Block.stairSingle.blockID, 0, 1, 1, 3, structureboundingbox);
     return true;
   }
 }
 public boolean func_74875_a(
     World p_74875_1_, Random p_74875_2_, StructureBoundingBox p_74875_3_) {
   if (func_74860_a(p_74875_1_, p_74875_3_)) {
     return false;
   }
   func_74882_a(
       p_74875_1_,
       p_74875_3_,
       0,
       0,
       0,
       9,
       8,
       10,
       true,
       p_74875_2_,
       StructureStrongholdPieces.func_75197_b());
   func_74990_a(p_74875_1_, p_74875_2_, p_74875_3_, field_74998_a, 4, 3, 0);
   if (field_74996_b) {
     func_74884_a(p_74875_1_, p_74875_3_, 0, 3, 1, 0, 5, 3, 0, 0, false);
   }
   if (field_74995_d) {
     func_74884_a(p_74875_1_, p_74875_3_, 9, 3, 1, 9, 5, 3, 0, 0, false);
   }
   if (field_74997_c) {
     func_74884_a(p_74875_1_, p_74875_3_, 0, 5, 7, 0, 7, 9, 0, 0, false);
   }
   if (field_74999_h) {
     func_74884_a(p_74875_1_, p_74875_3_, 9, 5, 7, 9, 7, 9, 0, 0, false);
   }
   func_74884_a(p_74875_1_, p_74875_3_, 5, 1, 10, 7, 3, 10, 0, 0, false);
   func_74882_a(
       p_74875_1_,
       p_74875_3_,
       1,
       2,
       1,
       8,
       2,
       6,
       false,
       p_74875_2_,
       StructureStrongholdPieces.func_75197_b());
   func_74882_a(
       p_74875_1_,
       p_74875_3_,
       4,
       1,
       5,
       4,
       4,
       9,
       false,
       p_74875_2_,
       StructureStrongholdPieces.func_75197_b());
   func_74882_a(
       p_74875_1_,
       p_74875_3_,
       8,
       1,
       5,
       8,
       4,
       9,
       false,
       p_74875_2_,
       StructureStrongholdPieces.func_75197_b());
   func_74882_a(
       p_74875_1_,
       p_74875_3_,
       1,
       4,
       7,
       3,
       4,
       9,
       false,
       p_74875_2_,
       StructureStrongholdPieces.func_75197_b());
   func_74882_a(
       p_74875_1_,
       p_74875_3_,
       1,
       3,
       5,
       3,
       3,
       6,
       false,
       p_74875_2_,
       StructureStrongholdPieces.func_75197_b());
   func_74884_a(
       p_74875_1_,
       p_74875_3_,
       1,
       3,
       4,
       3,
       3,
       4,
       Block.field_72079_ak.field_71990_ca,
       Block.field_72079_ak.field_71990_ca,
       false);
   func_74884_a(
       p_74875_1_,
       p_74875_3_,
       1,
       4,
       6,
       3,
       4,
       6,
       Block.field_72079_ak.field_71990_ca,
       Block.field_72079_ak.field_71990_ca,
       false);
   func_74882_a(
       p_74875_1_,
       p_74875_3_,
       5,
       1,
       7,
       7,
       1,
       8,
       false,
       p_74875_2_,
       StructureStrongholdPieces.func_75197_b());
   func_74884_a(
       p_74875_1_,
       p_74875_3_,
       5,
       1,
       9,
       7,
       1,
       9,
       Block.field_72079_ak.field_71990_ca,
       Block.field_72079_ak.field_71990_ca,
       false);
   func_74884_a(
       p_74875_1_,
       p_74875_3_,
       5,
       2,
       7,
       7,
       2,
       7,
       Block.field_72079_ak.field_71990_ca,
       Block.field_72079_ak.field_71990_ca,
       false);
   func_74884_a(
       p_74875_1_,
       p_74875_3_,
       4,
       5,
       7,
       4,
       5,
       9,
       Block.field_72079_ak.field_71990_ca,
       Block.field_72079_ak.field_71990_ca,
       false);
   func_74884_a(
       p_74875_1_,
       p_74875_3_,
       8,
       5,
       7,
       8,
       5,
       9,
       Block.field_72079_ak.field_71990_ca,
       Block.field_72079_ak.field_71990_ca,
       false);
   func_74884_a(
       p_74875_1_,
       p_74875_3_,
       5,
       5,
       7,
       7,
       5,
       9,
       Block.field_72085_aj.field_71990_ca,
       Block.field_72085_aj.field_71990_ca,
       false);
   func_74864_a(p_74875_1_, Block.field_72069_aq.field_71990_ca, 0, 6, 5, 6, p_74875_3_);
   return true;
 }
  /**
   * 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 par1World, Random par2Random, StructureBoundingBox par3StructureBoundingBox) {
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        0,
        0,
        0,
        10,
        7,
        15,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.placeDoor(par1World, par2Random, par3StructureBoundingBox, EnumDoor.GRATES, 4, 1, 0);
    byte var4 = 6;
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        1,
        var4,
        1,
        1,
        var4,
        14,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        9,
        var4,
        1,
        9,
        var4,
        14,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        2,
        var4,
        1,
        8,
        var4,
        2,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        2,
        var4,
        14,
        8,
        var4,
        14,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        1,
        1,
        1,
        2,
        1,
        4,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        8,
        1,
        1,
        9,
        1,
        4,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithBlocks(
        par1World,
        par3StructureBoundingBox,
        1,
        1,
        1,
        1,
        1,
        3,
        Block.lavaMoving.blockID,
        Block.lavaMoving.blockID,
        false);
    this.fillWithBlocks(
        par1World,
        par3StructureBoundingBox,
        9,
        1,
        1,
        9,
        1,
        3,
        Block.lavaMoving.blockID,
        Block.lavaMoving.blockID,
        false);
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        3,
        1,
        8,
        7,
        1,
        12,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithBlocks(
        par1World,
        par3StructureBoundingBox,
        4,
        1,
        9,
        6,
        1,
        11,
        Block.lavaMoving.blockID,
        Block.lavaMoving.blockID,
        false);
    int var5;

    for (var5 = 3; var5 < 14; var5 += 2) {
      this.fillWithBlocks(
          par1World,
          par3StructureBoundingBox,
          0,
          3,
          var5,
          0,
          4,
          var5,
          Block.fenceIron.blockID,
          Block.fenceIron.blockID,
          false);
      this.fillWithBlocks(
          par1World,
          par3StructureBoundingBox,
          10,
          3,
          var5,
          10,
          4,
          var5,
          Block.fenceIron.blockID,
          Block.fenceIron.blockID,
          false);
    }

    for (var5 = 2; var5 < 9; var5 += 2) {
      this.fillWithBlocks(
          par1World,
          par3StructureBoundingBox,
          var5,
          3,
          15,
          var5,
          4,
          15,
          Block.fenceIron.blockID,
          Block.fenceIron.blockID,
          false);
    }

    var5 = this.getMetadataWithOffset(Block.stairsStoneBrickSmooth.blockID, 3);
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        4,
        1,
        5,
        6,
        1,
        7,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        4,
        2,
        6,
        6,
        2,
        7,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    this.fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        4,
        3,
        7,
        6,
        3,
        7,
        false,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());

    for (int var6 = 4; var6 <= 6; ++var6) {
      this.placeBlockAtCurrentPosition(
          par1World,
          Block.stairsStoneBrickSmooth.blockID,
          var5,
          var6,
          1,
          4,
          par3StructureBoundingBox);
      this.placeBlockAtCurrentPosition(
          par1World,
          Block.stairsStoneBrickSmooth.blockID,
          var5,
          var6,
          2,
          5,
          par3StructureBoundingBox);
      this.placeBlockAtCurrentPosition(
          par1World,
          Block.stairsStoneBrickSmooth.blockID,
          var5,
          var6,
          3,
          6,
          par3StructureBoundingBox);
    }

    byte var14 = 2;
    byte var7 = 0;
    byte var8 = 3;
    byte var9 = 1;

    switch (this.coordBaseMode) {
      case 0:
        var14 = 0;
        var7 = 2;
        break;

      case 1:
        var14 = 1;
        var7 = 3;
        var8 = 0;
        var9 = 2;

      case 2:
      default:
        break;

      case 3:
        var14 = 3;
        var7 = 1;
        var8 = 0;
        var9 = 2;
    }

    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var14 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        4,
        3,
        8,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var14 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        5,
        3,
        8,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var14 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        6,
        3,
        8,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var7 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        4,
        3,
        12,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var7 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        5,
        3,
        12,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var7 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        6,
        3,
        12,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var8 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        3,
        3,
        9,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var8 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        3,
        3,
        10,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var8 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        3,
        3,
        11,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var9 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        7,
        3,
        9,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var9 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        7,
        3,
        10,
        par3StructureBoundingBox);
    this.placeBlockAtCurrentPosition(
        par1World,
        Block.endPortalFrame.blockID,
        var9 + (par2Random.nextFloat() > 0.9F ? 4 : 0),
        7,
        3,
        11,
        par3StructureBoundingBox);

    if (!this.hasSpawner) {
      int var13 = this.getYWithOffset(3);
      int var10 = this.getXWithOffset(5, 6);
      int var11 = this.getZWithOffset(5, 6);

      if (par3StructureBoundingBox.isVecInside(var10, var13, var11)) {
        this.hasSpawner = true;
        par1World.setBlockWithNotify(var10, var13, var11, Block.mobSpawner.blockID);
        TileEntityMobSpawner var12 =
            (TileEntityMobSpawner) par1World.getBlockTileEntity(var10, var13, var11);

        if (var12 != null) {
          var12.setMobID("Silverfish");
        }
      }
    }

    return true;
  }
  /**
   * 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 par1World, Random par2Random, StructureBoundingBox par3StructureBoundingBox) {
    if (this.isLiquidInStructureBoundingBox(par1World, par3StructureBoundingBox)) {
      return false;
    } else {
      byte var4 = 11;

      if (!this.isLargeRoom) {
        var4 = 6;
      }

      this.fillWithRandomizedBlocks(
          par1World,
          par3StructureBoundingBox,
          0,
          0,
          0,
          13,
          var4 - 1,
          14,
          true,
          par2Random,
          StructureStrongholdPieces.getStrongholdStones());
      this.placeDoor(par1World, par2Random, par3StructureBoundingBox, this.doorType, 4, 1, 0);
      this.randomlyFillWithBlocks(
          par1World,
          par3StructureBoundingBox,
          par2Random,
          0.07F,
          2,
          1,
          1,
          11,
          4,
          13,
          Block.web.blockID,
          Block.web.blockID,
          false);
      int var7;

      for (var7 = 1; var7 <= 13; ++var7) {
        if ((var7 - 1) % 4 == 0) {
          this.fillWithBlocks(
              par1World,
              par3StructureBoundingBox,
              1,
              1,
              var7,
              1,
              4,
              var7,
              Block.planks.blockID,
              Block.planks.blockID,
              false);
          this.fillWithBlocks(
              par1World,
              par3StructureBoundingBox,
              12,
              1,
              var7,
              12,
              4,
              var7,
              Block.planks.blockID,
              Block.planks.blockID,
              false);
          this.placeBlockAtCurrentPosition(
              par1World, Block.torchWood.blockID, 0, 2, 3, var7, par3StructureBoundingBox);
          this.placeBlockAtCurrentPosition(
              par1World, Block.torchWood.blockID, 0, 11, 3, var7, par3StructureBoundingBox);

          if (this.isLargeRoom) {
            this.fillWithBlocks(
                par1World,
                par3StructureBoundingBox,
                1,
                6,
                var7,
                1,
                9,
                var7,
                Block.planks.blockID,
                Block.planks.blockID,
                false);
            this.fillWithBlocks(
                par1World,
                par3StructureBoundingBox,
                12,
                6,
                var7,
                12,
                9,
                var7,
                Block.planks.blockID,
                Block.planks.blockID,
                false);
          }
        } else {
          this.fillWithBlocks(
              par1World,
              par3StructureBoundingBox,
              1,
              1,
              var7,
              1,
              4,
              var7,
              Block.bookShelf.blockID,
              Block.bookShelf.blockID,
              false);
          this.fillWithBlocks(
              par1World,
              par3StructureBoundingBox,
              12,
              1,
              var7,
              12,
              4,
              var7,
              Block.bookShelf.blockID,
              Block.bookShelf.blockID,
              false);

          if (this.isLargeRoom) {
            this.fillWithBlocks(
                par1World,
                par3StructureBoundingBox,
                1,
                6,
                var7,
                1,
                9,
                var7,
                Block.bookShelf.blockID,
                Block.bookShelf.blockID,
                false);
            this.fillWithBlocks(
                par1World,
                par3StructureBoundingBox,
                12,
                6,
                var7,
                12,
                9,
                var7,
                Block.bookShelf.blockID,
                Block.bookShelf.blockID,
                false);
          }
        }
      }

      for (var7 = 3; var7 < 12; var7 += 2) {
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            3,
            1,
            var7,
            4,
            3,
            var7,
            Block.bookShelf.blockID,
            Block.bookShelf.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            6,
            1,
            var7,
            7,
            3,
            var7,
            Block.bookShelf.blockID,
            Block.bookShelf.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            9,
            1,
            var7,
            10,
            3,
            var7,
            Block.bookShelf.blockID,
            Block.bookShelf.blockID,
            false);
      }

      if (this.isLargeRoom) {
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            1,
            5,
            1,
            3,
            5,
            13,
            Block.planks.blockID,
            Block.planks.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            10,
            5,
            1,
            12,
            5,
            13,
            Block.planks.blockID,
            Block.planks.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            4,
            5,
            1,
            9,
            5,
            2,
            Block.planks.blockID,
            Block.planks.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            4,
            5,
            12,
            9,
            5,
            13,
            Block.planks.blockID,
            Block.planks.blockID,
            false);
        this.placeBlockAtCurrentPosition(
            par1World, Block.planks.blockID, 0, 9, 5, 11, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.planks.blockID, 0, 8, 5, 11, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.planks.blockID, 0, 9, 5, 10, par3StructureBoundingBox);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            3,
            6,
            2,
            3,
            6,
            12,
            Block.fence.blockID,
            Block.fence.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            10,
            6,
            2,
            10,
            6,
            10,
            Block.fence.blockID,
            Block.fence.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            4,
            6,
            2,
            9,
            6,
            2,
            Block.fence.blockID,
            Block.fence.blockID,
            false);
        this.fillWithBlocks(
            par1World,
            par3StructureBoundingBox,
            4,
            6,
            12,
            8,
            6,
            12,
            Block.fence.blockID,
            Block.fence.blockID,
            false);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, 9, 6, 11, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, 8, 6, 11, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, 9, 6, 10, par3StructureBoundingBox);
        var7 = this.getMetadataWithOffset(Block.ladder.blockID, 3);
        this.placeBlockAtCurrentPosition(
            par1World, Block.ladder.blockID, var7, 10, 1, 13, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.ladder.blockID, var7, 10, 2, 13, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.ladder.blockID, var7, 10, 3, 13, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.ladder.blockID, var7, 10, 4, 13, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.ladder.blockID, var7, 10, 5, 13, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.ladder.blockID, var7, 10, 6, 13, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.ladder.blockID, var7, 10, 7, 13, par3StructureBoundingBox);
        byte var8 = 7;
        byte var9 = 7;
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8 - 1, 9, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8, 9, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8 - 1, 8, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8, 8, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8 - 1, 7, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8, 7, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8 - 2, 7, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8 + 1, 7, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8 - 1, 7, var9 - 1, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8 - 1, 7, var9 + 1, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8, 7, var9 - 1, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.fence.blockID, 0, var8, 7, var9 + 1, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.torchWood.blockID, 0, var8 - 2, 8, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.torchWood.blockID, 0, var8 + 1, 8, var9, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.torchWood.blockID, 0, var8 - 1, 8, var9 - 1, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.torchWood.blockID, 0, var8 - 1, 8, var9 + 1, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.torchWood.blockID, 0, var8, 8, var9 - 1, par3StructureBoundingBox);
        this.placeBlockAtCurrentPosition(
            par1World, Block.torchWood.blockID, 0, var8, 8, var9 + 1, par3StructureBoundingBox);
      }

      this.generateStructureChestContents(
          par1World,
          par3StructureBoundingBox,
          par2Random,
          3,
          3,
          5,
          WeightedRandomChestContent.func_92080_a(
              strongholdLibraryChestContents,
              new WeightedRandomChestContent[] {
                Item.field_92105_bW.func_92112_a(par2Random, 1, 5, 2)
              }),
          1 + par2Random.nextInt(4));

      if (this.isLargeRoom) {
        this.placeBlockAtCurrentPosition(par1World, 0, 0, 12, 9, 1, par3StructureBoundingBox);
        this.generateStructureChestContents(
            par1World,
            par3StructureBoundingBox,
            par2Random,
            12,
            8,
            1,
            WeightedRandomChestContent.func_92080_a(
                strongholdLibraryChestContents,
                new WeightedRandomChestContent[] {
                  Item.field_92105_bW.func_92112_a(par2Random, 1, 5, 2)
                }),
            1 + par2Random.nextInt(4));
      }

      return true;
    }
  }
 public boolean func_35023_a(
     World world, Random random, StructureBoundingBox structureboundingbox) {
   if (func_35013_a(world, structureboundingbox)) {
     return false;
   } else {
     func_35022_a(
         world,
         structureboundingbox,
         0,
         0,
         0,
         8,
         4,
         10,
         true,
         random,
         StructureStrongholdPieces.func_35852_b());
     func_35033_a(world, random, structureboundingbox, field_35064_a, 1, 1, 0);
     func_35011_a(world, structureboundingbox, 1, 1, 10, 3, 3, 10, 0, 0, false);
     func_35022_a(
         world,
         structureboundingbox,
         4,
         1,
         1,
         4,
         3,
         1,
         false,
         random,
         StructureStrongholdPieces.func_35852_b());
     func_35022_a(
         world,
         structureboundingbox,
         4,
         1,
         3,
         4,
         3,
         3,
         false,
         random,
         StructureStrongholdPieces.func_35852_b());
     func_35022_a(
         world,
         structureboundingbox,
         4,
         1,
         7,
         4,
         3,
         7,
         false,
         random,
         StructureStrongholdPieces.func_35852_b());
     func_35022_a(
         world,
         structureboundingbox,
         4,
         1,
         9,
         4,
         3,
         9,
         false,
         random,
         StructureStrongholdPieces.func_35852_b());
     func_35011_a(
         world,
         structureboundingbox,
         4,
         1,
         4,
         4,
         3,
         6,
         Block.fenceIron.blockID,
         Block.fenceIron.blockID,
         false);
     func_35011_a(
         world,
         structureboundingbox,
         5,
         1,
         5,
         7,
         3,
         5,
         Block.fenceIron.blockID,
         Block.fenceIron.blockID,
         false);
     func_35018_a(world, Block.fenceIron.blockID, 0, 4, 3, 2, structureboundingbox);
     func_35018_a(world, Block.fenceIron.blockID, 0, 4, 3, 8, structureboundingbox);
     func_35018_a(
         world,
         Block.doorSteel.blockID,
         func_35009_c(Block.doorSteel.blockID, 3),
         4,
         1,
         2,
         structureboundingbox);
     func_35018_a(
         world,
         Block.doorSteel.blockID,
         func_35009_c(Block.doorSteel.blockID, 3) + 8,
         4,
         2,
         2,
         structureboundingbox);
     func_35018_a(
         world,
         Block.doorSteel.blockID,
         func_35009_c(Block.doorSteel.blockID, 3),
         4,
         1,
         8,
         structureboundingbox);
     func_35018_a(
         world,
         Block.doorSteel.blockID,
         func_35009_c(Block.doorSteel.blockID, 3) + 8,
         4,
         2,
         8,
         structureboundingbox);
     return true;
   }
 }
  /**
   * '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 par1World, Random par2Random, StructureBoundingBox par3StructureBoundingBox) {
    if (isLiquidInStructureBoundingBox(par1World, par3StructureBoundingBox)) {
      return false;
    }

    fillWithRandomizedBlocks(
        par1World,
        par3StructureBoundingBox,
        0,
        0,
        0,
        4,
        4,
        6,
        true,
        par2Random,
        StructureStrongholdPieces.getStrongholdStones());
    placeDoor(par1World, par2Random, par3StructureBoundingBox, doorType, 1, 1, 0);
    placeDoor(par1World, par2Random, par3StructureBoundingBox, EnumDoor.OPENING, 1, 1, 6);
    fillWithBlocks(
        par1World,
        par3StructureBoundingBox,
        3,
        1,
        2,
        3,
        1,
        4,
        Block.stoneBrick.blockID,
        Block.stoneBrick.blockID,
        false);
    placeBlockAtCurrentPosition(
        par1World, Block.stairSingle.blockID, 5, 3, 1, 1, par3StructureBoundingBox);
    placeBlockAtCurrentPosition(
        par1World, Block.stairSingle.blockID, 5, 3, 1, 5, par3StructureBoundingBox);
    placeBlockAtCurrentPosition(
        par1World, Block.stairSingle.blockID, 5, 3, 2, 2, par3StructureBoundingBox);
    placeBlockAtCurrentPosition(
        par1World, Block.stairSingle.blockID, 5, 3, 2, 4, par3StructureBoundingBox);

    for (int i = 2; i <= 4; i++) {
      placeBlockAtCurrentPosition(
          par1World, Block.stairSingle.blockID, 5, 2, 1, i, par3StructureBoundingBox);
    }

    if (!hasMadeChest) {
      int j = getYWithOffset(2);
      int k = getXWithOffset(3, 3);
      int l = getZWithOffset(3, 3);

      if (par3StructureBoundingBox.isVecInside(k, j, l)) {
        hasMadeChest = true;
        createTreasureChestAtCurrentPosition(
            par1World,
            par3StructureBoundingBox,
            par2Random,
            3,
            2,
            3,
            chestLoot,
            2 + par2Random.nextInt(2));
      }
    }

    return true;
  }
 public boolean func_35023_a(
     World p_35023_1_, Random p_35023_2_, StructureBoundingBox p_35023_3_) {
   if (func_35013_a(p_35023_1_, p_35023_3_)) {
     return false;
   }
   func_35022_a(
       p_35023_1_,
       p_35023_3_,
       0,
       0,
       0,
       9,
       8,
       10,
       true,
       p_35023_2_,
       StructureStrongholdPieces.func_35852_b());
   func_35033_a(p_35023_1_, p_35023_2_, p_35023_3_, field_35044_a, 4, 3, 0);
   if (field_35042_b) {
     func_35011_a(p_35023_1_, p_35023_3_, 0, 3, 1, 0, 5, 3, 0, 0, false);
   }
   if (field_35040_d) {
     func_35011_a(p_35023_1_, p_35023_3_, 9, 3, 1, 9, 5, 3, 0, 0, false);
   }
   if (field_35043_c) {
     func_35011_a(p_35023_1_, p_35023_3_, 0, 5, 7, 0, 7, 9, 0, 0, false);
   }
   if (field_35041_e) {
     func_35011_a(p_35023_1_, p_35023_3_, 9, 5, 7, 9, 7, 9, 0, 0, false);
   }
   func_35011_a(p_35023_1_, p_35023_3_, 5, 1, 10, 7, 3, 10, 0, 0, false);
   func_35022_a(
       p_35023_1_,
       p_35023_3_,
       1,
       2,
       1,
       8,
       2,
       6,
       false,
       p_35023_2_,
       StructureStrongholdPieces.func_35852_b());
   func_35022_a(
       p_35023_1_,
       p_35023_3_,
       4,
       1,
       5,
       4,
       4,
       9,
       false,
       p_35023_2_,
       StructureStrongholdPieces.func_35852_b());
   func_35022_a(
       p_35023_1_,
       p_35023_3_,
       8,
       1,
       5,
       8,
       4,
       9,
       false,
       p_35023_2_,
       StructureStrongholdPieces.func_35852_b());
   func_35022_a(
       p_35023_1_,
       p_35023_3_,
       1,
       4,
       7,
       3,
       4,
       9,
       false,
       p_35023_2_,
       StructureStrongholdPieces.func_35852_b());
   func_35022_a(
       p_35023_1_,
       p_35023_3_,
       1,
       3,
       5,
       3,
       3,
       6,
       false,
       p_35023_2_,
       StructureStrongholdPieces.func_35852_b());
   func_35011_a(
       p_35023_1_,
       p_35023_3_,
       1,
       3,
       4,
       3,
       3,
       4,
       Block.field_410_al.field_376_bc,
       Block.field_410_al.field_376_bc,
       false);
   func_35011_a(
       p_35023_1_,
       p_35023_3_,
       1,
       4,
       6,
       3,
       4,
       6,
       Block.field_410_al.field_376_bc,
       Block.field_410_al.field_376_bc,
       false);
   func_35022_a(
       p_35023_1_,
       p_35023_3_,
       5,
       1,
       7,
       7,
       1,
       8,
       false,
       p_35023_2_,
       StructureStrongholdPieces.func_35852_b());
   func_35011_a(
       p_35023_1_,
       p_35023_3_,
       5,
       1,
       9,
       7,
       1,
       9,
       Block.field_410_al.field_376_bc,
       Block.field_410_al.field_376_bc,
       false);
   func_35011_a(
       p_35023_1_,
       p_35023_3_,
       5,
       2,
       7,
       7,
       2,
       7,
       Block.field_410_al.field_376_bc,
       Block.field_410_al.field_376_bc,
       false);
   func_35011_a(
       p_35023_1_,
       p_35023_3_,
       4,
       5,
       7,
       4,
       5,
       9,
       Block.field_410_al.field_376_bc,
       Block.field_410_al.field_376_bc,
       false);
   func_35011_a(
       p_35023_1_,
       p_35023_3_,
       8,
       5,
       7,
       8,
       5,
       9,
       Block.field_410_al.field_376_bc,
       Block.field_410_al.field_376_bc,
       false);
   func_35011_a(
       p_35023_1_,
       p_35023_3_,
       5,
       5,
       7,
       7,
       5,
       9,
       Block.field_411_ak.field_376_bc,
       Block.field_411_ak.field_376_bc,
       false);
   func_35018_a(p_35023_1_, Block.field_404_ar.field_376_bc, 0, 6, 5, 6, p_35023_3_);
   return true;
 }