public void buildComponent(StructureComponent structurecomponent, List list, Random random) {
    int i = getComponentType();
    switch (coordBaseMode) {
      case 2: // '\002'
        StructureMineshaftPieces.getNextComponent(
            structurecomponent,
            list,
            random,
            boundingBox.minX,
            boundingBox.minY,
            boundingBox.minZ - 1,
            2,
            i);
        break;

      case 0: // '\0'
        StructureMineshaftPieces.getNextComponent(
            structurecomponent,
            list,
            random,
            boundingBox.minX,
            boundingBox.minY,
            boundingBox.maxZ + 1,
            0,
            i);
        break;

      case 1: // '\001'
        StructureMineshaftPieces.getNextComponent(
            structurecomponent,
            list,
            random,
            boundingBox.minX - 1,
            boundingBox.minY,
            boundingBox.minZ,
            1,
            i);
        break;

      case 3: // '\003'
        StructureMineshaftPieces.getNextComponent(
            structurecomponent,
            list,
            random,
            boundingBox.maxX + 1,
            boundingBox.minY,
            boundingBox.minZ,
            3,
            i);
        break;
    }
  }
  /**
   * 'Initiates construction of the Structure Component picked, at the current Location of
   * StructGen'
   */
  public void buildComponent(
      StructureComponent par1StructureComponent, List par2List, Random par3Random) {
    int i = getComponentType();
    int j = par3Random.nextInt(4);

    switch (coordBaseMode) {
      case 2:
        if (j <= 1) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.minX,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.minZ - 1,
              coordBaseMode,
              i);
        } else if (j == 2) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.minX - 1,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.minZ,
              1,
              i);
        } else {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.maxX + 1,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.minZ,
              3,
              i);
        }

        break;

      case 0:
        if (j <= 1) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.minX,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.maxZ + 1,
              coordBaseMode,
              i);
        } else if (j == 2) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.minX - 1,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.maxZ - 3,
              1,
              i);
        } else {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.maxX + 1,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.maxZ - 3,
              3,
              i);
        }

        break;

      case 1:
        if (j <= 1) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.minX - 1,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.minZ,
              coordBaseMode,
              i);
        } else if (j == 2) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.minX,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.minZ - 1,
              2,
              i);
        } else {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.minX,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.maxZ + 1,
              0,
              i);
        }

        break;

      case 3:
        if (j <= 1) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.maxX + 1,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.minZ,
              coordBaseMode,
              i);
        } else if (j == 2) {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.maxX - 3,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.minZ - 1,
              2,
              i);
        } else {
          StructureMineshaftPieces.getNextComponent(
              par1StructureComponent,
              par2List,
              par3Random,
              boundingBox.maxX - 3,
              (boundingBox.minY - 1) + par3Random.nextInt(3),
              boundingBox.maxZ + 1,
              0,
              i);
        }

        break;
    }

    if (i < 8) {
      if (coordBaseMode == 2 || coordBaseMode == 0) {
        for (int k = boundingBox.minZ + 3; k + 3 <= boundingBox.maxZ; k += 5) {
          int i1 = par3Random.nextInt(5);

          if (i1 == 0) {
            StructureMineshaftPieces.getNextComponent(
                par1StructureComponent,
                par2List,
                par3Random,
                boundingBox.minX - 1,
                boundingBox.minY,
                k,
                1,
                i + 1);
          } else if (i1 == 1) {
            StructureMineshaftPieces.getNextComponent(
                par1StructureComponent,
                par2List,
                par3Random,
                boundingBox.maxX + 1,
                boundingBox.minY,
                k,
                3,
                i + 1);
          }
        }
      } else {
        for (int l = boundingBox.minX + 3; l + 3 <= boundingBox.maxX; l += 5) {
          int j1 = par3Random.nextInt(5);

          if (j1 == 0) {
            StructureMineshaftPieces.getNextComponent(
                par1StructureComponent,
                par2List,
                par3Random,
                l,
                boundingBox.minY,
                boundingBox.minZ - 1,
                2,
                i + 1);
            continue;
          }

          if (j1 == 1) {
            StructureMineshaftPieces.getNextComponent(
                par1StructureComponent,
                par2List,
                par3Random,
                l,
                boundingBox.minY,
                boundingBox.maxZ + 1,
                0,
                i + 1);
          }
        }
      }
    }
  }