private void DrawSquare(Graphics g, Piece piece, int file, int rank, Rectangle squaresSpace) { var squareRect = GetSquareHitbox(file, rank, squaresSpace); var pieceRect = GetSquareHitbox(file, rank, squaresSpace); if (MouseFrom.HasValue) { Position fromSquare = ConvertPointToSquare(MouseFrom.Value); if (fromSquare != null && (int)fromSquare.File == file && fromSquare.Rank == 8 - rank) { int dx = LastMousePosition.X - MouseFrom.Value.X; int dy = LastMousePosition.Y - MouseFrom.Value.Y; pieceRect.X += dx; pieceRect.Y += dy; } } bool isLightSquare = (file + rank) % 2 == 0; var squareImg = isLightSquare ? BoardImages.LightSquare : BoardImages.DarkSquare; g.DrawImage(squareImg, squareRect); if (piece != null) { var pieceImg = PieceImages.GetImageForPiece(piece); g.DrawImage(pieceImg, pieceRect); } }
// get candidate image names for player and piece internal IList <string> GetImageNames(string player, string piece) { return(PieceImages.FirstOrDefault(i => i.Piece == piece && i.Player == player).Images); }