%%%
% Compteur
%%%
\def\filedateCompteur{2025/12/12}%
\def\fileversionCompteur{0.1a}%
\message{-- \filedateCompteur\space v\fileversionCompteur}%
%
\makeatletter
\NewDocumentCommand\CompteurVoiture{m}{%
  \PfC@MPCompteurVoiture{#1}%
}%

\def\PfC@MPCompteurVoiture#1{%
  \ifluatex%
    \mplibforcehmode%
    \begin{mplibcode}
      input PfCCalculatrice;
      boolean Calcul;
      Calcul:=false;
      CouleurEcran:=black;
      
      string compteur;
      compteur=#1;

      vardef Affichage(expr decomp)=
      save $;
      picture $;
      drawoptions(withpen pensquare scaled0.1);
      $=image(%
      for k=0 upto 34:
      if (substring(k,k+1) of decomp)="1":
      fill carre[k] withcolor white;
      fi;
      endfor;
      );
      drawoptions();
      $
      enddef;
      
      vardef LCDa(text nt)(text rep)(expr NB)=
        nblignes:=nblignes+1;
        path Ecran;
        Ecran:=(u*(-1,-2)--u*(LargeurEcran,-2)--u*(LargeurEcran,7)--u*(-1,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
        fill Ecran withcolor if print=true:coulprint else:CouleurEcran fi;
        draw Ecran withcolor if print=true:coulprint else:coulprint fi;
        if length(nt)>0:
          for k=0 upto length(nt)-1:
            BlocAffichage;
            Test(k,nt);
          endfor;
        fi;
      enddef;

      longtotal=6;

      for k=0 upto (length compteur-1):
        if substring(k,k+1) of compteur=".":
          longtotal:=longtotal+2;
        fi;
      endfor;

      LargeurEcran:=6*longtotal;

      if (length compteur)<longtotal:
        string retienscompteur;
        retienscompteur:=compteur;
        for k=1 upto (longtotal-length compteur):
          retienscompteur:="0"&retienscompteur;
        endfor;
        compteur:=retienscompteur;
      fi;
      LCDa(compteur)("")(0);
    \end{mplibcode}%
  \fi%
}%
\makeatother