def setup(level):
    level.CreateNewBuilding(105.0, 76.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_wall.gmf",          "SideWall2",  "SideWall",          "BR Point",   "BL 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",   "SideWall2",        "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.AddBuildingPiece("Resources/Levels/Models/apartment_wall.gmf",          "BackWall2",   "BackWall",          "BL Point",    "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/long_building_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.AddBuildingPiece("Resources/Levels/Models/long_building_roof.gmf",            "Roof",   "SideWall",              "roof_point",    "roof_point", 180.0, -1.0)
    #level.AddBuildingPiece("Resources/Levels/Models/apartment_roof.gmf",            "Roof",   "SideWall2",              "TL Point",    "BTR Point", 90.0, 0.0)
    level.AddBuildingPiece("Resources/Levels/Models/long_building_roof.gmf",            "Roof",   "SideWall2",              "roof_point",    "roof_point", 180.0, -1.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.AddBuildingPiece("Resources/Levels/Models/apartment_inner_wall1.gmf",          "MidWall",   "Floor",          "mid_point3",    "BLPoint", 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_wide.gmf", "support2", "Floor", "floor_point2", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support3", "Floor", "floor_point3", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.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.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_wide.gmf", "support11", "Floor", "floor_point11", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support12", "Floor", "floor_point12", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support13", "Floor", "floor_point13", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support14", "Floor", "floor_point14", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support15", "Floor", "floor_point15", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support16", "Floor", "floor_point16", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam_wide.gmf", "support17", "Floor", "floor_point17", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support18", "Floor", "floor_point18", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support19", "Floor", "floor_point19", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support20", "Floor", "floor_point20", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support21", "Floor", "floor_point21", "beam_point", 90.0)
    level.AddBuildingSupport("Resources/Levels/Models/apartment_support_beam.gmf", "support22", "Floor", "floor_point22", "beam_point", 90.0)
    level.AttachSupports()
    level.AddBuildingZone(0, (9.5, 8, 29), (81.0, 13, 60))
    # disable all the subpiece collisions between all the different buildings.  This must be called _after_ all buildings have been created.
    level.DisableAllBuildingCollisions()
