/** attempts to find a next Structure Component to be spawned, private Village function */
  private static StructureComponentTFC getNextVillageStructureComponent(
      ComponentVillageStartPieceTFC par0ComponentVillageStartPiece,
      List par1List,
      Random par2Random,
      int par3,
      int par4,
      int par5,
      int par6,
      int par7) {
    if (par7 > 50) {
      return null;
    } else if (Math.abs(par3 - par0ComponentVillageStartPiece.getBoundingBox().minX) <= 112
        && Math.abs(par5 - par0ComponentVillageStartPiece.getBoundingBox().minZ) <= 112) {
      ComponentVillageTFC var8 =
          getNextVillageComponent(
              par0ComponentVillageStartPiece,
              par1List,
              par2Random,
              par3,
              par4,
              par5,
              par6,
              par7 + 1);

      if (var8 != null) {
        int var9 = (var8.boundingBox.minX + var8.boundingBox.maxX) / 2;
        int var10 = (var8.boundingBox.minZ + var8.boundingBox.maxZ) / 2;
        int var11 = var8.boundingBox.maxX - var8.boundingBox.minX;
        int var12 = var8.boundingBox.maxZ - var8.boundingBox.minZ;
        int var13 = var11 > var12 ? var11 : var12;

        if (par0ComponentVillageStartPiece
            .getWorldChunkManager()
            .areBiomesViable(var9, var10, var13 / 2 + 4, MapGenVillageTFC.villageSpawnBiomes)) {
          par1List.add(var8);
          par0ComponentVillageStartPiece.field_35108_e.add(var8);
          return var8;
        }
      }

      return null;
    } else {
      return null;
    }
  }
  private static StructureComponentTFC getNextComponentVillagePath(
      ComponentVillageStartPieceTFC par0ComponentVillageStartPiece,
      List par1List,
      Random par2Random,
      int par3,
      int par4,
      int par5,
      int par6,
      int par7) {
    if (par7 > 3 + par0ComponentVillageStartPiece.terrainType) {
      return null;
    } else if (Math.abs(par3 - par0ComponentVillageStartPiece.getBoundingBox().minX) <= 112
        && Math.abs(par5 - par0ComponentVillageStartPiece.getBoundingBox().minZ) <= 112) {
      StructureBoundingBox var8 =
          ComponentVillagePathGenTFC.func_35087_a(
              par0ComponentVillageStartPiece, par1List, par2Random, par3, par4, par5, par6);

      if (var8 != null && var8.minY > 10) {
        ComponentVillagePathGenTFC var9 =
            new ComponentVillagePathGenTFC(par7, par2Random, var8, par6);
        int var10 = (var9.boundingBox.minX + var9.boundingBox.maxX) / 2;
        int var11 = (var9.boundingBox.minZ + var9.boundingBox.maxZ) / 2;
        int var12 = var9.boundingBox.maxX - var9.boundingBox.minX;
        int var13 = var9.boundingBox.maxZ - var9.boundingBox.minZ;
        int var14 = var12 > var13 ? var12 : var13;

        if (par0ComponentVillageStartPiece
            .getWorldChunkManager()
            .areBiomesViable(var10, var11, var14 / 2 + 4, MapGenVillageTFC.villageSpawnBiomes)) {
          par1List.add(var9);
          par0ComponentVillageStartPiece.field_35106_f.add(var9);
          return var9;
        }
      }

      return null;
    } else {
      return null;
    }
  }