private void DrawConnections(Graphics graphics, TileConnectionCollection collection, Brush fillBrush, int tileSize) { for (int i = 0; i < collection.Count; i++) { var source = collection[i].Source; var destination = collection[i].Destination; Rectangle sourceStringRect; Rectangle destinationStringRect; if (i >= 9) { sourceStringRect = new Rectangle((source.X + 1) * tileSize - 16, (source.Y + 1) * tileSize - 12, 15, 10); destinationStringRect = new Rectangle((destination.X + 1) * tileSize - 16, (destination.Y + 1) * tileSize - 12, 15, 10); } else { sourceStringRect = new Rectangle((source.X + 1) * tileSize - 14, (source.Y + 1) * tileSize - 12, 10, 10); destinationStringRect = new Rectangle((destination.X + 1) * tileSize - 14, (destination.Y + 1) * tileSize - 12, 10, 10); } graphics.FillEllipse(fillBrush, sourceStringRect); graphics.DrawString((i + 1).ToString(CultureInfo.CurrentCulture), new Font("Segoe UI", 6, FontStyle.Bold), Brushes.White, sourceStringRect.X + 2, sourceStringRect.Y); graphics.FillEllipse(fillBrush, destinationStringRect); graphics.DrawString((i + 1).ToString(CultureInfo.CurrentCulture), new Font("Segoe UI", 6, FontStyle.Bold), Brushes.White, destinationStringRect.X + 2, destinationStringRect.Y); } }
public TileConnectionCollection Clone() { var result = new TileConnectionCollection(_maxItems); foreach (var item in _items) { result._items.Add(item); } return(result); }