public ComponentStrongholdLibrary(
     int par1, Random par2Random, StructureBoundingBox par3StructureBoundingBox, int par4) {
   super(par1);
   coordBaseMode = par4;
   doorType = getRandomDoor(par2Random);
   boundingBox = par3StructureBoundingBox;
   isLargeRoom = par3StructureBoundingBox.getYSize() > 6;
 }
  public static ComponentStrongholdLibrary findValidPlacement(
      List par0List, Random par1Random, int par2, int par3, int par4, int par5, int par6) {
    StructureBoundingBox structureboundingbox =
        StructureBoundingBox.getComponentToAddBoundingBox(
            par2, par3, par4, -4, -1, 0, 14, 11, 15, par5);

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

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

    return new ComponentStrongholdLibrary(par6, par1Random, structureboundingbox, par5);
  }