def setup(level):
    # This is the main building to destroy
    level.CreateNewBuilding(56.0, 56.5, 0.0)
    #                 GMFPathName                                                                                                     PieceName      AttachToPieceName         ToPointName        FromPointName
    level.AddBuildingPiece("Resources/Levels/Models/apartment_wall.gmf",          "SideWall",  "",                        "",                "BR Point", 270.0, 0.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_side_wall.gmf",  "LeftWall",   "SideWall",          "BL Point",    "BBRPoint", 0.0, 0.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_side_wall.gmf",  "RightWall",   "SideWall",        "BR Point",    "BBLPoint", 180.0, 0.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_wall.gmf",          "BackWall",   "LeftWall",          "BBLPoint",    "BR Point", 90.0, 0.0)
    level.EnableSupportDetection()
    level.AddBuildingPiece("Resources/Levels/Models/apartment_gable.gmf",          "BackWall",   "LeftWall",         "TLPoint",    "BL Point", 0.0, 0.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_gable.gmf",          "BackWall",   "RightWall",       "TLPoint",    "BL Point", 180.0, 0.0)
    level.DisableSupportDetection()
    level.AddBuildingPiece("Resources/Levels/Models/apartment_floor.gmf",          "Floor",   "SideWall",              "BBL Point",    "BBL Point01", 180.0, 0.001)
    level.EnableSupportDetection()
    level.AddBuildingPiece("Resources/Levels/Models/apartment_roof.gmf",            "Roof",   "SideWall",              "TL Point",    "BTR Point", 90.0, 0.0)
    level.DisableSupportDetection()
    level.AddBuildingPiece("Resources/Levels/Models/apartment_inner_wall1.gmf",          "MidWall",   "Floor",          "mid_point1",    "BLPoint", 0.0, 0.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_inner_wall2.gmf",          "MidWal2",   "Floor",          "mid_point2",    "BRPoint", 0.0, 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support1", "Floor", "floor_point1", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support2", "Floor", "floor_point2", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support3", "Floor", "floor_point3", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support4", "Floor", "floor_point4", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support5", "Floor", "floor_point5", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support6", "Floor", "floor_point6", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support7", "Floor", "floor_point7", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support8", "Floor", "floor_point8", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support9", "Floor", "floor_point9", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support10", "Floor", "floor_point10", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support11", "Floor", "floor_point11", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support12", "Floor", "floor_point12", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support13", "Floor", "floor_point13", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support14", "Floor", "floor_point14", "beam_point", 0.0)
    level.AttachSupports()
    level.AddBuildingZone(-1, (1.0, 1.0, 1), (1, 1, 1))
    
    # This is the one you shouldn't destroy
    level.CreateNewBuilding(56.0, 88.5, 0.0)
    #                 GMFPathName                                                                                                     PieceName      AttachToPieceName         ToPointName        FromPointName
    level.AddBuildingPiece("Resources/Levels/Models/apartment_wall.gmf",          "SideWall",  "",                        "",                "BR Point", 270.0, 85.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_side_wall.gmf",  "LeftWall",   "SideWall",          "BL Point",    "BBRPoint", 0.0, 85.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_side_wall.gmf",  "RightWall",   "SideWall",        "BR Point",    "BBLPoint", 180.0, 85.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_wall.gmf",          "BackWall",   "LeftWall",          "BBLPoint",    "BR Point", 90.0, 85.0)
    level.EnableSupportDetection()
    level.AddBuildingPiece("Resources/Levels/Models/apartment_gable.gmf",          "BackWall",   "LeftWall",         "TLPoint",    "BL Point", 0.0, 85.0)
    level.AddBuildingPiece("Resources/Levels/Models/apartment_gable.gmf",          "BackWall",   "RightWall",       "TLPoint",    "BL Point", 180.0, 85.0)
    level.DisableSupportDetection()
    level.AddBuildingPiece("Resources/Levels/Models/apartment_floor.gmf",          "Floor",   "SideWall",              "BBL Point",    "BBL Point01", 180.0, 0.001)
    level.EnableSupportDetection()
    level.AddBuildingPiece("Resources/Levels/Models/apartment_roof.gmf",            "Roof",   "SideWall",              "TL Point",    "BTR Point", 90.0, 85.0)
    level.DisableSupportDetection()
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support1", "Floor", "floor_point1", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support2", "Floor", "floor_point2", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support3", "Floor", "floor_point3", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support4", "Floor", "floor_point4", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support5", "Floor", "floor_point5", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support6", "Floor", "floor_point6", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support7", "Floor", "floor_point7", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support8", "Floor", "floor_point8", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support9", "Floor", "floor_point9", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support10", "Floor", "floor_point10", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support11", "Floor", "floor_point11", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support12", "Floor", "floor_point12", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support13", "Floor", "floor_point13", "beam_point", 0.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support14", "Floor", "floor_point14", "beam_point", 0.0)
    level.AttachSupports()
    
    # disable all the subpiece collisions between all the different buildings.  This must be called _after_ all buildings have been created.
    level.DisableAllBuildingCollisions()
