private void OnMinimapTileDone(object sender, EventArgs e) { MinimapTileReadyArgs args = (MinimapTileReadyArgs)e; // Ensure we're using the correct runner. if (args.RunnerIndex != buildRunnerIndex) { return; } if (canvas == null) { int sizeX = (args.Bounds.HighX - args.Bounds.LowX) + 1; int sizeY = (args.Bounds.HighY - args.Bounds.LowY) + 1; canvas = new MapCanvas(sizeX, sizeY); } int posX = (args.Position.X - args.Bounds.LowX) * 256; int posY = (args.Position.Y - args.Bounds.LowY) * 256; canvas.DrawToCanvas(args.Image, posX, posY); UI_Map.Invalidate(); tileDone++; if (tileTotal > tileDone) { UI_TileDisplay.Text = string.Format(Constants.MAP_VIEWER_TILE_STATUS, tileDone, tileTotal); } else { UI_TileDisplay.Hide(); UI_ExportTip.Show(); } }