public static StructureBoundingBox a(List list, Random random, int i, int j, int k, int l) {
    StructureBoundingBox structureboundingbox = new StructureBoundingBox(i, j, k, i, j + 2, k);

    if (random.nextInt(4) == 0) {
      structureboundingbox.e += 4;
    }

    switch (l) {
      case 0:
        structureboundingbox.a = i - 1;
        structureboundingbox.d = i + 3;
        structureboundingbox.f = k + 4;
        break;

      case 1:
        structureboundingbox.a = i - 4;
        structureboundingbox.c = k - 1;
        structureboundingbox.f = k + 3;
        break;

      case 2:
        structureboundingbox.a = i - 1;
        structureboundingbox.d = i + 3;
        structureboundingbox.c = k - 4;
        break;

      case 3:
        structureboundingbox.d = i + 4;
        structureboundingbox.c = k - 1;
        structureboundingbox.f = k + 3;
    }

    return StructurePiece.a(list, structureboundingbox) != null ? null : structureboundingbox;
  }
  public static StructureBoundingBox a(
      List paramList,
      Random paramRandom,
      int paramInt1,
      int paramInt2,
      int paramInt3,
      int paramInt4) {
    StructureBoundingBox localStructureBoundingBox =
        new StructureBoundingBox(
            paramInt1, paramInt2, paramInt3, paramInt1, paramInt2 + 2, paramInt3);

    int i = paramRandom.nextInt(3) + 2;
    while (i > 0) {
      int j = i * 5;

      switch (paramInt4) {
        case 2:
          localStructureBoundingBox.d = (paramInt1 + 2);
          localStructureBoundingBox.c = (paramInt3 - (j - 1));
          break;
        case 0:
          localStructureBoundingBox.d = (paramInt1 + 2);
          localStructureBoundingBox.f = (paramInt3 + (j - 1));
          break;
        case 1:
          localStructureBoundingBox.a = (paramInt1 - (j - 1));
          localStructureBoundingBox.f = (paramInt3 + 2);
          break;
        case 3:
          localStructureBoundingBox.d = (paramInt1 + (j - 1));
          localStructureBoundingBox.f = (paramInt3 + 2);
      }

      if (StructurePiece.a(paramList, localStructureBoundingBox) == null) break;
      i--;
    }

    if (i > 0) {
      return localStructureBoundingBox;
    }

    return null;
  }
 public WorldGenVillageRoad(
     WorldGenVillageStartPiece worldgenvillagestartpiece,
     int i,
     Random random,
     StructureBoundingBox structureboundingbox,
     int j) {
   super(worldgenvillagestartpiece, i);
   this.g = j;
   this.f = structureboundingbox;
   this.a = Math.max(structureboundingbox.b(), structureboundingbox.d());
 }
  public WorldGenMineshaftCorridor(
      int paramInt1,
      Random paramRandom,
      StructureBoundingBox paramStructureBoundingBox,
      int paramInt2) {
    super(paramInt1);
    this.h = paramInt2;
    this.g = paramStructureBoundingBox;
    this.a = (paramRandom.nextInt(3) == 0);
    this.b = ((!this.a) && (paramRandom.nextInt(23) == 0));

    if ((this.h == 2) || (this.h == 0)) this.d = (paramStructureBoundingBox.d() / 5);
    else this.d = (paramStructureBoundingBox.b() / 5);
  }