public static StructureBoundingBox func_35027_a(
      List list, Random random, int i, int j, int k, int l) {
    StructureBoundingBox structureboundingbox = new StructureBoundingBox(i, j - 5, k, i, j + 2, k);
    switch (l) {
      case 2: // '\002'
        structureboundingbox.maxX = i + 2;
        structureboundingbox.minZ = k - 8;
        break;

      case 0: // '\0'
        structureboundingbox.maxX = i + 2;
        structureboundingbox.maxZ = k + 8;
        break;

      case 1: // '\001'
        structureboundingbox.minX = i - 8;
        structureboundingbox.maxZ = k + 2;
        break;

      case 3: // '\003'
        structureboundingbox.maxX = i + 8;
        structureboundingbox.maxZ = k + 2;
        break;
    }
    if (StructureComponent.getIntersectingStructureComponent(list, structureboundingbox) != null) {
      return null;
    } else {
      return structureboundingbox;
    }
  }
  public static StructureBoundingBox findValidPlacement(
      List par0List, Random par1Random, int par2, int par3, int par4, int par5) {
    StructureBoundingBox structureboundingbox =
        new StructureBoundingBox(par2, par3, par4, par2, par3 + 2, par4);
    int i = par1Random.nextInt(3) + 2;

    do {
      if (i <= 0) {
        break;
      }

      int j = i * 5;

      switch (par5) {
        case 2:
          structureboundingbox.maxX = par2 + 2;
          structureboundingbox.minZ = par4 - (j - 1);
          break;

        case 0:
          structureboundingbox.maxX = par2 + 2;
          structureboundingbox.maxZ = par4 + (j - 1);
          break;

        case 1:
          structureboundingbox.minX = par2 - (j - 1);
          structureboundingbox.maxZ = par4 + 2;
          break;

        case 3:
          structureboundingbox.maxX = par2 + (j - 1);
          structureboundingbox.maxZ = par4 + 2;
          break;
      }

      if (StructureComponent.findIntersecting(par0List, structureboundingbox) == null) {
        break;
      }

      i--;
    } while (true);

    if (i > 0) {
      return structureboundingbox;
    } else {
      return null;
    }
  }