public static ComponentStrongholdPortalRoom findValidPlacement(
     List par0List, Random par1Random, int par2, int par3, int par4, int par5, int par6) {
   StructureBoundingBox var7 =
       StructureBoundingBox.getComponentToAddBoundingBox(
           par2, par3, par4, -4, -1, 0, 11, 8, 16, par5);
   return canStrongholdGoDeeper(var7)
           && StructureComponent.findIntersecting(par0List, var7) == null
       ? new ComponentStrongholdPortalRoom(par6, par1Random, var7, par5)
       : null;
 }
  public static ComponentStrongholdLibrary findValidPlacement(
      List par0List, Random par1Random, int par2, int par3, int par4, int par5, int par6) {
    StructureBoundingBox var7 =
        StructureBoundingBox.getComponentToAddBoundingBox(
            par2, par3, par4, -4, -1, 0, 14, 11, 15, par5);

    if (!canStrongholdGoDeeper(var7)
        || StructureComponent.findIntersecting(par0List, var7) != null) {
      var7 =
          StructureBoundingBox.getComponentToAddBoundingBox(
              par2, par3, par4, -4, -1, 0, 14, 6, 15, par5);

      if (!canStrongholdGoDeeper(var7)
          || StructureComponent.findIntersecting(par0List, var7) != null) {
        return null;
      }
    }

    return new ComponentStrongholdLibrary(par6, par1Random, var7, par5);
  }
 public static ComponentNetherBridgeCorridor func_40038_a(
     List list, Random random, int i, int j, int k, int l, int i1) {
   StructureBoundingBox structureboundingbox =
       StructureBoundingBox.getComponentToAddBoundingBox(i, j, k, -1, 0, 0, 5, 7, 5, l);
   if (!func_40021_a(structureboundingbox)
       || StructureComponent.getIntersectingStructureComponent(list, structureboundingbox)
           != null) {
     return null;
   } else {
     return new ComponentNetherBridgeCorridor(i1, random, structureboundingbox, l);
   }
 }
  /**
   * Creates and returns a new component piece. Or null if it could not find enough room to place
   * it.
   */
  public static ComponentNetherBridgeCorridor2 createValidComponent(
      List par0List, Random par1Random, int par2, int par3, int par4, int par5, int par6) {
    StructureBoundingBox structureboundingbox =
        StructureBoundingBox.getComponentToAddBoundingBox(
            par2, par3, par4, -1, 0, 0, 5, 7, 5, par5);

    if (!isAboveGround(structureboundingbox)
        || StructureComponent.findIntersecting(par0List, structureboundingbox) != null) {
      return null;
    } else {
      return new ComponentNetherBridgeCorridor2(par6, par1Random, structureboundingbox, par5);
    }
  }
  public static ComponentStrongholdChestCorridor findValidPlacement(
      List par0List, Random par1Random, int par2, int par3, int par4, int par5, int par6) {
    StructureBoundingBox structureboundingbox =
        StructureBoundingBox.getComponentToAddBoundingBox(
            par2, par3, par4, -1, -1, 0, 5, 5, 7, par5);

    if (!canStrongholdGoDeeper(structureboundingbox)
        || StructureComponent.findIntersecting(par0List, structureboundingbox) != null) {
      return null;
    } else {
      return new ComponentStrongholdChestCorridor(par6, par1Random, structureboundingbox, par5);
    }
  }