code: def draw(self, milliseconds, surface):
          
          self.drawn_rects = []
          cam = Ragnarok.get_world().Camera
          cX, cY, cXMax, cYMax = cam.get_cam_bounds()
  
          #Draw out only the tiles visible to the camera.
          start_pos = self.pixels_to_tiles( (cX, cY) )
          start_pos -= Vector2(1, 1)
          end_pos = self.pixels_to_tiles( (cXMax, cYMax) )
          end_pos += Vector2(1, 1)
  
          start_pos.X, start_pos.Y = self.clamp_within_range(start_pos.X, start_pos.Y)
          end_pos.X, end_pos.Y = self.clamp_within_range(end_pos.X, end_pos.Y)
  
          cam_pos = cam.get_world_pos()
          for x in range(start_pos.X, end_pos.X + 1):
              for y in range(start_pos.Y, end_pos.Y + 1):
                  tile = self.tiles[y][x]
                  translate_posX = tile.coords.X - cam_pos.X
                  translate_posY = tile.coords.Y - cam_pos.Y
                  surface.blit(self.spritesheet.image, (translate_posX, translate_posY), tile.source, special_flags = 0)
docs: Draw out the tilemap.