texlive[72990] Master/texmf-dist: tikzpingus (28nov24)

commits+karl at tug.org commits+karl at tug.org
Thu Nov 28 22:23:54 CET 2024


Revision: 72990
          https://tug.org/svn/texlive?view=revision&revision=72990
Author:   karl
Date:     2024-11-28 22:23:53 +0100 (Thu, 28 Nov 2024)
Log Message:
-----------
tikzpingus (28nov24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tikzpingus/README.md
    trunk/Master/texmf-dist/doc/latex/tikzpingus/tikzpingus-doc.pdf
    trunk/Master/texmf-dist/doc/latex/tikzpingus/tikzpingus-doc.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-bee.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-christmas.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-cloak.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-devil.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-emotions.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-flags.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-formal.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-fun.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-glasses.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-hats.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-horse.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-magic.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-medieval.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-movement.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-safe.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-science-fiction.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-shirts.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-signs.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-sport.lib.tex
    trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-technology.lib.tex

Modified: trunk/Master/texmf-dist/doc/latex/tikzpingus/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzpingus/README.md	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/doc/latex/tikzpingus/README.md	2024-11-28 21:23:53 UTC (rev 72990)
@@ -2,8 +2,8 @@
 
 [![made-with-latex](https://img.shields.io/badge/Made%20with-LaTeX-1f425f.svg)](https://www.latex-project.org/) [![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)](https://opensource.org/licenses/GPL-3.0) [![PR's Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)  [![CTAN](https://badgen.net/badge/On/CTAN/cyan)](https://www.ctan.org/pkg/tikzpingus) [![build](https://github.com/EagleoutIce/tikzpingus/actions/workflows/compile.yaml/badge.svg)](https://github.com/EagleoutIce/tikzpingus/actions/workflows/compile.yaml)
 
-This package is a work-in-progress package allowing you to typeset little penguins in LaTeX with PGF/Ti*k*Z.
-The [documentation](https://media.githubusercontent.com/media/EagleoutIce/tikzpingus/gh-pages/doc/build/tikzpingus-doc.pdf) will constantly evolve.
+This package allows you to typeset (cute) little penguins in LaTeX with PGF/Ti*k*Z.
+The [documentation](https://media.githubusercontent.com/media/EagleoutIce/tikzpingus/gh-pages/doc/build/tikzpingus-doc.pdf) contains a reference for all currently available options. See the examples below for a quick overview.
 
 ----
 
@@ -26,7 +26,7 @@
 
 [![Penguin Tech](https://github.com/EagleoutIce/tikzpingus/blob/gh-pages/hey-pingu-4.png?raw=true)](https://media.githubusercontent.com/media/EagleoutIce/tikzpingus/gh-pages/examples/build/hey-pingu.pdf#page=4)
 
-If you just load the library by `\usepackage{tikzpingus}` all options will work, and you might want to use the `glows`-option (`\usepackage[glows]{tikzpingus}`) so that lightsabers and other glowing elements look waaay nicer (but may produce artifacts in some pdf-viewers). However, if loading the library takes too long for you, using the `bare` option will drastically reduce the default options available while allowing you to load specific libraries with `\pinguloadlibraries{<list of libraries>}`.
+If you just load the library by `\usepackage{tikzpingus}` all options will work, and you might want to use the `glows`-option (`\usepackage[glows]{tikzpingus}`) so that lightsabers and other glowing elements look waaay nicer (but may produce artifacts in some pdf-viewers).
 
 [![Penguin Cake](https://github.com/EagleoutIce/tikzpingus/blob/gh-pages/hey-pingu-5.png?raw=true)](https://media.githubusercontent.com/media/EagleoutIce/tikzpingus/gh-pages/examples/build/hey-pingu.pdf#page=5)
 
@@ -40,6 +40,6 @@
 
 ## More Fun
 
-For the title image of a computer-science course on software-product-lines, I created a small and incomplete but really fun feature model:
+For the title image of a computer science course on software product lines, I created a small and incomplete but really fun feature model:
 
 [![Penguin-SPL](https://github.com/EagleoutIce/tikzpingus/blob/gh-pages/spl-1.png?raw=true)](https://media.githubusercontent.com/media/EagleoutIce/tikzpingus/gh-pages/examples/build/spl.pdf)

Modified: trunk/Master/texmf-dist/doc/latex/tikzpingus/tikzpingus-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tikzpingus/tikzpingus-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzpingus/tikzpingus-doc.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/doc/latex/tikzpingus/tikzpingus-doc.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -2,7 +2,8 @@
 % Licensed under GNU General Public License version 3
 % https://opensource.org/licenses/gpl-3.0.html
 \errorcontextlines9999
-\documentclass[parskip=half,english,numbers=noenddot,footnotes=nomultiple,oneside]{scrartcl}
+\documentclass[parskip=half,english,numbers=noenddot,footnotes=nomultiple,oneside,fontsize=10pt,DIV=14]{scrartcl}
+% 
 
 \usepackage[T1]{fontenc}
 \usepackage[utf8]{inputenc}
@@ -24,8 +25,9 @@
 
 \usepackage[hyper]{listings}
 \usepackage[skins,breakable,hooks,xparse,listingsutf8,external]{tcolorbox}
-\usepackage{lmodern}
-\usepackage{CrimsonPro}
+\usepackage[sfdefault,scale=.9]{FiraSans}
+% fitting math font
+\usepackage{newtxsf}
 
 \usepackage{imakeidx}
 \usepackage{tikz}
@@ -68,7 +70,7 @@
 \let\say\enquote
 \def\DTLlistformatoxford{,}\def\DTLandname{and}
 % TODO: do guard against same keys for different selectors
-\long\def\ParseDTLListElement#1"#2"\@nil{\textsuperscript{\smash{\raisebox{2pt}{\ifcsname pingu@@lib@#2@\CurrentList @\endcsname\index[\current at indexfile]{Libraries!\textit{\csname pingu@@lib@#2@\CurrentList @\endcsname}!#2?\hyperref[expl-list:\CurrentList]{\protect\lpingu{#2} {\tiny\sffamily(\MapDTLList{\CurrentList})}}}~$\underset{\text{\tiny\smash{\raisebox{3pt}{\textsf{\hyperref[Libraries]{\@declaredcolor{gray}Library}}}}}}{\text{\textit{\tiny\strut\csname pingu@@lib@#2@\CurrentList @\endcsname}}}$\fi}}}}
+\long\def\ParseDTLListElement#1"#2"\@nil{}
 \def\DTLlistformatitem#1{\textit{#1\expandafter\ParseDTLListElement :#1\@nil}}
 \newcommand*\typesetselection[1][]{\begingroup\ifx!#1!\else\def\DTLlistformatitem##1{#1}\fi\dotypesetselection}
 \def\dotypesetselection#1{\label{expl-list:#1}\def\CurrentList{#1}\expandafter\DTLformatlist\expandafter{\csname @pingu@#1@\endcsname}\endgroup}
@@ -216,8 +218,8 @@
 \def\@toggle at showcase{\ifx\@showcase at cur\@showcase at pre\global\let\@showcase at cur\@empty\else \global\let\@showcase at cur\@showcase at pre\fi}
 \newcommand\ShowcaseThis[2][]{\ifx\@showcase at cur\@showcase at pre \global\let\@showcase at cur\@empty\expandafter\gpreto\else \global\let\@showcase at cur\@showcase at pre\expandafter\gappto\fi\pengu at all@showcases{{#2=#1},}}
 
-\RedeclareSectionCommand[runin=false,afterskip=-2mm]{section}
-\RedeclareSectionCommand[runin=false,afterskip=-2mm]{subsection}
+\RedeclareSectionCommand[runin=false,beforeskip=3mm,afterskip=-2mm]{section}
+\RedeclareSectionCommand[runin=false,beforeskip=3mm,afterskip=-2mm]{subsection}
 \RedeclareSectionCommand[runin=false,beforeskip=2mm,afterskip=-2mm]{subsubsection}
 
 \tcbset{%
@@ -244,6 +246,9 @@
 % allow the oxes to have minor overlaps
 \newcommand\DefineKey[2][/pingu/]{%
 	\StrSubstitute{#2}{ }{-}[\keyexternalname]%
+	% create valid artifact path names for github
+	\StrSubstitute{\keyexternalname}{:}{_}[\keyexternalname]%
+	\StrSubstitute{\keyexternalname}{*}{_}[\keyexternalname]%
 	% only use _ to keep the length intact when replace with the backslash
 	\StrSubstitute{\keyexternalname}{\\}{_}[\keyexternalname]%
 	{\def\\{_}\protected at xdef\@key{#2}}%
@@ -278,7 +283,7 @@
 		\ifx\@tmpb\@empty\lpingu{#1#2}\@explainsuff\else\lpingu{#1#2 =\ }\texttt{<\textit{\@tmpb}>}\fi\hfill
 				\ifx\@tmp\@empty\else{\@declaredcolor{gray}(}#4{\@declaredcolor{gray})}\fi
 		}
-	}\ifcsname pingu@@lib@\@key @\endcsname\index[\current at indexfile]{Libraries!\textit{\csname pingu@@lib@#2@\endcsname}!\@idxkey?\hyperref[pk:#1\@key]{\protect\lpingu{#2}}}\rlap{~\quad\raisebox{2.75pt}{$\underset{\text{\tiny\smash{\raisebox{3pt}{\textsf{\hyperref[Libraries]{\@declaredcolor{gray}Library}}}}}}{\text{\textit{\footnotesize\parbox{4em}{\null\hfill\strut\csname pingu@@lib@#2@\endcsname\hfill\null}}}}$}}\fi\kern-\linewidth\par\endgroup
+	}\kern-\linewidth\par\endgroup
 }
 {\endminipage\smallskip\par}
 
@@ -361,8 +366,6 @@
 	{\@declaredcolor{gray}\small This is an alias for \keyref[#1]{#3}.}%
 \endkeyexplain\endgroup}
 
-\def\lib#1{\tikz[baseline=-.6ex]\node[draw=teal,fill=teal!3!white,very thick,rounded corners=2pt,inner ysep=0pt]{\sffamily\strut#1};}
-
 \def\TikZ{Ti\textit{k}Z}
 \def\tikzpingus{\TikZ pingus}
 
@@ -410,7 +413,7 @@
 	\texorpdfstring{Florian Sihler\\*
 		\url{https://github.com/EagleoutIce/tikzpingus}
 	}{Florian Sihler}}
-\date{Version v1.1 \textendash{} 2023/09/17}
+\date{Version v1.2 \textendash{} 2024/11/27}
 
 \begin{document}
 \maketitle
@@ -438,7 +441,7 @@
 	 \node[above=3mm,font=\bfseries\sffamily\Large] at(current bounding box.north) {Motivation};
 \end{tikzpicture}\vspace*{-\baselineskip}
 \end{center}
-\footnotetext{Why \say{pingu} and not \say{pengu}? Well, this is the third try on achieving cute penguins without using any templates or vector formats as a basis. As a German, the short form \say{pingu} was merely a typo that originated from the German word \say{pinguin} for \say{penguin}. It somewhat stuck\ldots}
+\footnotetext{Why \say{pingu} and not \say{pengu}? Well, this is the third try on achieving cute penguins without using any templates or vector formats as a basis. As a German, the short form \say{pingu} was merely a typo that originated from the German word \say{pinguin} for \say{penguin}. It somewhat stuck\ldots{}}
 \endgroup\vfill
 
 \begin{center}
@@ -538,6 +541,7 @@
 
 \begin{commandexplain}{pingu}{\opt{penguin keys}}
 	The command to draw the penguin!
+	If you want to use |\pengu| instead, you can use |\let\pengu\pingu| in your preamble to create an alias.
 \end{commandexplain}
 
 \clearpage Besides the keys defined by this package, you can use the keys of \TikZ\ and |pgf| as well (the duck was generated by the lovely \href{https://github.com/samcarter/tikzducks}{tikzducks} package):
@@ -622,8 +626,8 @@
 This view excluded a lot of special data collected on the wings!
 While there is more information stored for each wing, the following five coordinates are the most important to place items into penguins hand:\vspace*{-1.5em}
 \begin{center}
-	\null\hfill\parbox[c]{2.5\wd\pinguwingright}{\scalebox{2.5}{\usebox\pinguwingright}}\hfill\parbox[c]{4cm}{\centering\small\@declaredcolor{gray}\sffamily And yes, the wings are deliberately placed asymmetrical.\endgraf}\hfill
-	\parbox[c]{2.5\wd\pinguwingleft}{\scalebox{2.5}{\usebox\pinguwingleft}}\hfill\null
+	\null\hfill\parbox[c]{2.6\wd\pinguwingright}{\scalebox{2.5}{\usebox\pinguwingright}}\hfill\parbox[c]{3.5cm}{\centering\small\@declaredcolor{gray}\sffamily And yes, the wings are deliberately placed asymmetrical.\endgraf}\hfill
+	\parbox[c]{2.6\wd\pinguwingleft}{\scalebox{2.5}{\usebox\pinguwingleft}}\hfill\null
 \end{center}
 
 \paragraph{The Body} Similarly to the wing position, different
@@ -683,28 +687,6 @@
 	To overwrite these keys, see \cmdref{pingudefaults}.
 \end{commandexplain}
 
-\subsection{Libraries}
-\label{Libraries}\index{Libraries}I've split the penguin features into a set of libraries. While all of them are loaded by default, the |bare| package-option disables the automatic loading of all libraries. They can be loaded (locally to the current group) using \cmdref{pinguloadlibrary} and \cmdref{pinguloadlibraries} passing on a comma separated list of desired libraries.
-See the full reference or the index to learn which key comes from which library.
-Please note that~--- at the moment~--- not all components of a library are labeled correctly.
-% TODO: already count that? % global let?
-\foreach[count=\i] \l/\xs in \pingu at defaultlibs{\xdef\pingu at defaultlibs@count{\i}}%
-Currently there are the following libraries:
-\foreach[count=\i] \l/\xs in \pingu at defaultlibs{%
-	\ifx\l\empty\else
-	\index[\current at indexfile]{Libraries!\textit{\l}}\textit{\l}\ifnum\numexpr\pingu at defaultlibs@count-1>\i,\space\else
-	\ifnum\pingu at defaultlibs@count=\i\else,~and\space\fi\fi
-	\fi
-}.
-
-\begin{commandexplain}{pinguloadlibrary}{\mand{library}}
-	Load a penguin library (actually, due to the implementation, you can use this command just like \cmdref{pinguloadlibraries} and load multiple libraries).
-\end{commandexplain}
-
-\begin{commandexplain}{pinguloadlibraries}{\mand{libraries}}
-	Load multiple penguin libraries, separated by a comma. For example: \texttt{\cmdref{pinguloadlibraries}\{shirts, glasses\}}.
-\end{commandexplain}
-
 \subsection{Changing the wings}
 \label{subsec:wings}As already demonstrated, it is possible to change the wing positions!
 All selected wing-items will adapt to the wing-position (although not all wing-items will make sense with every wing-position).
@@ -768,7 +750,7 @@
 	\itemsep0pt
 	\foreach \tx/\s in {{draw everything with a line}/{:line}, {fill main penguin}/{:fill}, {draw components with transparency}/{:ghost parts}, {draw all layers with transparency}/{:ghost}, {set main \say{devil}-components}/{:devil},{flip the penguin (swaps left \& right)}/{:back},{do not draw main pingu}/{:hide},{mix the main penguin with a given color}/{:mix},{mix the main penguin completely with a given color}/{:mix-draw},{mix everything with a given color}/{:mix-all}} {
 		\item \parbox[t]{.8\linewidth}{\raggedright\expandafter\dkeyref\expandafter{\s}, \tx.} \hfill
-		\parbox[t]{.175\linewidth}{\scalebox{.4}{%
+		\parbox[t]{.175\linewidth}{\scalebox{.4}{%git at github.com:EagleoutIce/tikzpingus.git
 			\begin{tikzpicture}[baseline=.35\baselineskip]%
 				\pingu[\s]
 			\end{tikzpicture}%
@@ -2554,6 +2536,165 @@
 \end{tcblisting}
 \endsubkeyexplain
 
+\subsubsection{The graduate cap}
+\showkeyexplain{graduate}{color}{pingu at black!95!white}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endshowkeyexplain
+
+\keyalias{graduate cap}{graduate}
+
+{\def\pingu at color@graduate{<graduate-color>}
+\subkeyexplain{graduate}{graduate top}{color}{\pingu at color@graduate at top}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate top=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap top}{graduate top}{graduate}
+}
+
+{
+\subkeyexplain{graduate}{graduate tilt}{length}{\pingu at x@graduate at tilt}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate tilt=5mm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap tilt}{graduate tilt}{graduate}
+}
+
+{\def\pingu at color@graduate{<graduate-color>}
+\def\pingu at color@graduate at tassel{<graduate-tassel-color>}
+\subkeyexplain{graduate}{graduate tassel}{color}{\pingu at color@graduate at tassel}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate tassel=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap tassel}{graduate tassel}{graduate}
+}
+
+{\def\pingu at color@graduate{<graduate-color>}
+\def\pingu at color@graduate at tassel{<graduate-tassel-color>}
+\subkeyexplain{graduate}{graduate tassel drop}{color}{\pingu at color@graduate at tassel@drop}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate tassel,
+	       graduate tassel drop=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap tassel drop}{graduate tassel drop}{graduate}
+}
+
+{\def\pingu at color@graduate{<graduate-color>}
+\def\pingu at color@graduate at tassel{<graduate-tassel-color>}
+\subkeyexplain{graduate}{graduate tassel start}{coordinate}{\pingu at x@tassel at start}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate tassel, 
+	       graduate tassel start={(2mm,4mm)}]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap tassel start}{graduate tassel start}{graduate}
+}
+
+{\def\pingu at color@graduate{<graduate-color>}
+\def\pingu at color@graduate at tassel{<graduate-tassel-color>}
+\subkeyexplain{graduate}{graduate tassel width}{length}{\pingu at x@tassel at width}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate tassel, 
+	       graduate tassel width=2mm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap tassel width}{graduate tassel width}{graduate}
+}
+
+{\def\pingu at color@graduate{<graduate-color>}
+\def\pingu at color@graduate at tassel{<graduate-tassel-color>}
+\subkeyexplain{graduate}{graduate tassel length}{length}{\pingu at x@tassel at length}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate tassel, 
+	       graduate tassel length=12mm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap tassel length}{graduate tassel length}{graduate}
+}
+
+{\def\pingu at color@graduate{<graduate-color>}
+\def\pingu at color@graduate at tassel{<graduate-tassel-color>}
+\def\pingu at x@tassel at width{<graduate-tassel-width>}
+\subkeyexplain{graduate}{graduate tassel drop size}{length}{\pingu at x@tassel at length}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, graduate tassel, 
+	       graduate tassel drop size=4mm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap tassel drop size}{graduate tassel drop size}{graduate}
+}
+
+\subkeyexplain{graduate}{graduate position}{angle>:(<x>,<y>)<scale}{\pingu at x@graduate at angle:(\pingu at x@graduate at xshift,\pingu at x@graduate at yshift)\{\pingu at x@graduate at scale\}}
+Currently, this is a very cumbersome command to change various graduate parameters at the same time:
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[graduate, 
+	  graduate position={1:(0cm,-.09cm){1.33}}]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyalias{graduate cap position}{graduate position}{graduate}
+
+
+
+\subsubsection{The space helmet}
+\showkeyexplain{space helmet}{color}{pingu at black!45!white}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[space helmet=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endshowkeyexplain
+
+\subkeyexplain{space helmet}{space helmet glass}{color}{\pingu at color@spacehelmet at glass}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[space helmet, space helmet glass=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{space helmet}{space helmet glass opacity}{factor}{\pingu at x@spacehelmet at glass@opacity}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[space helmet, space helmet glass opacity=1]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{space helmet}{space helmet position}{angle>:(<x>,<y>)<scale}{\pingu at x@spacehelmet at angle:(\pingu at x@spacehelmet at xshift,\pingu at x@spacehelmet at yshift)\{\pingu at x@spacehelmet at scale\}}
+Currently, this is a very cumbersome command to change various space helmet parameters at the same time:
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[space helmet, space helmet position={1:(0cm,-.09cm){1.33}}]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+
 \subsubsection{The mitra}
 \showkeyexplain{mitra}{color}{pingu at red!67!pingu at black}
 \begin{tcblisting}{@}
@@ -2580,7 +2721,7 @@
 \end{tcblisting}
 \endsubkeyexplain
 
-\subkeyexplain{mitra}{mitra overset}{lenght}{\pingu at x@mitra at overset}
+\subkeyexplain{mitra}{mitra overset}{length}{\pingu at x@mitra at overset}
 \begin{tcblisting}{@}
 \begin{tikzpicture}
 	\pingu[mitra,mitra overset=2.5mm]
@@ -4188,7 +4329,7 @@
 \end{tcblisting}
 \endsubkeyexplain
 
-\subkeyexplain{banner}{banner sticks length}{color}{\pingu at banner@stick at left@l}
+\subkeyexplain{banner}{banner sticks length}{length}{\pingu at banner@stick at left@l}
 Calls \keyref{banner stick left length} and \keyref{banner stick right length} with the same length:
 \begin{tcblisting}{@}
 \begin{tikzpicture}
@@ -4344,6 +4485,202 @@
 \end{tcblisting}
 \endsubkeyexplain
 
+\subsubsection{The flower}
+
+\showkeyexplain{flower left}{color}{pingu at white!80!pingu at black}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endshowkeyexplain
+
+\subkeyexplain{flower left}{flower left size}{length}{\pingu at flower@left at size}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left size=12mm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left center}{color}{\pingu at color@flower at left@center}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left center=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left center size}{length}{\pingu at flower@left at center@size}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left center size=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyexplain{flower left}{flower left stem}{color}{\pingu at color@flower at left@stem}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left stem=purple]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left stem length}{length}{\pingu at flower@left at stem@length}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left stem length=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left stem width}{length}{\pingu at flower@left at stem@width}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left stem width=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left stem tilt}{length}{\pingu at flower@left at stem@tilt}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left stem tilt=-1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left petal count}{count}{\pingu at flower@left at petals}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left petal count=8]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left petal width}{length}{\pingu at flower@left at petals@width}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left petal width=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left petal start angle}{length}{\pingu at flower@left at petals@start at angle}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left petal start angle=-40]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower left}{flower left petal peak}{factor}{\pingu at flower@left at petals@peak}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower left, flower left petal peak=12]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+
+\showkeyexplain{flower right}{color}{pingu at white!80!pingu at black}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endshowkeyexplain
+
+\subkeyexplain{flower right}{flower right size}{length}{\pingu at flower@right at size}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right size=12mm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right center}{color}{\pingu at color@flower at right@center}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right center=green]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right center size}{length}{\pingu at flower@right at center@size}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right center size=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+\subkeyexplain{flower right}{flower right stem}{color}{\pingu at color@flower at right@stem}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right stem=purple]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right stem length}{length}{\pingu at flower@right at stem@length}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right stem length=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right stem width}{length}{\pingu at flower@right at stem@width}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right stem width=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right stem tilt}{length}{\pingu at flower@right at stem@tilt}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right stem tilt=-1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right petal count}{count}{\pingu at flower@right at petals}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right petal count=8]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right petal width}{length}{\pingu at flower@right at petals@width}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right petal width=1cm]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right petal start angle}{length}{\pingu at flower@right at petals@start at angle}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right petal start angle=-40]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+\subkeyexplain{flower right}{flower right petal peak}{factor}{\pingu at flower@right at petals@peak}
+\begin{tcblisting}{@}
+\begin{tikzpicture}
+	\pingu[flower right, flower right petal peak=12]
+\end{tikzpicture}
+\end{tcblisting}
+\endsubkeyexplain
+
+
+
+
 \subsubsection{The cane}
 
 \showkeyexplain{cane left}{color}{pingu at bronze}
@@ -7098,11 +7435,11 @@
 % \end{commandexplain}
 
 \begin{commandexplain}{pingu at headcon@x}{}
-	This dimension holds a hardcoded value defining the x-position offseting the connection point of the penguin head. Its default value is \the\pingu at headcon@x. It may be removed in the future (or replaced by an option).
+	This dimension holds a hardcoded value defining the x-position offsetting the connection point of the penguin head. Its default value is \the\pingu at headcon@x. It may be removed in the future (or replaced by an option).
 \end{commandexplain}
 
 \begin{commandexplain}{pingu at headcon@y}{}
-	This dimension holds a hardcoded value defining the y-position offseting the connection point of the penguin head. Its default value is \the\pingu at headcon@y. It may be removed in the future (or replaced by an option).
+	This dimension holds a hardcoded value defining the y-position offsetting the connection point of the penguin head. Its default value is \the\pingu at headcon@y. It may be removed in the future (or replaced by an option).
 \end{commandexplain}
 
 \subsubsection{The Code}
@@ -7114,9 +7451,9 @@
 
 The macro \cmddef{pingu at x@bodytype at none} is defined as follows:
 \includecode{pingu at x@bodytype at none}
-\important\space Please note, that when writing the initial penguin, i did not intend to allow additional body shapes. Therefore, most of the defaults and \say{globals} are must be defined here (alongside a lot of hardcoding).
+\important\space Please note, that when writing the initial penguin, I did not intend to allow additional body shapes. Therefore, most of the defaults and \say{globals} must be defined here (alongside a lot of hardcoding).
 
-Within the initialization of all penguin options, we defuine the main colors:
+Within the initialization of all penguin options, we define the main colors:
 % \pgfqkeys{/pingu}{
 \includecode{bodytype\ keys}
 With this, the body has three colors to work with: \cmdcoldef{body at main}, \cmdcoldef{body at head}, and \cmdcoldef{body at front}.
@@ -7162,7 +7499,7 @@
 
 \subsubsection{The Code}
 
-Similary to the eyes, the feet of the penguin are controlled by two selections for the left, and the right foot. There are no extra coordinates necessary, therefore \cmdref{pingu at create@selection} receives no argument for the \textit{none}-version:
+Similarly to the eyes, the feet of the penguin are controlled by two selections for the left, and the right foot. There are no extra coordinates necessary, therefore \cmdref{pingu at create@selection} receives no argument for the \textit{none}-version:
 \includecode{feet\ selectors}
 This defines the six commands: \cmddef{pingu at leftfoot@select}, \cmddef{pingu at leftfoot@add}, \cmddef{@pingu at drawer@leftfoot@}, \cmddef{pingu at rightfoot@select}, \cmddef{pingu at rightfoot@add}, and \cmddef{@pingu at drawer@rightfoot@}.
 
@@ -7181,7 +7518,7 @@
 For this, i created the command \cmdref{pingu at feet@s}\ldots
 
 \begin{commandexplain}{pingu at feet@s}{\mand{name}\mand{left-foot}\mand{right-foot}\opt[pingu at yellow]{default color}}
-	Allows to easily add new feet.
+	Allows easily adding new feet.
 \end{commandexplain}
 The macro \cmdref{pingu at feet@s} is defined with the help of \cmddef{pingu at feet@s@} like this:
 \includecode{pingu at feet@s}

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-bee.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-bee.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-bee.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,64 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-% TODO: integrate?
-% TODO: allow to specify rotation anchor
-
-\pingu at create@extra{bee}{%
-    bee/.code    	  = {\pingu at set@extra{bee}{true}\pingu at color{bee}{#1}},
-    bee/.default      = pingu at yellow!60!pingu at white,%
-    bee body/.code    = \pingu at color{bee at body}{#1},
-    bee eyes/.code    = \pingu at color{bee at eyes}{#1},
-    bee wings/.code    = \pingu at color{bee at wings}{#1},
-    bee mouth/.code    = \pingu at color{bee at mouth}{#1},
-    bee blush/.code    = \pingu at color{bee at blush}{#1},
-    bee position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@bee at angle{#1}\def\pingu at x@bee at xshift{#2}\def\pingu at x@bee at yshift{#3}\def\pingu at x@bee at scale{#4}},
-}{bee body=pingu at black!82!gray,bee wings=pingu at blue!8!pingu at white,bee mouth=\pingu at color@bee at body,bee eyes=\pingu at color@bee at body,bee blush=pingu at red!21!\pingu at color@bee,bee position={-27.5:(8mm,15mm){.875}}}
-
-\def\pingu at bee@x at lbody{ (left) to[out=270,in=150] (0,-.725) to[out=30,in=270] (right)}
-
-\def\pingu at draw@ea at bee{%
-\scope[very path/.append style={line join=round},rotate around={\pingu at x@bee at angle:(\pingu at name-head)},shift={(\pingu at name-head)},shift={(\pingu at x@bee at xshift,\pingu at x@bee at yshift)},scale=\pingu at x@bee at scale]
-% wings
-\coordinate (wl) at(20:2.55mm);
-\coordinate (wr) at(160:2.55mm);
-\pingu at draw[fill=\pingu at color@bee at wings!80!white,rotate around=-32:(wl)]{\pingu at color@bee at body} (wl) ellipse [x radius=6.15mm, y radius=2.75mm];
-\pingu at draw[fill=\pingu at color@bee at wings!80!white,rotate around=32:(wr)]{\pingu at color@bee at body} (wr) ellipse [x radius=6.15mm, y radius=2.75mm];
-\pingu at draw[fill=\pingu at color@bee at wings,rotate around=19:(wl)]{\pingu at color@bee at body} (wl) ellipse [x radius=6.55mm, y radius=3.125mm];
-\pingu at draw[fill=\pingu at color@bee at wings,rotate around=-19:(wr)]{\pingu at color@bee at body} (wr) ellipse [x radius=6.55mm, y radius=3.125mm];
-% body
-\path (-.375,0) coordinate (left) -- (.375,0) coordinate (right);
-% TODO: block draw?
-\pingu at block[draw=\pingu at color@bee at body]{\pingu at color@bee at body} \pingu at bee@x at lbody;
-\scope\clip\pingu at bee@x at lbody;
-\foreach \angl in {30,1} {
-\pingu at block{\pingu at color@bee} (-\angl:.75) to[bend left=14] (180+\angl:.75) -- ++(0,-1.75mm)
-                     to[bend right=14] (-\angl-14:.75) -- cycle;
-}\endscope
-% left and right arm
-\foreach\m/\s/\k in {right/-2.45/95,left/-.75/80} {
-\scope[shift=(\m),yshift=\s,rotate around=\k:(\m),scale=.166]
-\pingu at block{\pingu at color@bee at body} (-.965,0) arc(270:90:.29) -- ++(1.233,0) arc (90:-90:.29) -- cycle;
-\endscope}
-% sting
-\pingu at draw[line cap=round,thick]{\pingu at color@bee at body} (0,-.725) -- ++(0,-.035);
-% head
-\pingu at draw[fill=\pingu at color@bee,rounded corners=1.5pt]{\pingu at color@bee at body} (.85mm,-.55mm) to[bend right=30,looseness=.9] ([xshift=1.45mm,yshift=1.35mm]right) arc(0:180:{(.75cm+2*1.45mm)/2} and {(.75cm+2*1.45mm)/2.05}) to[bend right=30,looseness=.9] (-.85mm,-.55mm) -- cycle;
-% eyes [intersect with left and right]
-\pingu at block{\pingu at color@bee at eyes} (left|-0,2.265mm)++(.6mm,0) coordinate (el) circle[radius=.6mm];
-\coordinate (ell) at ([yshift=-.8mm]el);
-\pingu at block[rotate around=3:(ell)]{\pingu at color@bee at blush} ([yshift=-.8mm]el) ellipse[x radius=.412mm, y radius=.165mm];
-\pingu at block{\pingu at color@bee at eyes} (right|-0,2.265mm)++(-.6mm,0) coordinate (er) circle[radius=.6mm];
-\coordinate (err) at ([yshift=-.8mm]er);
-\pingu at block[rotate around=-1:(err)]{\pingu at color@bee at blush} ([yshift=-.8mm]er) ellipse[x radius=.4mm, y radius=.155mm];
-% mouth
-\scope[yshift=1mm]
-\pingu at draw[semithick,line cap=round]{\pingu at color@bee at mouth} (-.6mm,0) arc (180:360:.6mm and .415mm);
-% antenna
-\pingu at draw[line cap=round]{\pingu at color@bee at body} (123:4mm) to[out=110,in=-41] ++(-1mm,3mm) coordinate (@);
-\pingu at block[rotate around=-41:(@)]{\pingu at color@bee at body} ([xshift=-.1mm,yshift=-.185mm]@) ellipse[x radius=.55mm,y radius=.35mm];
-\pingu at draw[line cap=round]{\pingu at color@bee at body} (57:4mm) to[out=70,in=180+41] ++(1mm,3mm) coordinate (@);
-\pingu at block[rotate around=41:(@)]{\pingu at color@bee at body} ([xshift=-.1mm,yshift=-.2mm]@) ellipse[x radius=.55mm,y radius=.35mm];
-\endscope
-\endscope
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-christmas.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-christmas.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-christmas.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,153 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{santahat}{%
-    santa hat/.code             = \pingu at set@extra{santahat}{true}\pingu at color{santahat}{#1}\pgfqkeys{/pingu}{hair=\@pingu at none},
-    santa hat/.default          = pingu at red!87!pingu at black,
-    santa hat second/.code      = \pingu at color{santahat at second}{#1},
-    santa hat bobble/.code      = \pingu at color{santahat at bobble}{#1}
-}{santa hat second={pingu at white!97!\pingu at color@santahat},santa hat bobble={\pingu at color@santahat at second}}
-\def\pingu at draw@ea at santahat{%
-\path (\pingu at name-head-center)+(152:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-santa-right);
-\path (\pingu at name-head-center)+(5:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-santa-left);
-\pingu at layer{middle}[]
-\pingu at block{\pingu at color@santahat at second} (\pingu at name-santa-right) to[out=48,in=132] (\pingu at name-santa-left) to[out=30,in=-45,looseness=1.325] ++(0,3.2mm)
-to[out=135,in=47,looseness=1.025] coordinate[pos=.915] (\pingu at name-santa-ur) coordinate[pos=.055] (\pingu at name-santa-ul) ([yshift=2mm]\pingu at name-santa-right) to[out=240,in=140] cycle;
-\endpingu at layer
-\pingu at layer{background}[]
-\pingu at block{\pingu at color@santahat} (\pingu at name-santa-ur) arc(145:-25:11.85mm and 14.915mm)
-    to[bend right=7] coordinate[pos=.5] (\pingu at name-santa-lc) ++(-1.11mm,.375mm) to[bend right=11] (\pingu at name-santa-ul) to[bend right=15] cycle;
-\pingu at block{\pingu at color@santahat at bobble} (\pingu at name-santa-lc) circle[radius=2.625mm];
-\endpingu at layer
-}
-\pingu at create@extra{santabeard}{%
-    santa beard/.code             = \pingu at set@extra{santabeard}{true}\pingu at color{santabeard}{#1},
-    santa beard/.default          = pingu at white!96!pingu at red!98!pingu at black!92!gray,
-    santa beard string/.code      = \pingu at color{santabeard at string}{#1}
-}{santa beard string=\pingu at color@body at main!85!pingu at black}
-\def\pingu at draw@ea at santabeard{%
-% \coordinate (\pingu at name-santa-beard-center) at ([yshift=1.25mm]\pingu at name-belly-center);
-\pingu at block{\pingu at color@santabeard at string} ([xshift=-.35mm,yshift=.575mm]\pingu at name-head-back-con-right) to[bend right=28,edge node={foreach[count=\i] \l in {0.03,0.085,...,0.992} {coordinate[pos=\l-rand*.015,yshift=-.85pt] (\pingu at name-santa-beard-\i)}}]
-([yshift=.575mm,xshift=.35mm]\pingu at name-head-back-con-left) arc(20:110:.05mm and .15mm) to[bend left=26] ([yshift=.575mm+.15mm,xshift=-.35mm]\pingu at name-head-back-con-right) to[bend right] cycle;
-\ifx\pingu at color@santabeard\@pingu at none\else% to allow for random
-\xdef\@pmaxY{18}\xdef\@pmaxYI{17}%
-\foreach[evaluate=\j as \maxj using int(\@pmaxY-\j),evaluate=\j as \widthred using \j/23pt] \j in {0,...,\@pmaxYI} {
-\foreach[remember=\i as \li (initially 0)] \i in {1,...,\maxj} {
-    \pgfmathsetmacro\@ptmp{94+rand*2.6}
-    \pingu at block{\pingu at color@santabeard!\@ptmp!pingu at black} (\pingu at name-santa-beard-\i) circle [radius=1.85pt-\widthred pt+rand*.35pt];
-    \ifnum\li>0 % make middle of last
-        \path (\pingu at name-santa-beard-\li) -- (\pingu at name-santa-beard-\i) coordinate[pos=.5,yshift=-1.1pt,xshift=.133pt] (\pingu at name-santa-beard-\li); % smoll shift
-    \fi
-}}\fi
-}
-
-\pingu at create@extra{woolhat}{%
-    wool hat/.code             = \pingu at set@extra{woolhat}{true}\pingu at color{woolhat}{#1}\pgfqkeys{/pingu}{hair=\@pingu at none},
-    wool hat/.default          = pingu at blue!57!pingu at black,
-    wool hat second/.code      = \pingu at color{woolhat at second}{#1},
-    wool hat bobble/.code      = \pingu at color{woolhat at bobble}{#1}
-}{wool hat second={\pingu at color@woolhat!55!pingu at white},wool hat bobble={\pingu at color@woolhat at second}}
-\def\pingu at draw@ea at woolhat{%
-\path ([yshift=.5mm,xshift=.165mm]\pingu at name-head-center)+(165:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-wool-right);
-\path ([yshift=.5mm,xshift=-.045mm]\pingu at name-head-center)+(4:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-wool-left);
-\pingu at layer{middle}[]
-\pingu at block{\pingu at color@woolhat at second} (\pingu at name-wool-right) to[out=37,in=170] (\pingu at name-wool-left) to[out=50,in=-55] ++(0,1.52mm) coordinate (\pingu at name-wool-left-up)
-to[out=167,in=38] coordinate[pos=.915] (\pingu at name-wool-ur) coordinate[pos=.055] (\pingu at name-wool-ul) ([yshift=1.5mm]\pingu at name-wool-right) coordinate (\pingu at name-wool-right-up) to[out=240,in=140] cycle;
-\endpingu at layer
-\path (\pingu at name-wool-left-up) -- (\pingu at name-wool-right-up) coordinate[pos=.455,yshift=9.75mm] (@mid);
-\pingu at block{\pingu at color@woolhat} (\pingu at name-wool-right-up) to[out=71,in=203] [rounded corners=2pt] (@mid) to[out=-34,in=100]  [sharp corners]  (\pingu at name-wool-left-up) to[in=37,out=172] cycle;
-\pingu at layer{background}[]
-\pingu at block{\pingu at color@woolhat at bobble} (@mid) circle [radius=1.25mm];
-\endpingu at layer
-}
-
-
-\pingu at create@extra{deerhat}{%
-    deer hat/.code             = \pingu at set@extra{deerhat}{true}\pingu at color{deerhat}{#1}\pgfqkeys{/pingu}{hair=\@pingu at none},
-    deer hat/.default          = pingu at bronze!57!pingu at black,
-    deer hat b/.code           = \pingu at color{deerhat at b}{#1},
-    deer hat band/.code        = \pingu at color{deerhat at band}{#1},
-}{deer hat band={\pingu at color@deerhat!85!pingu at black},deer hat b=\pingu at color@deerhat}
-\pgfmathsetmacro\pingu at deerhat@baseang at l{90-360*(1-\pinguanglehl)}
-\pgfmathsetmacro\pingu at deerhat@baseang at r{90-360*(1-\pinguanglehr)}
-\def\pingu at deerhat@baseoff{47}
-\def\pingu at deerhat@yshift{.15mm}
-\def\pingu at deerhat@linewidth{1.32mm}
-\def\pingu at deerhat@headoff at l{22}
-\def\pingu at deerhat@headoff at r{19}
-\def\pingu at draw@ea at deerhat{%
-\path ([yshift=-\pingu at deerhat@yshift]\pingu at name-head-left) arc (\pingu at deerhat@baseang at l:\pingu at deerhat@baseang at l-\pingu at deerhat@baseoff:\pingu at w@half{} and \pingu at head@h at half) coordinate[yshift=.05mm] (@target);
-\pingu at draw[line width=.7mm]{\pingu at color@deerhat at band} ([xshift=-.8mm]@target) arc (\pingu at deerhat@baseang at l-\pingu at deerhat@baseoff:360+\pingu at deerhat@baseang at r+\pingu at deerhat@baseoff:\pingu at w@half{}-.8mm and \pingu at head@h at half);
-
-\path ([yshift=-\pingu at deerhat@yshift]\pingu at name-head-top) arc (90:90-\pingu at deerhat@headoff at l:\pingu at w@half{} and \pingu at head@h at half) coordinate (@left);
-\path ([yshift=-\pingu at deerhat@yshift]\pingu at name-head-top) arc (90:90+\pingu at deerhat@headoff at r:\pingu at w@half{} and \pingu at head@h at half) coordinate (@right);
-
-\pgfonlayer{background}
-\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat} (@left) to[bend right=4] ++(.85mm,1.5mm) coordinate (@a) -- ++(3.15mm,.5mm) coordinate (@b) -- ++(4.65mm,4.35mm) coordinate[pos=.5] (@c) to[bend right=10] ++(-.75mm,2.55mm);
-\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat} ([xshift=-.135mm,yshift=-.425mm]@a) to[bend left=3] ++(1mm,3.9mm) ([xshift=-.4mm,yshift=-.05mm]@b) to[bend right=2] ++(3.75mm,.1mm) (@c) to[bend left=12] ++(-1mm,3.5mm);
-\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat at b} (@right) to[bend left=4] ++(-.85mm,1.5mm) coordinate (@a) -- ++(-3.15mm,.5mm) coordinate (@b) -- ++(-4.65mm,4.35mm) coordinate[pos=.5] (@c) to[bend left=10] ++(.75mm,2.55mm);
-\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat at b} ([yshift=-.425mm,xshift=.135mm]@a) to[bend right=3] ++(-1mm,3.9mm) ([xshift=.4mm,yshift=-.05mm]@b) to[bend right=2] ++(-3.75mm,.1mm) (@c) to[bend right=12] ++(1mm,3.5mm);
-\endpgfonlayer
-}
-
-\pingu at create@wing at extra{present}{%
-  present \@lr/.code              = {\pingu at set@extra{present\@lr}{true}\pingu at color{present\@lr}{##1}},
-  present \@lr/.default           = pingu at red!50!pingu at black!60!red,
-  present \@lr\space width/.code  = \@namedef{pingu at present@\@lr @width}{##1},
-  present \@lr\space height/.code = \@namedef{pingu at present@\@lr @height}{##1},
-  present \@lr\space ribbon/.code   = \pingu at color{present\@lr @ribbon}{##1},%
-  present \@lr\space band/.code   = \pingu at color{present\@lr @band}{##1},%
-  present \@lr\space band width/.code  = \@namedef{pingu at present@\@lr @band at width}{##1},
-  present \@lr\space xshift/.code = \@namedef{pingu at present@\@lr @xshift}{##1},
-  present \@lr\space yshift/.code = \@namedef{pingu at present@\@lr @yshift}{##1},
-  present \@lr\space band second height/.code = \@namedef{pingu at present@\@lr @band at second@height}{##1},
-  present \@lr\space band second yshift/.code = \@namedef{pingu at present@\@lr @band at second@yshift}{##1},
-  present \@lr\space lid/.code   = \pingu at color{present\@lr @lid}{##1},%
-  present \@lr\space lid height/.code = \@namedef{pingu at present@\@lr @lid at height}{##1},
-  present \@lr\space lid overhang/.code = \@namedef{pingu at present@\@lr @lid at overhang}{##1},
-  present \@lr\space lid yshift/.code = \@namedef{pingu at present@\@lr @lid at yshift}{##1},
-  present \@lr\space lid band/.code   = \pingu at color{present\@lr @lid at band}{##1},%
-}{present \@lr\space band=pingu at green!70!pingu at black!90!pingu at white,present \@lr\space width=7.75mm,present \@lr\space band width=1.75mm,present \@lr\space height=7mm,present \@lr\space yshift=-0.25*(\csname pingu at present@\@lr @height\endcsname),present \@lr\space band second height=\csname pingu at present@\@lr @band at width\endcsname, present \@lr\space band second yshift=0.5*(\csname pingu at present@\@lr @height\endcsname),present \@lr\space xshift=-0.25*(\csname pingu at present@\@lr @width\endcsname),present \@lr\space lid=\csname pingu at color@present\@lr\endcsname!92!pingu at black,present \@lr\space lid height=1.33mm,present \@lr\space lid overhang=.125mm,present \@lr\space lid yshift=0,present \@lr\space lid band=\csname pingu at color@present\@lr @band\endcsname!98!pingu at black,present \@lr\space ribbon=\csname pingu at color@present\@lr @band\endcsname!97!pingu at black}
-
-% TODO: more ribbon color control
-% #1 wing
-\def\pingu at draw@wi at present#1{%
-    \pingu at setup@wing{present}{#1}%
-    \scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-        \pingu at block[rounded corners=2pt]{\@col}(\pingu at name-wing-#1)++(-{0.5*(\csname pingu at present@#1 at width\endcsname)+\csname pingu at present@#1 at xshift\endcsname},{\csname pingu at present@#1 at yshift\endcsname}) coordinate (@ll) rectangle ++({\csname pingu at present@#1 at width\endcsname},{\csname pingu at present@#1 at height\endcsname}) coordinate (@ur);
-        % vert band
-        \pingu at block{\csname pingu at color@present#1 at band\endcsname}(@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)-0.5*(\csname pingu at present@#1 at band@width\endcsname)},0) rectangle ++({\csname pingu at present@#1 at band@width\endcsname},{\csname pingu at present@#1 at height\endcsname});
-        % horiz band
-        \pingu at block{\csname pingu at color@present#1 at band\endcsname}(@ll)++(0,{\csname pingu at present@#1 at band@second at yshift\endcsname-0.5*(\csname pingu at present@#1 at band@second at height\endcsname)}) rectangle ++({\csname pingu at present@#1 at width\endcsname},{\csname pingu at present@#1 at band@second at height\endcsname});
-        % lid
-        \pingu at block[rounded corners=.75pt]{\csname pingu at color@present#1 at lid\endcsname} ([yshift={\csname pingu at present@\@lr @lid at yshift\endcsname},xshift=\csname pingu at present@\@lr @lid at overhang\endcsname]@ur) rectangle ++({-\csname pingu at present@#1 at width\endcsname-2*(\csname pingu at present@\@lr @lid at overhang\endcsname)},-\csname pingu at present@#1 at lid@height\endcsname) coordinate (@ll);
-        % upper lid band
-        \pingu at block{\csname pingu at color@present#1 at lid@band\endcsname}(@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)-0.5*(\csname pingu at present@#1 at band@width\endcsname)+\csname pingu at present@\@lr @lid at overhang\endcsname},0) rectangle ++({\csname pingu at present@#1 at band@width\endcsname},{\csname pingu at present@#1 at lid@height\endcsname});
-        % ribbon
-        \path (@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)+\csname pingu at present@\@lr @lid at overhang\endcsname+0.2*(\csname pingu at present@#1 at band@width\endcsname)},{\csname pingu at present@#1 at lid@height\endcsname+.25mm}) coordinate (@top);
-        \pingu at block[even odd rule]{\csname pingu at color@present#1 at ribbon\endcsname} (@top) to[out=40,in=110] ++(4mm,1mm)
-        to[out=-70,in=-20] ++(-4mm,-1.5mm) to[bend left=55] cycle ([xshift=.5mm]@top) to[out=40,in=110] ++(2.55mm,.5mm)
-        to[out=-70,in=-20] [rounded corners=1pt] ++(-2.85mm,-.835mm) -- cycle;
-        \path (@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)+\csname pingu at present@\@lr @lid at overhang\endcsname-0.2*(\csname pingu at present@#1 at band@width\endcsname)},{\csname pingu at present@#1 at lid@height\endcsname+.25mm}) coordinate (@top);
-        \pingu at block[even odd rule]{\csname pingu at color@present#1 at ribbon\endcsname} (@top) to[out=180-40,in=180-110] ++(-3.6mm,1mm)
-        to[out=-110,in=-160] ++(3.6mm,-1.5mm) to[bend right=55] cycle ([xshift=-.5mm]@top) to[out=140,in=70] ++(-2.55mm,.5mm)
-        to[out=-110,in=-160] [rounded corners=1pt] ++(2.55mm,-.75mm) -- cycle;
-        \pingu at block[rounded corners=.5pt]{\csname pingu at color@present#1 at ribbon\endcsname} (@top)++(-.3mm,-.65mm) rectangle ++(1.3mm,.65mm); % TODO: make that round? (i.e., bend edges)
-    \endscope
-}
-
-\pingu at create@wing at extra{snowball}{%
-  snowball \@lr/.code         = {\pingu at set@extra{snowball\@lr}{true}\pingu at color{snowball\@lr}{##1}},
-  snowball \@lr/.default      = pingu at white!90!pingu at black,
-  snowball \@lr\space size/.code  = \expandafter\def\csname pingu at snowball@\@lr @size\endcsname{##1},
-  snowball \@lr\space xshift/.code  = \expandafter\def\csname pingu at snowball@\@lr @xshift\endcsname{##1},
-  snowball \@lr\space yshift/.code  = \expandafter\def\csname pingu at snowball@\@lr @yshift\endcsname{##1}
-}{snowball \@lr\space size=2.33mm, snowball \@lr\space xshift=0pt, snowball \@lr\space yshift=0pt}
-
-% #1 wing
-% TODO: shifts
-\def\pingu at draw@wi at snowball#1{%
-\pingu at setup@wing{snowball}{#1}%
-    \pingu at draw[opacity=.35]{\@col} ([xshift=\csname pingu at snowball@#1 at xshift\endcsname,yshift=\csname pingu at snowball@#1 at yshift\endcsname]\pingu at name-wing-#1) coordinate (@) circle[radius=\csname pingu at snowball@#1 at size\endcsname];
-    \pingu at block[rotate around={\@angle-1:(\pingu at name-wing-#1)},decoration={random steps,segment length=1pt,amplitude=.075pt},decorate,rounded corners=.35pt,save path=\snowball at outer]{\@col}(@) circle[radius=\csname pingu at snowball@#1 at size\endcsname];
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-cloak.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-cloak.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-cloak.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,78 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\newif\if at pingu@x at cloak@wings
-\pingu at create@extra{cloak}{%
-    cloak/.code              = \pingu at set@extra{cloak}{true}\pingu at color{cloak}{#1},
-    cloak/.default           = pingu at bronze,
-    cloak cap/.code          = \pingu at color{cloak at cap}{#1},
-    cloak wings color/.code  = \pingu at color{cloak at wings}{#1},
-    cloak bottom color/.code = \pingu at color{cloak at bottom}{#1},
-    cloak front color/.code  = \pingu at color{cloak at front}{#1},
-    cloak padding/.code      = \def\pingu at x@cloak at padding{#1},
-    cloak wings/.is if       = @pingu at x@cloak at wings,
-    cape/.style              = {/pingu/cloak=#1, /pingu/cloak wings=false,/pingu/cloak front color=\@pingu at none, /pingu/cloak cap=\@pingu at none,/pingu/cloak front color=\@pingu at none},
-    cape/.default            = pingu at bronze,
-}{cloak padding=1.95mm,cloak bottom color=\pingu at color@cloak!90!black,cloak cap=\pingu at color@cloak!98!pingu at black,cloak front color=\pingu at color@cloak!90!white,cloak wings color=\pingu at color@cloak at front!94!pingu at black,cloak wings=true}
-\def\pingu at draw@cloth at cloak@behind{%
-    \pingu at block[bottom color=\pingu at color@cloak at bottom,top color=\pingu at color@cloak]{\pingu at color@cloak} (\pingu at name-bottom-center)++(-\pingu at x@cloak at padding-\pingu at w@half,-.5mm) arc (180:0:{\pingu at x@cloak at padding+\pingu at w@half} and \pingu at one) to[bend left=1] (\pingu at name-wings-side-left) arc(0:180:\pingu at w@half{} and .75mm) to[bend left=1] cycle;
-}
-
-\def\pingu at draw@cloth at cloak@middle{\pingu at block[rounded corners=.7mm]{\pingu at color@cloak at front}
-(\pingu at name-bottom-center)++(-\pingu at x@cloak at padding-\pingu at w@half,-.5mm) arc (180:250:{\pingu at x@cloak at padding+\pingu at w@half} and \pingu at one) to[bend right=6]
-([xshift=1.3mm,yshift=.4mm]\pingu at name-wings-side-right) to[bend right=3] ([yshift=.65mm]\pingu at name-wings-side-right);
-\pingu at block[rounded corners=.7mm]{\pingu at color@cloak at front}
-(\pingu at name-bottom-center)++(\pingu at x@cloak at padding+\pingu at w@half,-.5mm) arc (0:-70:{\pingu at x@cloak at padding+\pingu at w@half} and \pingu at one) to[bend left=6]
-([xshift=-1.3mm,yshift=.4mm]\pingu at name-wings-side-left) to[bend left=3] ([yshift=.65mm]\pingu at name-wings-side-left);}
-
-% TODO: if flags to draw parts
-\def\pingu at draw@cloth at cloak{%
-\scope[rounded corners=.6\p@]
-    % wings
-    \if at pingu@x at cloak@wings
-    \edef\@la{\csname @pingu at wingdown@\@pingu at select@leftwing@ @\endcsname}
-    \ifnum\@la>0 % wing is going inverted up or down / \ => left
-        \pingu at layer{foreground}[]
-        \ifnum\@la>70
-            \pingu at block[right color=\pingu at color@cloak at front,left color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} (\pingu at name-wing-left-start)++(.5mm,-3.5mm) to[bend left=10] (\pingu at name-wing-left-low) to[bend right=13] (\pingu at name-wing-left-up) to[bend left=3] (\pingu at name-wing-left-start-up) to[bend left] ([xshift=.35mm,yshift=1mm]\pingu at name-wing-left-start);
-            \else % down
-            \pingu at block[right color=\pingu at color@cloak at front,left color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} (\pingu at name-wing-left-start)++(.5mm,-3.5mm) to[bend left=10] (\pingu at name-wing-left-low) to[bend right=13] (\pingu at name-wing-left-up) to[bend left=3] ([xshift=1mm,yshift=1mm]\pingu at name-wing-left-start-up) to[bend left=4.5] ([xshift=.5mm,yshift=-3.5mm]\pingu at name-wing-left-start);
-        \fi
-        \endpingu at layer
-    \else
-        \ifnum\@la<-90% normal up \ / => left side
-            \pingu at block[upper right=\pingu at color@cloak at wings,lower right=\pingu at color@cloak at front,lower left=\pingu at color@cloak at front,upper left=\pingu at color@cloak at front]{\pingu at color@cloak at wings} ([xshift=.25mm]\pingu at name-wing-left-start-low) to[bend right=14] (\pingu at name-wing-left-low) to[bend left=8] ([yshift=-.5mm]\pingu at name-wing-left-up) to[bend right=17] ([yshift=1.6mm]\pingu at name-wing-left-start-up) to[bend right=13] ([xshift=-.15mm,yshift=.15mm]\pingu at name-waist-left) -- cycle;
-        \else % normal and hugging down => right
-            \pingu at block[top color=\pingu at color@cloak at front,middle color=\pingu at color@cloak,bottom color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} plot[smooth] coordinates {([xshift=-1.38mm]\pingu at name-wings-side-left) (\pingu at name-wing-left-start-low) ([yshift=.65mm,xshift=-.65mm]\pingu at name-wing-left-low) ([yshift=.65mm,xshift=-.65mm]\pingu at name-wing-left-up) ([xshift=.68mm]\pingu at name-wings-side-left) ([xshift=-1.38mm]\pingu at name-wings-side-left)};
-        \fi
-    \fi
-    \edef\@ra{\csname @pingu at wingdown@\@pingu at select@rightwing@ @\endcsname}
-    \ifnum\@ra>0 % wing is going inverted up or down => right
-        \pingu at layer{foreground}[]
-        \ifnum\@ra>70
-            \pingu at block[left color=\pingu at color@cloak at front,middle color=\pingu at color@cloak at front,right color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} (\pingu at name-wing-right-start-low) to[bend right=10] (\pingu at name-wing-right-low) to[bend left=13] (\pingu at name-wing-right-up) to[bend right=3] (\pingu at name-wing-right-start-up) -- ++(-.25mm,0mm) to[bend right=11] cycle;
-        \else
-            \pingu at block[left color=\pingu at color@cloak at front,middle color=\pingu at color@cloak at front,right color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings}  ([xshift=1mm,yshift=-1mm]\pingu at name-wing-right-start-low) to[bend right=10] (\pingu at name-wing-right-low) to[bend left=13] (\pingu at name-wing-right-up) to[bend right=3] ([xshift=-1mm,yshift=1mm]\pingu at name-wing-right-start-up) to[bend right=4.5] ([xshift=-.5mm,yshift=-3.5mm]\pingu at name-wing-right-start);
-        \fi
-        \endpingu at layer
-    \else
-        \ifnum\@ra<-90% normal up => right side
-            \pingu at block[upper left=\pingu at color@cloak at wings,lower left=\pingu at color@cloak at front,lower right=\pingu at color@cloak at front,upper right=\pingu at color@cloak at front]{\pingu at color@cloak at wings} ([xshift=.25mm]\pingu at name-wing-right-start-low) to[bend left=14] (\pingu at name-wing-right-low) to[bend right=8] ([yshift=-.5mm]\pingu at name-wing-right-up) to[bend left=17] ([yshift=1.6mm]\pingu at name-wing-right-start-up) to[bend left=13] ([xshift=.15mm,yshift=.15mm]\pingu at name-waist-right) -- cycle;
-        \else % normal and hugging down => left
-            \pingu at block[top color=\pingu at color@cloak at front,middle color=\pingu at color@cloak at front,bottom color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} plot[smooth] coordinates {([xshift=1.38mm]\pingu at name-wings-side-right) (\pingu at name-wing-right-start-low) ([yshift=.85mm,xshift=-.35mm]\pingu at name-wing-right-low) ([yshift=.85mm,xshift=.35mm]\pingu at name-wing-right-up) ([xshift=-.68mm]\pingu at name-wings-side-right) ([xshift=1.38mm]\pingu at name-wings-side-right)};
-        \fi
-    \fi
-\fi
-    % cape
-    \pingu at block[rounded corners=.8mm]{\pingu at color@cloak at cap} ([xshift=.85mm,yshift=-2.75mm]\pingu at name-wing-left-start) to[bend left=4] ([xshift=-.45mm,yshift=-.65mm]\pingu at name-wings-side-left) to[bend right=3]
-    (\pingu at name-head)
-    to[bend right=3]
-    ([xshift=.4mm,yshift=-.65mm]\pingu at name-wings-side-right) [rounded corners=.15mm] to[bend left=3] ([xshift=-.85mm,yshift=-2.75mm]\pingu at name-wing-right-start)
-    to[bend left=8]
-    ([xshift=-.66mm]\pingu at name-wings-side-right)
-    [rounded corners=.15mm]
-    to[bend left=32] ++(\pingu at w@half+.66mm,\pingu at w@half+1.2\pingu at one)
-    to[bend left=32] ++(\pingu at w@half+.66mm,-\pingu at w@half-1.2\pingu at one)
-    to[bend left=8] cycle;
-\endscope
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-devil.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-devil.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-devil.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,90 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{devilhorns}{%
-    devilhorns/.forward to = /pingu/devil horns,
-    devil-horns/.forward to = /pingu/devil horns,
-    devil horns/.code    = \pingu at set@extra{devilhorns}{true}\pingu at color{devilhorns}{#1},
-    devil horns/.default = pingu at purple,
-    devil horns b/.code  = \pingu at color{devilhorns at b}{#1},
-    devilhorns b/.forward to = /pingu/devil horns b,
-    devil-horns b/.forward to = /pingu/devil horns b
-}{devil horns b=\pingu at color@devilhorns}
-
-\pgfmathsetmacro\pingu at devilhorns@baseang at l{90-360*(1-\pinguanglehl)}
-\pgfmathsetmacro\pingu at devilhorns@baseang at r{90-360*(1-\pinguanglehr)}
-\def\pingu at devilhorns@baseoff{12}
-\def\pingu at devilhorns@yshift{.65mm}
-\def\pingu at draw@ea at devilhorns{%
-    % 90 - 360*.06
-    \pingu at block{\pingu at color@devilhorns} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) arc (\pingu at devilhorns@baseang at l:\pingu at devilhorns@baseang at l-\pingu at devilhorns@baseoff:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-devilhorns-left-goal) to[out=32,in=-32,looseness=.9] ++(.3mm,2.65mm) to[bend left=17] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) -- cycle;
-    \pingu at block{\pingu at color@devilhorns} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) to [bend right=38] (\pingu at name-devilhorns-left-goal) to[bend right=30] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) -- cycle;
-    \pingu at block{\pingu at color@devilhorns at b} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) arc (\pingu at devilhorns@baseang at r:\pingu at devilhorns@baseang at r+\pingu at devilhorns@baseoff:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-devilhorns-right-goal) to[out=148,in=-148,looseness=.9] ++(-.3mm,2.65mm) to[bend right=17] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) -- cycle;
-    \pingu at block{\pingu at color@devilhorns at b} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) to [bend left=38] (\pingu at name-devilhorns-right-goal) to[bend left=30] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) -- cycle;
-}
-
-% wip hack
-\colorlet{pingu at devil@ring}{pingu at black}
-\def\pingu at devil@x at opacity{.75}
-\pingu at eyes@s{devil}{%
-\pingu at layer{foreground}[]
-    \pingu at block{pingu at devil@ring} ([yshift=.75mm,xshift=\pingu at eye@shift]\pingu at name-eye-back-left) coordinate (\pingu at name-eye-left) ellipse [x radius=.1535cm, y radius=.1575cm];
-    \pingu at block{\pingu at color@eye at second@left} ([yshift=.75mm,xshift=\pingu at eye@shift]\pingu at name-eye-back-left) coordinate (\pingu at name-eye-left) ellipse [x radius=.1325cm, y radius=.1375cm];
-    \fill[\pingu at color@eye at left,/pingu/@glow] (\pingu at name-eye-left) circle [radius=1.325mm];
-    \pingu at block[fill opacity=\pingu at devil@x at opacity]{\pingu at color@eye at left} (\pingu at name-eye-left)++(0,.36) to[bend right=58] ++(.36,-.36) to[bend right=58] ++(-.36,-.36) to[bend right=58] ++(-.36,.36) to[bend right=58] cycle;
-    \fill[/pingu/@glow,fill=\pingu at color@eye at left!20!pingu at yellow!15!pingu at white] (\pingu at name-eye-left)++(0,.10) to[bend right=60] ++(.10,-.10) to[bend right=60] ++(-.10,-.10) to[bend right=60] ++(-.10,.10) to[bend right=60] cycle;
-    \fill[\pingu at color@eye at left!20!pingu at yellow!7!pingu at white] (\pingu at name-eye-left) circle [radius=.5pt]; %
-    \pingu at block{pingu at white} (\pingu at name-eye-left) circle [radius=.15pt];
-\endpingu at layer
-}{%
-\pingu at layer{foreground}[]
-    \pingu at block{pingu at black} ([yshift=.75mm,xshift=-\pingu at eye@shift]\pingu at name-eye-back-right) coordinate (\pingu at name-eye-right) ellipse [x radius=.1535cm, y radius=.1575cm];
-    \pingu at block{\pingu at color@eye at second@right} ([yshift=.75mm,xshift=-\pingu at eye@shift]\pingu at name-eye-back-right) coordinate (\pingu at name-eye-right) ellipse [x radius=.1325cm, y radius=.1375cm];
-    \fill[\pingu at color@eye at right,/pingu/@glow] (\pingu at name-eye-right) circle [radius=1.325mm];
-    \pingu at block[fill opacity=.75]{\pingu at color@eye at right} (\pingu at name-eye-right)++(0,.36) to[bend right=58] ++(.36,-.36) to[bend right=58] ++(-.36,-.36) to[bend right=58] ++(-.36,.36) to[bend right=58] cycle;
-    \fill[/pingu/@glow,fill=\pingu at color@eye at right!20!pingu at yellow!15!pingu at white] (\pingu at name-eye-right)++(0,.10) to[bend right=60] ++(.10,-.10) to[bend right=60] ++(-.10,-.10) to[bend right=60] ++(-.10,.10) to[bend right=60] cycle;
-    \fill[\pingu at color@eye at right!20!pingu at yellow!7!pingu at white] (\pingu at name-eye-right) circle [radius=.5pt]; %
-    \pingu at block{pingu at white} (\pingu at name-eye-right) circle [radius=.15pt];
-\endpingu at layer
-}[pingu at purple]
-
-\pingu at create@wing at extra{devilfork}{%
-    devil fork \@lr/.code         = {\pingu at set@extra{devilfork\@lr}{true}\pingu at color{devilfork\@lr}{##1}},
-    devil fork \@lr/.default      = pingu at red,
-    devil fork \@lr\space second/.code= \pingu at color{devilfork\@lr @second}{##1},
-    devil fork \@lr\space length/.code =\expandafter\def\csname pingu at devilfork@\@lr @length\endcsname{##1}
-}{devil fork \@lr\space length=20mm,devil fork \@lr\space second=pingu at bronze!10!black}
-\def\pingu at draw@wi at devilfork#1{%
-    \pingu at setup@wing{devilfork}{#1}%
-\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-    \pingu at block{\csname pingu at color@devilfork#1 at second\endcsname} (\pingu at name-wing-#1)++(\@sidesign*-.2mm,-7mm) -- ++(0,\csname pingu at devilfork@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-devilfork-#1-top) -- ++(0,-\csname pingu at devilfork@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
-    \pingu at block{\@col} ([yshift=4mm]\pingu at name-devilfork-#1-top) to[out=240,in=90] ++(-.65mm,-4mm) to[out=180,in=-60] ++(-1mm,5.5mm) to[out=240,in=90] ++(-.65mm,-5.9mm) to[bend right] ++(4.4mm,0) to[out=90,in=-60] ++(-.65mm,5.9mm) to[out=240,in=0] ++(-1mm,-5.5mm) to[out=90,in=-60] cycle;
-\endscope
-}
-
-\pingu at create@extra{devilwings}{%
-    devilwings/.forward to    = /pingu/devil wings,
-    devil-wings/.forward to   = /pingu/devil wings,
-    devil wings/.code         = \pingu at set@extra{devilwings}{true}\pingu at color{devilwings}{#1},
-    devil wings/.default      = pingu at black,
-    devil wings b/.code       = \pingu at color{devilwings at b}{#1},
-    devilwings b/.forward to  = /pingu/devil wings b,
-    devil-wings b/.forward to = /pingu/devil wings b
-}{devil wings b=\pingu at color@devilwings}
-
-% taken over and adapted from the old penguins
-% lower wing based on https://tex.stackexchange.com/a/464828
-\def\@pingu at devilwings@lower at wing@code{(0,0.2) -- (0,1.4) -- (-2,1.4) .. controls (-4,0.8) .. (-4.3,0.2) .. controls (-4.48,0.08) .. (-4.5,-0.15) .. controls (-4.9,-0.5) and (-4.9,-0.7) .. (-4.7,-0.9) .. controls (-4.7,-1) .. (-4.6,-1.1) .. controls (-4.9,-1.8) .. (-4.2,-2) -- (-4,-2.4) .. controls (-4.1,-3) .. (-3.6,-3.1) -- (-3.25,-3.7) .. controls (-3.5,-4.5) .. (-4.1,-5.4) .. controls (-4.2,-5.9) and (-3.6,-5.9) .. (-3.5,-5.4) .. controls (-3.55,-5.1) and (-3.4,-4.8) .. (-3,-4.1) -- (-2.6,-4.1) .. controls (-2.35,-4.35) .. (-2,-4.2) .. controls (-1.75,-4.6) and (-1.25,-4.6) .. (-1.25,-3.90) .. controls (-0.9,-4) .. (-0.6,-2.8) -- (-0.3,-1) -- (0,0.2)}
-
-\def\pingu at draw@eb at devilwings{%
-\pgfonlayer{background}
-    \scope[scale=0.225,shift={(\pingu at name-head-back-con-right)}]
-       \pingu at block[thick,rounded corners=.75mm]{\pingu at color@devilwings} \@pingu at devilwings@lower at wing@code;
-       \pingu at block[thick]{\pingu at color@devilwings} (0,1) -- (0,2.2) [rounded corners=5mm] parabola[bend at end] (-6,6) -- (-5,1) -- (0,1);
-    \endscope
-    \scope[scale=0.225,shift={(\pingu at name-head-back-con-left)},xscale=-1]
-       \pingu at block[thick,rounded corners=0.75mm]{\pingu at color@devilwings at b} \@pingu at devilwings@lower at wing@code;
-       \pingu at block[thick]{\pingu at color@devilwings at b} (0,1) -- (0,2.2) [rounded corners=5mm] parabola[bend at end] (-6,6) -- (-5,1) -- (0,1);
-    \endscope
-\endpgfonlayer
-}

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-emotions.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-emotions.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-emotions.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,56 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at eyes@s{sad}{%
-    \path (\pingu at name-eye-back-left)++(\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-left);
-    \pingu at block{\pingu at color@eye at left} (\pingu at name-eye-left)++(15:.1225cm and .1275cm) arc (15:-245:.1225cm and .1275cm) to[out=-45,in=175] cycle;
-}{%
-    \path (\pingu at name-eye-back-right)++(-\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-right);
-    \pingu at block{\pingu at color@eye at right} (\pingu at name-eye-right)++(165:.1225cm and .1275cm) arc (165:425:.1225cm and .1275cm) to[out=225,in=5] cycle;
-}
-
-\pingu at eyes@s{angry}{%
-    \path (\pingu at name-eye-back-left)++(\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-left);
-    \pingu at block{\pingu at color@eye at left} (\pingu at name-eye-left) ellipse [x radius=.1225cm, y radius=.1275cm];
-    \pingu at block{\pingu at color@body at front} (\pingu at name-eye-left) ++(120:.1225cm and .1275cm) ellipse [x radius=1.5mm,y radius=.5mm];
-}{%
-    \path (\pingu at name-eye-back-right)++(-\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-right);
-    \pingu at block{\pingu at color@eye at right} (\pingu at name-eye-right) ellipse [x radius=.1225cm, y radius=.1275cm];
-    \pingu at block{\pingu at color@body at front} (\pingu at name-eye-right) ++(60:.1225cm and .1275cm) ellipse [x radius=1.5mm,y radius=.5mm];
-}
-
-\pingu at bill@s{angry}{%
-\pingu at block{\pingu at color@bill} (\pingu at name-bill)++(-.19cm,0)
-    to[out=-90,in=170] ++(1.9mm,-2.25mm) coordinate (\pingu at name-bill-bottom)
-    to[out=10,in=-90] ++(1.9mm,2.25mm)
-    to[bend right=.25cm] cycle;
-}
-
-\pingu at create@extra{blush}{%
-    blush/.code              = \pingu at set@extra{blush}{true}\pingu at color{blush}{#1},
-    blush/.default           = pingu at red,
-    blush second/.code       = \pingu at color{blush at second}{#1},
-    blush opacity/.code      = \def\pingu at x@blush at opacity{#1},
-}{blush opacity=.35,blush second=\pingu at color@blush}
-\def\pingu at draw@eb at blush{%
-    \pingu at block[/pingu/@glow,opacity=\pingu at x@blush at opacity]{\pingu at color@blush} ([yshift=-2.7mm,xshift=-1.85mm]\pingu at name-eye-right) ellipse [x radius=2.66mm,y radius=2.25mm];
-    \pingu at block[/pingu/@glow,opacity=\pingu at x@blush at opacity]{\pingu at color@blush at second} ([yshift=-2.7mm,xshift=1.85mm]\pingu at name-eye-left) ellipse [x radius=2.66mm,y radius=2.25mm];
-}
-
-\pingu at eyes@s{hearts}{%
-    \path (\pingu at name-eye-back-left)++(\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-left);
-    \pingu at block[rounded corners=0pt]{\pingu at color@eye at left} ([yshift=.3mm]\pingu at name-eye-left) arc(0:180:.065cm)
-    to[out=270,in=110] ++(.13cm,-.2cm) to[out=70,in=270] ++(.13cm,.2cm) arc (0:180:.065cm) -- cycle;
-}{%
-    \path (\pingu at name-eye-back-right)++(-\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-right);
-    \pingu at block{\pingu at color@eye at right} ([yshift=.3mm]\pingu at name-eye-right) arc(0:180:.065cm)
-    to[out=270,in=110] ++(.13cm,-.2cm) to[out=70,in=270] ++(.13cm,.2cm) arc (0:180:.065cm) -- cycle;
-}
-
-\pingu at eyes@s{critical}{%
-    \pingu at block{\pingu at color@eye at left} ([yshift=.75mm,xshift=\pingu at eye@shift]\pingu at name-eye-back-left) coordinate (\pingu at name-eye-left) ellipse [x radius=1.13mm, y radius=.145cm];
-    \pingu at draw[thick]{\pingu at color@eye at left} (\pingu at name-eye-left)++(45:1.35mm and 1.85mm) arc(45:135:1.35mm and 1.85mm);
-}{%
-    \pingu at block{\pingu at color@eye at right} ([yshift=.75mm,xshift=-\pingu at eye@shift]\pingu at name-eye-back-right) coordinate(\pingu at name-eye-right) ellipse [x radius=1.13mm, y radius=.145cm];
-    \pingu at draw[thick]{\pingu at color@eye at right} (\pingu at name-eye-right)++(45:1.35mm and 1.85mm) arc(45:135:1.35mm and 1.85mm);
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-flags.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-flags.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-flags.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,45 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@wing at extra{flag}{%
-    flag \@lr/.code         = {\pingu at set@extra{flag\@lr}{true}\pingu at color{flag\@lr}{##1}},
-    flag \@lr/.default      = pingu at purple,
-    flag \@lr\space pole/.code    = \pingu at color{flag\@lr @pole}{##1},
-    flag \@lr\space code/.code    = \expandafter\def\csname pingu at flag@\@lr @code\endcsname{##1},
-    flag \@lr\space bobble/.code  = {\pingu at color{flag\@lr @bobble}{##1}},
-    pride flag \@lr/.style  = {%
-        /pingu/flag \@lr\space code = {%
-            \noexpand\node[/pingu/@flag at first,/pingu/@flag={{rgb:yellow,1;red,5;magenta,2;black,1}}{1.9mm}] (a) at (0,0) {};
-            \noexpand\node[below,/pingu/@flag={{rgb:yellow,5;red,5;green,1;white,1}}{1.9mm}] (b) at (a.south) {};
-            \noexpand\node[below,/pingu/@flag={yellow}{1.9mm}] (c) at (b.south) {};
-            \noexpand\node[below,/pingu/@flag={{rgb:blue,1;cyan,1;green,4;black,2}}{1.9mm}] (d) at (c.south) {};
-            \noexpand\node[below,/pingu/@flag={{rgb:magenta,3;blue,5;cyan,4;black,3}}{1.9mm}] (e) at (d.south) {};
-            \noexpand\node[below,/pingu/@flag={{rgb:red,2;magenta,2;blue,5}}{1.9mm}] (f) at (e.south) {};
-        }, /pingu/flag \@lr, /pingu/flag \@lr\space pole={##1}%
-    },%
-    @flag/.style 2 args={tape bend height=.5mm,shape=tape,minimum height=##2, minimum width=15mm,outer sep=\z@,inner sep=\z@,fill=##1,draw=##1,rotate=\noexpand\@angle},
-    pride flag \@lr/.default = pingu at bronze,%
-    german flag \@lr/.style  = {%
-    /pingu/flag \@lr\space code = {%
-            \noexpand\node[/pingu/@flag at first,/pingu/@flag={black}{3.33mm}] (a) at (0,0) {};
-            \noexpand\node[below,/pingu/@flag={red}{3.33mm}] (b) at (a.south) {};
-            \noexpand\node[below,/pingu/@flag={yellow}{3.33mm}] (c) at (b.south) {};
-        }, /pingu/flag \@lr, /pingu/flag \@lr\space pole={##1}%
-    },%
-    german flag \@lr/.default = pingu at bronze%
-}{flag \@lr\space bobble=pingu at bronze, flag \@lr\space pole=pingu at bronze, flag \@lr\space code = {%
-    \noexpand\node[/pingu/@flag at first,/pingu/@flag={\noexpand\@col}{9.75mm}] (a) at (0,0) {};
-}}
-\def\pingu at draw@wi at flag#1{%
-    \pingu at setup@wing{flag}{#1}%
-\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-    % NOTE: not full foreground if placed under the wing
-    \pingu at layer{foreground}[shift={(\pingu at name-wing-#1)},shift={(\@sidesign*.15mm,17.5mm-3.5\p@)}]
-        \if at pingu@wing at item@side at left@\pgfqkeys{/pingu}{@flag at first/.style={below right}}\else\pgfqkeys{/pingu}{@flag at first/.style={below left}}\fi
-        \csname pingu at flag@#1 at code\endcsname
-        \pingu at block[thick]{\csname pingu at color@flag#1 at pole\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.15mm,3mm) -- ++(0,13.65mm) -| ++(\@sidesign*.6mm,-13.65mm) -- cycle;
-    \endpingu at layer
-    \pingu at block[thick]{\csname pingu at color@flag#1 at pole\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.15mm,-3mm) -- ++(0,20mm) arc(180:0:\@sidesign*.3mm and .375mm) -- ++(0,-20mm) arc(360:180:\@sidesign*.3mm and .375mm) -- cycle;
-    \pingu at block{\csname pingu at color@flag#1 at bobble\endcsname} (\pingu at name-wing-#1)++(\@sidesign*.15mm,17.5mm) circle [radius=2.15\p@];
-\endscope
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-formal.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-formal.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-formal.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,116 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{tie}{%
-    tie/.code         = \pingu at set@extra{tie}{true}\pingu at color{tie}{#1},
-    tie/.default      = pingu at green,
-    tie knot/.code    = \pingu at color{tie at knot}{#1},
-    tie length/.code  = \def\pingu at x@tie at length{#1},
-    tie offset/.code  = \def\pingu at x@tie at offset{#1},
-    tie width/.code   = \def\pingu at x@tie at width{#1},
-    tie pattern/.code = \def\pingu at x@tie at pattern{#1},
-    tie dots/.style   = {%
-        tie pattern={%
-            \pingu at block[postaction={pattern={Dots[angle=40,distance=1.5pt,radius=.35pt]},pattern color=#1}]{\pingu at color@tie} \pingupathxtie;
-            \pingu at block[postaction={pattern={Dots[angle=-30,distance=1.45pt,radius=.35pt@]},pattern color=#1}]{\pingu at color@tie at knot} \pingupathxtieknot;
-        }%
-    },
-    tie dots/.default={pingu at white}%
-}{% defaults
-    tie length=.625\pingu at side@h at half,  tie offset=.399cm,%
-    tie knot=\pingu at color@tie!92!black, tie width=.21cm,%
-    tie pattern={%
-        \pingu at block{\pingu at color@tie} \pingupathxtie;
-        \pingu at block{\pingu at color@tie at knot} \pingupathxtieknot;
-    }%
-}
-\def\pingupathxtie{[rounded corners=.15mm] (\pingu at name-tie-start)++(-.4mm,-.25mm) -- ++(-\pingu at x@tie at width/2, -\pingu at x@tie at length+.125cm) -- ++(\pingu at x@tie at width/2+.4mm,-.125cm) -- ++(\pingu at x@tie at width/2+.4mm,.125cm) -- +(-\pingu at x@tie at width/2, \pingu at x@tie at length-.125cm) -- cycle}
-\def\pingupathxtieknot{[rounded corners=.25mm] (\pingu at name-tie-start)++(-.095cm-.02*\pingu at x@tie at width,\z@) -- ++(.3mm,-.15cm-.01*\pingu at x@tie at width) -- ++(.13cm+.04*\pingu at x@tie at width,\z@) -- ++(.3mm,.15cm+.01*\pingu at x@tie at width) -- cycle}
-\def\pingu at draw@eb at tie{%
-    \path (\pingu at name-bill)++(0,-\pingu at x@tie at offset) coordinate(\pingu at name-tie-start);
-    \pingu at x@tie at pattern
-}
-
-\pingu at create@extra{bowtie}{%
-    bowtie/.forward to         = /pingu/bow tie,
-    bow-tie/.forward to        = /pingu/bow tie,
-    bow tie/.code              = \pingu at set@extra{bowtie}{true}\pingu at color{bowtie}{#1},
-    bow tie/.default           = pingu at blue,
-    bow tie b/.code            = \pingu at color{bowtie at b}{#1},
-    bowtie b/.forward to         = /pingu/bow tie b,
-    bow-tie b/.forward to        = /pingu/bow tie b,
-    bowtie offset/.forward to  = /pingu/bow tie offset,
-    bow-tie offset/.forward to = /pingu/bow tie offset,
-    bow tie offset/.code       = \def\pingu at x@bowtie at offset{#1},
-    bowtie knot/.forward to    = /pingu/bow tie knot,
-    bow-tie knot/.forward to   = /pingu/bow tie knot,
-    bow tie knot/.code         = \pingu at color{bowtie at knot}{#1},
-}{% defaults
-    bow tie knot=\pingu at color@bowtie!92!black,bow tie offset=.315cm,%
-    bow tie b=\pingu at color@bowtie%
-}
-
-\def\pingupathxbowtieknot{[rounded corners=.25mm] (\pingu at name-bow-tie-start)++(-.0625cm,-.35mm) to[bend right=10] ++(.125cm,0) -- ++(0,-.13cm) to[bend right=10] ++(-.125cm, 0) -- cycle}
-\def\pingupathxbowtieleft{[rounded corners=.25mm]  (\pingu at name-bow-tie-start)++(-.15mm,-.06cm) to[out=155,in=-5] ++(-.25cm,.065cm) to[bend right=15] ++(0,-.21cm) to[in=-155,out=5] ++(.25cm,.065cm) -- cycle}
-\def\pingupathxbowtieright{[rounded corners=.25mm]  (\pingu at name-bow-tie-start)++(.15mm,-.06cm) to[out=25,in=-175] ++(.25cm,.065cm) to[bend left=15] ++(0,-.21cm) to[in=-25,out=175] ++(-.25cm,.065cm) -- cycle}
-\def\pingu at draw@eb at bowtie{%
-    \path (\pingu at name-bill)++(0,-\pingu at x@bowtie at offset) coordinate(\pingu at name-bow-tie-start);
-    \pingu at block{\pingu at color@bowtie} \pingupathxbowtieleft;
-    \pingu at block{\pingu at color@bowtie at b} \pingupathxbowtieright;
-    \pingu at block{\pingu at color@bowtie at knot} \pingupathxbowtieknot;
-}
-
-\newif\if at pingu@x at pants@bands
-\pingu at create@extra{pants}{%
-    pants/.code    	               = \pingu at set@extra{pants}{true}\pingu at color{pants}{#1},
-    pants/.default                 = pingu at red,
-    pants bands/.is if             = @pingu at x@pants at bands,
-    pants button left/.code        = \pingu at color{pants at button@left}{#1},
-    pants button right/.code       = \pingu at color{pants at button@right}{#1},
-    pants buttons/.style           = {/pingu/pants button left={#1}, /pingu/pants button right={#1}},
-    pants button left shade/.code  = \pingu at color{pants at button@left at shade}{#1},
-    pants button right shade/.code = \pingu at color{pants at button@right at shade}{#1},
-    pants buttons shade/.style     = {/pingu/pants button left shade={#1}, /pingu/pants button right shade={#1}},
-    pants without buttons/.forward to=/pingu/pants no buttons,
-    pants no buttons/.style        = {/pingu/pants buttons=\@pingu at none, /pingu/pants buttons shade=\@pingu at none},
-    pants extra height/.code = \def\pingu at x@pants at extra@height{#1},
-}{pants extra height=1.5mm,pants buttons=pingu at black,pants button left shade=\pingu at color@pants at button@left!70!white,pants button right shade=\pingu at color@pants at button@right!70!white}
-
-\def\pingu at draw@eb at pants{%
-\pingu at block[rounded corners=\p@]{\pingu at color@pants} ([xshift=.85mm,yshift=\pingu at x@pants at extra@height]\pingu at name-waist-right) coordinate(@tmp) to[bend right=6] ([xshift=-.85mm,yshift=\pingu at x@pants at extra@height]\pingu at name-waist-left) coordinate(@tmpb) -- ++(0,-\pingu at x@pants at extra@height) arc(180:270:.85mm and 2.25mm) to[bend left=\pingu at bend] (\pingu at name-bottom-center-|\pingu at name-waist-left) to[bend left=15] ([yshift=-.15mm]\pingu at name-bottom-center) to[bend left=15] (\pingu at name-bottom-center-|\pingu at name-waist-right) to[bend left=6] ([yshift=-2.5mm]\pingu at name-waist-right) arc (-90:0:.85mm and 2.25mm) -- cycle;
-\if at pingu@x at pants@bands
-\pingu at layer{middle}[]
-% draw stripes
-\scope
-\clip \pingu at path@lowerpingu;
-\pingu at block{\pingu at color@pants} (@tmp)++(.55mm,-\pingu at one) to[bend right=3] ([yshift=1.65mm]\pingu at name-wings-side-right) -- ++(-.25mm,-.25mm) to[bend left=3] ([yshift=-\pingu at one]@tmp) -- cycle;
-\pingu at block{\pingu at color@pants} (@tmpb)++(-.55mm,-\pingu at one) to[bend left=3] ([yshift=1.65mm]\pingu at name-wings-side-left) -- ++(.25mm,-.25mm) to[bend right=3] ([yshift=-\pingu at one]@tmpb) -- cycle;
-\endscope
-\fi
-\pingu at block{\pingu at color@pants at button@right}(@tmp)++(.25mm,-.25mm)circle[radius=.7mm];
-\pingu at block{\pingu at color@pants at button@left}(@tmpb)++(-.25mm,-.25mm)circle[radius=.7mm];
-\pingu at block[even odd rule]{\pingu at color@pants at button@right at shade}(@tmp)++(.25mm,-.25mm)circle[radius=.7mm] circle[radius=.615mm];
-\pingu at block[even odd rule]{\pingu at color@pants at button@left at shade}(@tmpb)++(-.25mm,-.25mm)circle[radius=.7mm] circle[radius=.615mm];
-\@for\i:={0,90,180,270}\do{
-    \pingu at block{\pingu at color@pants at button@right at shade} (@tmp)++(.25mm,-.25mm)++(\i:.
-    35mm) circle[radius=.1mm];
-    \pingu at block{\pingu at color@pants at button@left at shade} (@tmpb)++(-.25mm,-.25mm)++(\i:.35mm) circle[radius=.1mm];
-}%
-\if at pingu@x at pants@bands \endpingu at layer \fi
-}
-
-
-\pingu at create@extra{belt}{%
-    belt/.code        = \pingu at set@extra{belt}{true}\pingu at color{belt}{#1},
-    belt/.default     = pingu at bronze!80!black,
-    belt knot color/.code  = \pingu at color{belt at knot}{#1}
-}{% defaults
-    belt knot color  = pingu at silver
-}
-
-\def\pingu at draw@eb at belt@wh{1.25mm}
-\def\pingu at draw@eb at belt{%
-    \path ([yshift=-1.66mm/2]\pingu at name-waist-left) -- ([yshift=-1.66mm/2]\pingu at name-waist-right) coordinate[pos=.5] (\pingu at name @belt at center);
-    \pingu at block[rounded corners=.5pt]{\pingu at color@belt} (\pingu at name-waist-left) coordinate (@) to[bend left=5] (\pingu at name-waist-right) -- ++(0,-1.66mm) to[bend right=5] ([yshift=-1.66mm]@) -- cycle;
-    \pingu at block[rounded corners=1.5pt]{\pingu at color@belt at knot} ([xshift=-1mm,yshift=-.7mm-1.66mm/2]\pingu at name @belt at center) rectangle ++(2mm,2mm);
-}

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-fun.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-fun.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-fun.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,309 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{cakehat}{%
-  cake-hat/.code          = \pingu at set@extra{cakehat}{true}\pingu at color{cakehat}{#1},
-  cake-hat/.default       = pingu at white!92!\pingu at color@cakehat at top,
-  cake-hat top/.code      = \pingu at color{cakehat at top}{#1},
-  cake-hat shade/.code    = \pingu at color{cakehat at shade}{#1},
-  cake-hat candle/.code   = \pingu at color{cakehat at candle}{#1},
-  cake-hat candle fire/.code   = \pingu at color{cakehat at candle@fire}{#1},
-  cake-hat candle fire 2/.code   = \pingu at color{cakehat at candle@fire at b}{#1},
-  cake-hat candle fire 3/.code   = \pingu at color{cakehat at candle@fire at c}{#1},
-  cake-hat candle wick/.code   = \pingu at color{cakehat at candle@wick}{#1},
-  cake-hat candle shade/.code   = \pingu at color{cakehat at candle@shade}{#1},
-  cake-hat candle back/.code = \pingu at color{cakehat at candle@back}{#1},
-  cake-hat outline/.code  = \pingu at color{cakehat at outline}{#1},
-  cake-hat outline width/.code  = \def\pingu at x@cakehat at outline@w{#1},
-  cake-hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@cakehat at angle{#1}\def\pingu at x@cakehat at xshift{#2}\def\pingu at x@cakehat at yshift{#3}\def\pingu at x@cakehat at scale{#4}}
-}{cake-hat position={-9:(1mm,0mm)1},cake-hat outline=pingu at black!80!\pingu at color@cakehat,cake-hat outline width=.25pt,cake-hat top=pingu at purple,cake-hat candle=pingu at purple!60!pingu at black,cake-hat candle back=\pingu at color@cakehat at candle!85!black,cake-hat candle wick=pingu at black,cake-hat candle fire=pingu at red,cake-hat candle fire 2=\pingu at color@cakehat at candle@fire!50!yellow,cake-hat candle fire 3=\pingu at color@cakehat at candle@fire at b!50!white,cake-hat shade=gray,cake-hat candle shade=gray!80!\pingu at color@cakehat at candle@back}
-
-\def\pingu at p@cake at outline{(-6.25mm,-.25cm) to[bend left=2] (\pingu at name-cake-tl) arc (180:0:1.375cm/2+.01mm and 1.41mm) to[bend left=2] ++(0,-3.125mm*.97) to[bend left=20] (-6mm,-.26cm) -- cycle}
-\def\pingu at draw@ea at cakehat{%
-\scope[rotate around={\pingu at x@cakehat at angle:(\pingu at name-head-top)},%
-shift={(\pingu at name-head-top)},
-shift={(\pingu at x@cakehat at xshift,\pingu at x@cakehat at yshift)},
-scale=\pingu at x@cakehat at scale]
-  \pingu at block{\pingu at color@cakehat} [rounded corners=.2mm](-6.25mm,-.25cm) to[bend left=2] coordinate[pos=.97] (\pingu at name-cake-tl) ++(0,3.125mm) to[bend right=20]
-    ++(1.375cm,0) to[bend left=2] coordinate[pos=.03] (\pingu at name-cake-tr) ++(0,-3.125mm) to[bend left=20] (-6mm,-.26cm) -- cycle;
-  \pingu at block[fill opacity=.1]{\pingu at color@cakehat at shade} [rounded corners=.2mm](-6.25mm,-.25cm) to[bend right=20]
-    ++(1.375cm,0) to[bend right=2] ++(0,3.125mm) [sharp corners] to[bend left=20] (-6.25mm,-.225cm) [rounded corners=.2mm] -- cycle;
-  \path (\pingu at name-cake-tl) -- (\pingu at name-cake-tr) coordinate[pos=.5] (\pingu at name-cake-tc);
-  % cake side
-  \scope
-  \clip\pingu at p@cake at outline;
-  \path (\pingu at name-cake-tl) arc (180:360:1.375cm/2+.01mm and 1.41mm) foreach[count=\i] \a in {0,.19,.295,.375,.485,.625,.72,.85,1} {coordinate[pos=\a] (\pingu at name-cake-\i)};
-  \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-1) ellipse [x radius=.255mm,y radius=2mm];
-  \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-9) ellipse [x radius=.265mm,y radius=1.45mm];
-  \foreach \i in {2,...,9} {
-    \pgfmathsetmacro\@tmprand{rand}
-    \pingu at draw[opacity=.5]{gray} (\pingu at name-cake-\i)++(-.02mm,0) to[bend left=1] ++(+.145mm,{-1.075mm-(\@tmprand+.15)*.5125mm}) arc(370:300:.145mm);
-    \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\i)++(0,.1mm) -- ++(-.125mm,0) to[bend left=1] ++(0,{-1.2mm-(\@tmprand+.15)*.5125mm}) arc(170:370:.145mm) to[bend right=1] cycle;
-  }
-  \foreach \i in {2,...,9} {
-      \ifnum\i=2\relax
-        \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\the\numexpr\i-1\relax)++(-.05mm,-.5mm) to[bend left=8] ([xshift=-.05mm,yshift=-.25mm]\pingu at name-cake-\i) -- ++(0,.33mm) to[bend right=30] (\pingu at name-cake-\the\numexpr\i-1\relax);
-      \else\ifnum\i=9\relax
-        \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\the\numexpr\i-1\relax)++(-.05mm,-.25mm) to[bend left=8] ([xshift=-.05mm,yshift=-.5mm]\pingu at name-cake-\i) -- ++(0,.33mm) to[bend right=30] (\pingu at name-cake-\the\numexpr\i-1\relax);
-      \else
-      \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\the\numexpr\i-1\relax)++(-.05mm,-.25mm) to[bend left=9.5+2*rand] ([xshift=-.05mm,yshift=-.25mm]\pingu at name-cake-\i) -- ++(0,.33mm) to[bend right=30] (\pingu at name-cake-\the\numexpr\i-1\relax);
-      \fi\fi
-  }
-  \endscope
-  \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-tc) ellipse [x radius=1.375cm/2+.01mm, y radius=1.41mm];
-  % outline
-  \pingu at draw[line width=\pingu at x@cakehat at outline@w,rounded corners=.075mm]{\pingu at color@cakehat at outline} \pingu at p@cake at outline;
-% % 3d sides
-%   \pingu at block[rounded corners=.04mm]{\pingu at color@cakehat at top} ([xshift=.1mm,yshift=.125mm]\pingu at name-cake-tl) to[out=246,in=97] ++(-.11mm,-2.125mm) -- ++(.04mm,0) to[bend right=12] (\pingu at name-cake-ttl) -- cycle;
-%   \pingu at block[rounded corners=.09mm]{green} ([xshift=-.1mm]\pingu at name-cake-ttr) to[out=294,in=83] ++(.125mm,-2.125mm) to[bend left=12] ([xshift=-.11mm,yshift=.125mm]\pingu at name-cake-tr) -- cycle;
-  % candle
-  \pingu at block{\pingu at color@cakehat at candle@back} (\pingu at name-cake-tc)++(.8mm,2.66mm) to[bend right=7] ++(-1.1mm,-.1mm) to[bend right=30]++(1.1mm,0) -- cycle;
-  % wick
-  \pingu at draw[very thin]{\pingu at color@cakehat at candle@wick} (\pingu at name-cake-tc)++(.25mm,2mm) to[out=75,in=-95] coordinate[pos=.8] (\pingu at name-wick-1) ++(0,1mm) coordinate(\pingu at name-wick-top);
-  \pingu at block{\pingu at color@cakehat at candle@fire} (\pingu at name-wick-1)++(-.045mm,0) to[out=115,in=240] ++(0,1.5mm) to[out=300,in=65] ([xshift=.045mm]\pingu at name-wick-1) -- cycle;
-  \pingu at block{\pingu at color@cakehat at candle@fire at b} (\pingu at name-wick-1)++(-.045mm,0) to[out=105,in=240] ++(0,1.3mm) to[out=300,in=75] ([xshift=.045mm]\pingu at name-wick-1) -- cycle;
-  \pingu at block{\pingu at color@cakehat at candle@fire at c} (\pingu at name-wick-1)++(-.035mm,0) to[out=95,in=250] ++(0,1.1mm) to[out=290,in=85] ([xshift=.035mm]\pingu at name-wick-1) -- cycle;
-  % front
-  \pingu at block{\pingu at color@cakehat at candle} (\pingu at name-cake-tc)++(.25mm,0) ++(.55mm,0) to[bend left=0.5] ++(0,2.66mm) to[bend left=20] ++(-1.1mm,-.1mm) to[bend right=0.5] ++(0,-2.66mm) to[bend right=20] cycle;
-  \pingu at block[fill opacity=.125]{\pingu at color@cakehat at candle@shade} (\pingu at name-cake-tc)++(-.3mm,-.1mm) to[bend right=20] ++(1.1mm,0) to[bend left=.5] ++(0,2.66mm) to[bend left=15] ++(-1.1mm,-2.5mm) -- cycle;
-  \pingu at block[fill opacity=.225]{\pingu at color@cakehat at candle@shade} (\pingu at name-cake-tc)++(-.3mm,-.1mm) to[bend left=2] ++(1.1mm,-1.1mm) to[bend left=5] ++(1.1mm,0) to[bend left=2] ++(-1.1mm,1.2mm) to[bend left =15] cycle;
-  \pingu at block[fill opacity=.225]{\pingu at color@cakehat at candle@shade} (\pingu at name-cake-tc)++(1.35mm,-1.25mm) circle [radius=.1mm];
-\endscope
-}
-\pingu at create@extra{pumpkinhat}{%
-  pumpkin-hat/.code           = \pingu at set@extra{pumpkinhat}{true}\pingu at color{pumpkinhat}{#1},
-  pumpkin-hat/.default        = pingu at bronze!97!white,
-  pumpkin-hat stalk/.code     = \pingu at color{pumpkinhat at stalk}{#1},
-  pumpkin-hat stalk top/.code = \pingu at color{pumpkinhat at stalk@top}{#1},
-  pumpkin-hat stripe a/.code  = \pingu at color{pumpkinhat at stripe@a}{#1},
-  pumpkin-hat stripe b/.code  = \pingu at color{pumpkinhat at stripe@b}{#1},
-  pumpkin-hat stripe c/.code  = \pingu at color{pumpkinhat at stripe@c}{#1},
-  pumpkin-hat outline/.code   = \pingu at color{pumpkinhat at outline}{#1},
-  pumpkin-hat outline width/.code = \def\pingu at x@pumpkinhat at outline@w{#1},
-  pumpkin-hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@pumpkinhat at angle{#1}\def\pingu at x@pumpkinhat at xshift{#2}\def\pingu at x@pumpkinhat at yshift{#3}\def\pingu at x@pumpkinhat at scale{#4}}
-}{pumpkin-hat position={-9:(1.65mm,.25mm)1.05},pumpkin-hat stalk=pingu at green!95!\pingu at color@pumpkinhat!45!pingu at black,pumpkin-hat stalk top=\pingu at color@pumpkinhat at stalk!95!pingu at black,pumpkin-hat stripe a=pingu at black,pumpkin-hat stripe b=\pingu at color@pumpkinhat at stripe@a,pumpkin-hat stripe c=\pingu at color@pumpkinhat at stripe@b,pumpkin-hat outline=pingu at black,pumpkin-hat outline width=.7pt}
-
-\def\pingu at pumpkinhat@outerpath{(0,.125cm)++(-60:6.75mm and 5.5mm) arc(-60:86: 6.75mm and 5.5mm) to[bend left=3] ++(-1.75mm,0) arc(95:242:6.75mm and 5.5mm) to[bend left=5] cycle;}
-\def\pingu at draw@ea at pumpkinhat{%
-\scope[rotate around={\pingu at x@pumpkinhat at angle:(\pingu at name-head-top)},%
-shift={(\pingu at name-head-top)},
-shift={(\pingu at x@pumpkinhat at xshift,\pingu at x@pumpkinhat at yshift)},
-scale=\pingu at x@pumpkinhat at scale]
-  % give it a small cut
-  \pingu at block{\pingu at color@pumpkinhat} (0,.125cm)++(-60:6.75mm and 5.5mm) coordinate (@pkll) arc(-60:86: 6.75mm and 5.5mm) coordinate (@pkl) to[bend left=3] coordinate[pos=.5] (@pkuc) ++(-1.75mm,0) coordinate (@pkr) arc(95:242:6.75mm and 5.5mm) coordinate (@pklr) to[bend left=5] coordinate[pos=.5] (@pklc) cycle;
-  \pingu at draw[line join=round,line width=\pingu at x@pumpkinhat at outline@w]{\pingu at color@pumpkinhat at outline} \pingu at pumpkinhat@outerpath;
-\scope
-\clip (0,.125cm)++(-60:6.75mm and 5.5mm) coordinate (@pkll) arc(-60:86: 6.75mm and 5.5mm) coordinate (@pkl) to[bend left=3] ++(-1.75mm,0) coordinate (@pkr) arc(95:242:6.75mm and 5.5mm) coordinate (@pklr) to[bend left=5] cycle;
-  \pingu at draw[line cap=round,opacity=.3]{\pingu at color@pumpkinhat at stripe@a} (@pklr) to[bend left=55] (@pkr);
-  \pingu at draw[line cap=round,opacity=.3]{\pingu at color@pumpkinhat at stripe@c} (@pkll) to[bend right=55] (@pkl);
-  \pingu at draw[line cap=round,opacity=.3]{\pingu at color@pumpkinhat at stripe@b} (@pklc) to[bend right=5] (@pkuc);
-\endscope
-\pingu at block{\pingu at color@pumpkinhat at stalk} ([yshift=-.5*\pingu at x@pumpkinhat at outline@w]@pkl) to[bend left=3] ([yshift=-.5*\pingu at x@pumpkinhat at outline@w]@pkr) to[bend right=8] ++(.85mm,2mm) -- ++(.65mm,0) coordinate[pos=.5] (@pkc) to[bend right=3] cycle;
-\pingu at block{\pingu at color@pumpkinhat at stalk@top} (@pkc) ellipse[x radius=.65mm/2, y radius=.085mm];
-\endscope
-}
-
-\pingu at create@wing at extra{lollipop}{%
-  lollipop \@lr/.code         = {\pingu at set@extra{lollipop\@lr}{true}\pingu at color{lollipop\@lr}{##1}},
-  lollipop \@lr/.default      = pingu at green,
-  lollipop \@lr\space handle/.code = \pingu at color{lollipop\@lr @handle}{##1},%
-  lollipop \@lr\space second/.code = \pingu at color{lollipop\@lr @second}{##1}%
-}{lollipop \@lr\space handle=pingu at bronze,lollipop \@lr\space second={\csname pingu at color@lollipop\@lr\endcsname!86!white}}
-
-% #1 wing
-\def\pingu at draw@wi at lollipop#1{%
-    \pingu at setup@wing{lollipop}{#1}%
-    \pingu at draw[thick,rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@lollipop#1 at handle\endcsname}(\pingu at name-wing-#1)++(0,4.75mm) -- ++(0,-6.25mm);
-    \pingu at block[thick,rotate around={\@angle:(\pingu at name-wing-#1)}]{\@col}(\pingu at name-wing-#1)++(0,4.75mm) coordinate (\pingu at name-lollipop-#1-top) circle[radius=1.4mm];
-    \pingu at block[thick,rotate around={\@angle-1:(\pingu at name-lollipop-#1-top)}]{\csname pingu at color@lollipop#1 at second\endcsname} (\pingu at name-lollipop-#1-top) ellipse [x radius=1.57mm, y radius=1.5\p@];
-    \pingu at block[thick,rotate around={\@angle-1:(\pingu at name-lollipop-#1-top)}]{\@col} (\pingu at name-lollipop-#1-top)++(0,.5\p@) ellipse [x radius=1.4mm, y radius=\p@];
-}
-
-\pingu at create@extra{heart}{%
-  heart/.code       = {\pingu at set@extra{heart}{true}\pingu at color{heart}{#1}},
-  heart/.default    = lightgray
-}{}
-
-\def\pingu at draw@eb at heart{%
-    \pingu at block[sharp corners]{\pingu at color@heart}
-    ([yshift=1mm]\pingu at name-belly-center) arc(0:180:.13cm)
-    to[out=270,in=110] ++(.26cm,-.36cm) to[out=70,in=270] ++(.26cm,.36cm) arc (0:180:.13cm) -- cycle;
-}
-
-\pingu at create@extra{vampireteeth}{%
-  vampire teeth/.code       = {\pingu at set@extra{vampireteeth}{true}\pingu at color{vampireteeth}{#1}},
-  vampire teeth/.default    = pingu at yellow!10!pingu at black!70!lightgray
-}{}
-
-\def\pingu at draw@eb at vampireteeth{%
-    \pingu at block{\pingu at color@vampireteeth} (\pingu at name-bill) ++(-1.35mm,-2.5mm)
-    arc(180:0:1.35mm and 2.5mm)
-    arc(0:180:1.35mm and .95mm);
-}
-
-\pingu at create@wing at extra{broom}{%
-    broom \@lr/.code                    = {\pingu at set@extra{broom\@lr}{true}\pingu at color{broom\@lr}{##1}},
-    broom \@lr/.default                 = pingu at bronze,
-    broom \@lr\space length/.code       = \expandafter\def\csname pingu at broom@\@lr @length\endcsname{##1},
-    broom \@lr\space shift/.code        = \expandafter\def\csname pingu at broom@\@lr @shift\endcsname{##1},
-    broom \@lr\space band/.code          = \pingu at color{broom@\@lr @band}{##1},
-    broom \@lr\space bristles a/.code   = \pingu at color{broom@\@lr @bristles at a}{##1},
-    broom \@lr\space bristles b/.code   = \pingu at color{broom@\@lr @bristles at b}{##1},
-    broom \@lr\space bristles c/.code   = \pingu at color{broom@\@lr @bristles at c}{##1},
-}{broom \@lr\space length=22mm,broom \@lr\space shift=8mm, broom \@lr\space band=pingu at red!80!pingu at black!80!pingu at bronze, broom \@lr\space bristles a=pingu at bronze!16!pingu at yellow!41!pingu at white!80!brown!95!\csname pingu at color@broom\@lr\endcsname, broom \@lr\space bristles b=\csname pingu at color@broom@\@lr @bristles at a\endcsname!83!pingu at white, broom \@lr\space bristles c=\csname pingu at color@broom@\@lr @bristles at b\endcsname!83!pingu at white}
-\def\pingu at draw@wi at broom#1{%
-    \pingu at setup@wing{broom}{#1}%
-    % TODO: mirror on other wing?
-\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-    \pingu at block{\csname pingu at color@broom#1\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.2mm,-\csname pingu at broom@#1 at shift\endcsname) -- ++(0,\csname pingu at broom@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-broom-#1-top) -- ++(0,-\csname pingu at broom@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
-    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@a\endcsname} (\pingu at name-broom-#1-top)++(-1mm,-2mm) to[out=115,in=240] ++(1mm,10.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]\pingu at name-broom-#1-top) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]\pingu at name-broom-#1-top) -- cycle;
-    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@a\endcsname} (\pingu at name-broom-#1-top)++(-1mm,-2mm) to[out=115,in=240] ++(1.66mm,9.75mm) to[out=300,in=65] coordinate[pos=.81] (@l) coordinate[pos=.79] (@l2) ([xshift=.95mm,yshift=-2mm]\pingu at name-broom-#1-top) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]\pingu at name-broom-#1-top) -- cycle;
-    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@a\endcsname} (\pingu at name-broom-#1-top)++(-1mm,-2mm) to[out=115,in=240] coordinate[pos=.17] (@r) coordinate[pos=.19] (@r2)  ++(.25mm,10.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]\pingu at name-broom-#1-top) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]\pingu at name-broom-#1-top) -- cycle;
-    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@b\endcsname} (\pingu at name-broom-#1-top)++(-.75mm,-1.75mm) to[out=115,in=240] ++(1.35mm,9.25mm) to[out=300,in=65] ([xshift=.75mm,yshift=-1.75mm]\pingu at name-broom-#1-top) -- cycle;
-    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@b\endcsname} (\pingu at name-broom-#1-top)++(-.75mm,-1.75mm) to[out=115,in=240] ++(0mm,9.65mm) to[out=300,in=65] ([xshift=.75mm,yshift=-1.75mm]\pingu at name-broom-#1-top) -- cycle;
-    \pingu at block{\csname pingu at color@broom@#1 at bristles@c\endcsname} (\pingu at name-broom-#1-top)++(-.5mm,-1.5mm) to[out=115,in=240] ++(.5mm,9.5mm) to[out=300,in=65] ([xshift=.5mm,yshift=-1.5mm]\pingu at name-broom-#1-top) -- cycle;
-    % TODO: broom cap color etc
-    \pingu at block{\csname pingu at color@broom@#1 at band\endcsname} (@r) to[bend right=10] (@l) -- (@l2) to[bend left=10] (@r2);
-\endscope
-}
-
-\tikzset{pingu at clip even odd rule/.code={\pgfseteorule}, % Credit to Andrew Stacey
-pingu at invclip/.style={
-    clip,insert path=
-        [pingu at clip even odd rule]{
-            [reset cm](-\maxdimen,-\maxdimen)rectangle(\maxdimen,\maxdimen)
-        }
-}}
-\pingu at create@extra{jackolantern}{%
-  jack o lantern/.code           = \pingu at set@extra{jackolantern}{true}\pingu at color{jackolantern}{#1},
-  jack o lantern/.default        = pingu at bronze!97!pingu at black,
-  jack o lantern helmet/.style   = {jack o lantern=#1,jack o lantern background=none,jack o lantern position={-2.15:(2.05mm,-11.35mm){1.5}},jack o lantern back stripe a=\@pingu at none, jack o lantern back stripe b=\@pingu at none,jack o lantern back stripe c=\@pingu at none,jack o lantern height=6.25mm,jack o lantern width=6.1mm,hair=\@pingu at none},
-  jack o lantern helmet/.default = pingu at bronze!97!pingu at black,
-  jack o lantern stalk/.code     = \pingu at color{jackolantern at stalk}{#1},
-  jack o lantern stalk top/.code = \pingu at color{jackolantern at stalk@top}{#1},
-  jack o lantern background/.code= \pingu at color{jackolantern at background}{#1},
-  jack o lantern stripe a/.code  = \pingu at color{jackolantern at stripe@a}{#1},
-  jack o lantern stripe b/.code  = \pingu at color{jackolantern at stripe@b}{#1},
-  jack o lantern stripe c/.code  = \pingu at color{jackolantern at stripe@c}{#1},
-  jack o lantern back stripe a/.code  = \pingu at color{jackolantern at backstripe@a}{#1},
-  jack o lantern back stripe b/.code  = \pingu at color{jackolantern at backstripe@b}{#1},
-  jack o lantern back stripe c/.code  = \pingu at color{jackolantern at backstripe@c}{#1},
-  jack o lantern outline/.code   = \pingu at color{jackolantern at outline}{#1},
-  jack o lantern outline width/.code = \def\pingu at x@jackolantern at outline@w{#1},
-  jack o lantern height/.code = \def\pingu at x@jackolantern at height{#1},
-  jack o lantern width/.code = \def\pingu at x@jackolantern at width{#1},
-  jack o lantern position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@jackolantern at angle{#1}\def\pingu at x@jackolantern at xshift{#2}\def\pingu at x@jackolantern at yshift{#3}\def\pingu at x@jackolantern at scale{#4}}
-}{jack o lantern position={-9:(3.15mm,.95mm){1.3}},jack o lantern stripe a=pingu at black,jack o lantern stripe b=\pingu at color@jackolantern at stripe@a,jack o lantern stripe c=\pingu at color@jackolantern at stripe@b,jack o lantern back stripe a=pingu at black,jack o lantern back stripe b=\pingu at color@jackolantern at stripe@a,jack o lantern back stripe c=\pingu at color@jackolantern at stripe@b,jack o lantern outline=pingu at black,jack o lantern outline width=.7pt,jack o lantern stalk=pingu at green!95!\pingu at color@jackolantern!45!pingu at black,jack o lantern stalk top=\pingu at color@jackolantern at stalk!95!pingu at black,jack o lantern background=\pingu at color@jackolantern!85!pingu at black,jack o lantern height=5.5mm,jack o lantern width=5.75mm}
-
-\def\pingu at jackolantern@outerpath{(0,.125cm)++(-60:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) arc(-60:86:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend right=3] ++(-3.75mm,0) arc(95:242:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend left=5] cycle;}
-\def\pingu at x@jackolantern{(-5.15mm,.6mm) to[bend right] ++(1.5mm,-.5mm) -- ++(.33mm,.33mm) to[bend right=10] ++(1.5mm,0) -- ++(.66mm,-.75mm) -- ++(.66mm,.75mm) to[bend right=10] ++(1.5mm,0) -- ++(.33mm,-.33mm) to[bend right] ++(1.5mm,.5mm) to[bend left] ++(-1.5mm,-2.15mm) to[bend left=10] ++(-.33mm,.33mm) to[bend left=10] ++(-1.5mm,0) -- ++(-.66mm,-.5mm) -- ++(-.66mm,.5mm) to[bend left=10] ++(-1.5mm,0) -- ++(-.33mm,-.33mm) to[bend left] cycle}
-
-\def\pingu at x@jackolantern at eye@left{(0.9mm,2mm) -- ++(2mm,-.15mm) to[bend right=40] ++(-.5mm,2mm) -- cycle}
-\def\pingu at x@jackolantern at eye@right{(-3mm,2mm) -- ++(-2mm,-.15mm) to[bend left=40] ++(.5mm,2mm) -- cycle}
-\def\pingu at x@jackolantern at nose{(0.965mm*0.5-3.225mm*0.5,1mm) -- ++(1mm,1.2mm) to[bend right=10] ++(-2mm,0) -- cycle}
-
-\def\pingu at draw@ea at jackolantern{%
-\scope[rotate around={\pingu at x@jackolantern at angle:(\pingu at name-head-top)},%
-shift={(\pingu at name-head-top)},
-shift={(\pingu at x@jackolantern at xshift,\pingu at x@jackolantern at yshift)},
-scale=\pingu at x@jackolantern at scale]
-\scope
-\pgfinterruptboundingbox
-\path[pingu at invclip]\pingu at x@jackolantern \pingu at x@jackolantern at eye@left \pingu at x@jackolantern at eye@right \pingu at x@jackolantern at nose;
-  % give it a small cut
-  \pingu at block{\pingu at color@jackolantern} (0,.125cm)++(-60:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) coordinate (@pkll) arc(-60:86: {\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) coordinate (@pkl) to[bend right=3] coordinate[pos=.5] (@pkuc) coordinate[pos=.225] (@pksl) coordinate[pos=.775] (@pksr) ++(-3.75mm,0) coordinate (@pkr) arc(95:242:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) coordinate (@pklr) to[bend left=5] coordinate[pos=.5] (@pklc) cycle;
-  \pingu at draw[line join=round,line width=\pingu at x@jackolantern at outline@w]{\pingu at color@jackolantern at outline} \pingu at jackolantern@outerpath;
-\endpgfinterruptboundingbox
-\scope
-\clip (0,.125cm)++(-60:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) arc(-60:86:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend right=3] ++(-3.75mm,0) arc(95:242:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend left=5] cycle;
-  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at stripe@a} (@pklr) to[bend left=42] (@pkr);
-  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at stripe@c} (@pkll) to[bend right=54] (@pkl);
-  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at stripe@b} (@pklc) to[bend right=6] (@pkuc);
-\endscope
-\endscope
-  \pingu at draw[fill=\pingu at color@jackolantern at background,rounded corners=.25pt]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern at eye@left;
-  \pingu at draw[fill=\pingu at color@jackolantern at background,rounded corners=.25pt]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern at eye@right;
-
-  \pingu at draw[fill=\pingu at color@jackolantern at background,rounded corners=.25pt]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern at nose;
-
-  \pingu at draw[fill=\pingu at color@jackolantern at background]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern;
-  \scope
-  \clip\pingu at x@jackolantern \pingu at x@jackolantern at eye@left \pingu at x@jackolantern at eye@right \pingu at x@jackolantern at nose;
-  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at backstripe@a} ([xshift=1.6mm]@pklr) to[bend left=18] (@pkr);
-  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at backstripe@c} ([xshift=-1.6mm]@pkll) to[bend right=22] (@pkl);
-  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at backstripe@b} (@pklc) to[bend right=1] (@pkuc);
-  \endscope
-  \pingu at block{\pingu at color@jackolantern at stalk} ([yshift=-.5*\pingu at x@jackolantern at outline@w]@pksl) to[bend left=3] ([yshift=-.5*\pingu at x@jackolantern at outline@w]@pksr) to[bend right=8] ++(.85mm,2mm) -- ++(.65mm,0) coordinate[pos=.5] (@pkc) to[bend right=3] cycle;
-\pingu at block{\pingu at color@jackolantern at stalk@top} (@pkc) ellipse[x radius=.65mm/2, y radius=.085mm];
-\endscope
-}
-
-\pingu at create@wing at extra{hammer}{%
-    hammer \@lr/.code              = {\pingu at set@extra{hammer\@lr}{true}\pingu at color{hammer\@lr}{##1}},
-    hammer \@lr/.default           = pingu at silver,
-    hammer \@lr\space handle length/.code = \expandafter\def\csname pingu at hammer@\@lr @length\endcsname{##1},
-    hammer \@lr\space handle shift/.code  = \expandafter\def\csname pingu at hammer@\@lr @shift\endcsname{##1},
-    hammer \@lr\space width/.code  = \expandafter\def\csname pingu at hammer@\@lr @width\endcsname{##1},
-    hammer \@lr\space height/.code  = \expandafter\def\csname pingu at hammer@\@lr @height\endcsname{##1},
-    hammer \@lr\space xshift/.code  = \expandafter\def\csname pingu at hammer@\@lr @xshift\endcsname{##1},
-    hammer \@lr\space yshift/.code  = \expandafter\def\csname pingu at hammer@\@lr @yshift\endcsname{##1},
-    hammer \@lr\space handle/.code = \pingu at color{hammer@\@lr @handle}{##1},%
-    hammer \@lr\space with knob/.style  = {hammer \@lr=##1, hammer \@lr\space handle length=\dimexpr9mm+\csname pingu at hammer@\@lr @height\endcsname+.5mm,hammer \@lr\space yshift=\dimexpr-.5mm-\csname pingu at hammer@\@lr @height\endcsname},
-    hammer \@lr\space with knob/.default = pingu at silver
-}{hammer \@lr\space handle length=9mm, hammer \@lr\space handle=pingu at bronze, hammer \@lr\space handle shift=-4mm, hammer \@lr\space width=7mm,hammer \@lr\space height=3.5mm, hammer \@lr\space xshift=-0.5*\csname pingu at hammer@\@lr @width\endcsname,hammer \@lr\space yshift=-1mm}
-\def\pingu at draw@wi at hammer#1{%
-    \pingu at setup@wing{hammer}{#1}%
-\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-% \csname pingu at color@hammer#1\endcsname
-    \pingu at block{\csname pingu at color@hammer@#1 at handle\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.2mm,\csname pingu at hammer@#1 at shift\endcsname) -- ++(0,\csname pingu at hammer@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-hammer-#1-top) -- ++(0,-\csname pingu at hammer@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
-    \pingu at block[rounded corners=2pt]{\csname pingu at color@hammer#1\endcsname} (\pingu at name-hammer-#1-top)++(\csname pingu at hammer@#1 at xshift\endcsname,\csname pingu at hammer@#1 at yshift\endcsname) rectangle ++(\csname pingu at hammer@#1 at width\endcsname,\csname pingu at hammer@#1 at height\endcsname);
-\endscope
-}
-
-\pingu at create@wing at extra{plank}{%
-    plank \@lr/.code              = {\pingu at set@extra{plank\@lr}{true}\pingu at color{plank\@lr}{##1}},
-    plank \@lr/.default           = pingu at bronze!80!pingu at black,
-    plank \@lr\space width/.code  = \expandafter\def\csname pingu at plank@\@lr @width\endcsname{##1},
-    plank \@lr\space height/.code  = \expandafter\def\csname pingu at plank@\@lr @height\endcsname{##1},
-    plank \@lr\space xshift/.code  = \expandafter\def\csname pingu at plank@\@lr @xshift\endcsname{##1},
-    plank \@lr\space yshift/.code  = \expandafter\def\csname pingu at plank@\@lr @yshift\endcsname{##1}
-}{plank \@lr\space width=7mm,plank \@lr\space height=16.5mm, plank \@lr\space xshift=0mm,plank \@lr\space yshift=-1mm}
-\def\pingu at draw@wi at plank#1{%
-    \pingu at setup@wing{plank}{#1}%
-\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-\pingu at block[rounded corners=2pt]{\@col}([xshift=\csname pingu at plank@#1 at xshift\endcsname,yshift=\csname pingu at plank@#1 at yshift\endcsname]\pingu at name-wing-#1)++({-.5*(\csname pingu at plank@#1 at width\endcsname)},{-.5*(\csname pingu at plank@#1 at height\endcsname)}) rectangle ++({\csname pingu at plank@#1 at width\endcsname},{\csname pingu at plank@#1 at height\endcsname});
-\endscope
-}
-
-% \usetikzlibrary{spy}
-
-\pingu at create@wing at extra{magnifier}{%
-    magnifier \@lr/.code              = {\pingu at set@extra{magnifier\@lr}{true}\pingu at color{magnifier\@lr}{##1}}, % \noexpand\tikzset{/pingu/@pingu/.append style={spy scope={circle,draw,magnification=4,size=1cm}}}
-    magnifier \@lr/.default           = pingu at bronze,
-    magnifier \@lr\space handle length/.code = \expandafter\def\csname pingu at magnifier@\@lr @length\endcsname{##1},
-    magnifier \@lr\space handle shift/.code  = \expandafter\def\csname pingu at magnifier@\@lr @shift\endcsname{##1},
-    magnifier \@lr\space size/.code  = \expandafter\def\csname pingu at magnifier@\@lr @size\endcsname{##1},
-    magnifier \@lr\space glass/.code  = \pingu at color{magnifier@\@lr @glass}{##1},
-    magnifier \@lr\space opacity/.code  = \expandafter\def\csname pingu at magnifier@\@lr @opacity\endcsname{##1},
-    magnifier \@lr\space thick/.code  = \expandafter\def\csname pingu at magnifier@\@lr @thick\endcsname{##1},
-    magnifier \@lr\space xshift/.code  = \expandafter\def\csname pingu at magnifier@\@lr @xshift\endcsname{##1},
-    magnifier \@lr\space yshift/.code  = \expandafter\def\csname pingu at magnifier@\@lr @yshift\endcsname{##1},
-    magnifier \@lr\space handle/.code = \pingu at color{magnifier@\@lr @handle}{##1}%
-}{magnifier \@lr\space handle length=3.5mm, magnifier \@lr\space handle shift=-4mm, magnifier \@lr\space xshift=0mm,magnifier \@lr\space yshift=1mm,magnifier \@lr\space size=2.5mm,magnifier \@lr\space thick=.5mm,magnifier \@lr\space glass=pingu at blue!90!pingu at yellow,magnifier \@lr\space opacity=0.24}
-\def\pingu at draw@wi at magnifier#1{%
-    \pingu at setup@wing{magnifier}{#1}%
-  \scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-% \csname pingu at color@magnifier#1\endcsname
-  \path ([yshift=\csname pingu at magnifier@#1 at yshift\endcsname+\csname pingu at magnifier@#1 at size\endcsname,xshift=\csname pingu at magnifier@\@lr @xshift\endcsname]\pingu at name-wing-#1) coordinate (@);
-
-  % \spy[draw=green] on (@) in node at (@);
-% \pgfonlayer{foreground}
-  \pingu at block[even odd rule]{\@col} (@) circle[radius=\csname pingu at magnifier@#1 at size\endcsname] circle[radius=\csname pingu at magnifier@#1 at size\endcsname-\csname pingu at magnifier@#1 at thick\endcsname];
-
-    \pingu at block[opacity=\csname pingu at magnifier@#1 at opacity\endcsname]{\csname pingu at color@magnifier@#1 at glass\endcsname} (@) circle[radius=\csname pingu at magnifier@#1 at size\endcsname-\csname pingu at magnifier@#1 at thick\endcsname];
-
-    \pingu at block{\@col} % TODO: adapt size
-    (@) ([shift={(-70:2.5mm)}]@) to[out=230,in=90] ++(-.5mm,-\csname pingu at magnifier@#1 at length\endcsname) arc(360:180:.33mm) to[out=90,in=-50] ++(-.5mm,\csname pingu at magnifier@#1 at length\endcsname);%
-% \endpgfonlayer
-\endscope
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-glasses.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-glasses.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-glasses.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,105 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{glasses}{%
-    glasses/.code               = \pingu at set@extra{glasses}{true}\pingu at color{glasses}{#1},
-    glasses/.default            = pingu at black,
-    glasses left fill/.code     = \pingu at color{glasses at fill@l}{#1},
-    glasses right fill/.code    = \pingu at color{glasses at fill@r}{#1},
-    glasses left opacity/.code  = \def\pingu at x@glasses at op@l{#1},
-    glasses right opacity/.code = \def\pingu at x@glasses at op@r{#1},
-    glasses fill/.style         = {/pingu/glasses left fill=#1, /pingu/glasses right fill=#1},
-    glasses opacity/.style      = {/pingu/glasses left opacity=#1, /pingu/glasses right opacity=#1},
-    glasses line width/.code    = \def\pingu at x@glasses at lw{#1},
-    sunglasses/.forward to      = /pingu/sun glasses,
-    glasses bend left/.code     = \def\pingu at x@glasses at bend@l{#1},
-    glasses bend right/.code    = \def\pingu at x@glasses at bend@r{#1},
-    glasses bend/.style         = {/pingu/glasses bend left=#1,/pingu/glasses bend right=#1},
-    sun glasses/.style          = {/pingu/glasses, /pingu/glasses fill=#1},
-    sun glasses/.default        = pingu at black,
-}{glasses line width=1.125\p@,glasses fill=\@pingu at none,glasses opacity=.825,glasses bend left=32.5,glasses bend right=32.5}
-
-\def\pingu at draw@ea at glasses{% fact: 1.33; modified first shift and ht
-    \pingu at block[opacity=\pingu at x@glasses at op@l]{\pingu at color@glasses at fill@l} (\pingu at name-eye-left)++(-2.66mm,1.75mm) to[bend left=8] ++(5.586mm,0) to[out=-80,in=70] ++(-.266mm,-3.6mm) to[bend left=\pingu at x@glasses at bend@l] ++(-4.8545mm,\z@) to[out=135,in=-90] ++(-1.064mm,3.5mm) -- cycle;
-    \pingu at block[opacity=\pingu at x@glasses at op@r]{\pingu at color@glasses at fill@r} (\pingu at name-eye-right)++(2.66mm,1.75mm) to[bend right=8] ++(-5.586mm,0) to[out=-100,in=110] ++(.266mm,-3.6mm) to[bend right=\pingu at x@glasses at bend@r] ++(4.8545mm,\z@) to[out=45,in=-90] ++(1.064mm,3.5mm) -- cycle;
-    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} [rounded corners=.25mm](\pingu at name-eye-left)++(-2.66mm,1.75mm) coordinate (\pingu at name-glasses-left-mid) to[bend left=8] ++(5.586mm,0) coordinate (\pingu at name-glasses-left-outer) to[out=-80,in=70] ++(-.266mm,-3.6mm) to[bend left=\pingu at x@glasses at bend@l] ++(-4.8545mm,\z@) to[out=135,in=-90] coordinate[pos=.9] (\pingu at name-glasses-left-mid-b) ++(-1.064mm,3.5mm) -- cycle;
-    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} [rounded corners=.25mm] (\pingu at name-eye-right)++(2.66mm,1.75mm) coordinate (\pingu at name-glasses-right-mid) to[bend right=8] ++(-5.586mm,0) coordinate (\pingu at name-glasses-right-outer) to[out=-100,in=110] ++(.266mm,-3.6mm) to[bend right=\pingu at x@glasses at bend@r] ++(4.8545mm,\z@) to[out=45,in=-90] coordinate[pos=.9] (\pingu at name-glasses-right-mid-b) ++(1.064mm,3.5mm) -- cycle;
-    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} (\pingu at name-glasses-right-mid) to[bend right=10] (\pingu at name-glasses-left-mid);
-    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} (\pingu at name-glasses-right-mid-b) to[bend left=20] (\pingu at name-glasses-left-mid-b);
-    \scope
-    \clip[use path=\pingu at upperpingu];
-    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses}
-    (\pingu at name-glasses-right-mid) to[bend right=8] ++(-5.586mm,0) -- ++(-5mm,.5mm);
-    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses}
-    (\pingu at name-glasses-left-mid) to[bend left=8] ++(5.586mm,0) -- ++(5mm,.5mm);
-    \endscope
-}
-\pingu at create@extra{glassesround}{%
-    glasses round/.code               = \pingu at set@extra{glassesround}{true}\pingu at color{glassesround}{#1},
-    glasses round/.default            = pingu at black,
-    glasses round left fill/.code     = \pingu at color{glassesround at fill@l}{#1},
-    glasses round right fill/.code    = \pingu at color{glassesround at fill@r}{#1},
-    glasses round fill/.style         = {/pingu/glasses round left fill=#1, /pingu/glasses round right fill=#1},
-    glasses round left opacity/.code  = \def\pingu at x@glassesround at op@l{#1},
-    glasses round right opacity/.code = \def\pingu at x@glassesround at op@r{#1},
-    glasses round opacity/.style      = {/pingu/glasses round left opacity=#1, /pingu/glasses round right opacity=#1},
-    glasses round left radius/.code  = \def\pingu at x@glassesround at r@l{#1},
-    glasses round right radius/.code = \def\pingu at x@glassesround at r@r{#1},
-    glasses round radius/.style      = {/pingu/glasses round left radius=#1, /pingu/glasses round right radius=#1},
-    glasses round line width/.code    = \def\pingu at x@glassesround at lw{#1},
-    sunglasses round/.forward to      = /pingu/sun glasses round,
-    sun glasses round/.style          = {/pingu/glasses round, /pingu/glasses round fill=#1},
-    sun glasses round/.default        = pingu at black,
-    % todo: width/radius allow for different
-}{glasses round line width=.75\p@,glasses round fill=\@pingu at none,glasses round opacity=.825,glasses round radius=3.15mm}
-\def\pingu at draw@ea at glassesround{% fact: 1.33; modified first shift and ht
-    \pingu at block[opacity=\pingu at x@glassesround at op@l]{\pingu at color@glassesround at fill@l} (\pingu at name-eye-left) circle [radius=\pingu at x@glassesround at r@l];
-    \pingu at block[opacity=\pingu at x@glassesround at op@r]{\pingu at color@glassesround at fill@r} (\pingu at name-eye-right) circle [radius=\pingu at x@glassesround at r@r];
-    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround} [rounded corners=.25mm](\pingu at name-eye-left) ++(150:\pingu at x@glassesround at r@l) coordinate (\pingu at name-glassesround-left-mid) arc (150:510:\pingu at x@glassesround at r@l);
-    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround} [rounded corners=.25mm] (\pingu at name-eye-right) ++(30:\pingu at x@glassesround at r@r) coordinate (\pingu at name-glassesround-right-mid) arc (30:390:\pingu at x@glassesround at r@r);
-    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround} (\pingu at name-glassesround-left-mid) to[bend right=30] (\pingu at name-glassesround-right-mid);
-    \scope
-    \clip[use path=\pingu at upperpingu];
-    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround}
-     (\pingu at name-glassesround-right-mid) arc(30:150:\pingu at x@glassesround at r@l) -- ++(-5mm,.65mm);
-     \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround}
-     (\pingu at name-glassesround-left-mid) arc(150:30:\pingu at x@glassesround at r@r) -- ++(5mm,.65mm);
-    \endscope
-}
-\pingu at create@extra{monocleleft}{%
-    monocle left/.code              = \pingu at set@extra{monocleleft}{true}\pingu at color{monocleleft}{#1},
-    monocle left/.default           = pingu at black,
-    monocle left glass/.code        = \pingu at color{monocleleft at glass}{#1},
-    monocle left fill/.forward to   = /pingu/monocle left glass,
-    monocle left opacity/.code      = \def\pingu at x@monocleleft at opacity{#1},
-    monocle left fill opacity/.forward to   = /pingu/monocle left opacity,
-    monocle left string/.code       = \pingu at color{monocleleft at string}{#1},
-    monocle left string length/.code= \def\pingu at x@monocleleft at string@l{#1},
-    monocle left blob/.code         = \pingu at color{monocleleft at blob}{#1},
-}{monocle left glass=pingu at blue,monocle left opacity=.155,monocle left string=\pingu at color@monocleleft,monocle left blob=\pingu at color@monocleleft,monocle left string length=5.55mm}
-
-\def\pingu at draw@eb at monocle@l{%
-    \pingu at block[/pingu/glow,opacity=\pingu at x@monocleleft at opacity]{\pingu at color@monocleleft at glass} (\pingu at name-eye-left) circle[radius=2mm];
-    \pingu at draw[thin]{\pingu at color@monocleleft at string} (\pingu at name-eye-left)++(2mm,0)
-    to[out=-75,in=100] ++(0,-\pingu at x@monocleleft at string@l);
-    \pingu at block{\pingu at color@monocleleft at blob} (\pingu at name-eye-left)++(2mm,-\pingu at x@monocleleft at string@l) circle [radius=.65\p@];
-    \pingu at draw[semithick]{\pingu at color@monocleleft} (\pingu at name-eye-left) circle[radius=2mm];
-}
-\pingu at create@extra{monocleright}{%
-    monocle right/.code              = \pingu at set@extra{monocleright}{true}\pingu at color{monocleright}{#1},
-    monocle right/.default           = pingu at black,
-    monocle right glass/.code        = \pingu at color{monocleright at glass}{#1},
-    monocle right fill/.forward to   = /pingu/monocle right glass,
-    monocle right opacity/.code      = \def\pingu at x@monocleright at opacity{#1},
-    monocle right fill opacity/.forward to   = /pingu/monocle right opacity,
-    monocle right string/.code       = \pingu at color{monocleright at string}{#1},
-    monocle right string length/.code= \def\pingu at x@monocleright at string@r{#1},
-    monocle right blob/.code         = \pingu at color{monocleright at blob}{#1},
-}{monocle right glass=pingu at blue,monocle right opacity=.155,monocle right string=\pingu at color@monocleright,monocle right blob=\pingu at color@monocleright,monocle right string length=5.55mm}
-\def\pingu at draw@eb at monocle@r{%
-    \pingu at block[/pingu/glow,opacity=\pingu at x@monocleright at opacity]{\pingu at color@monocleright at glass} (\pingu at name-eye-right) circle[radius=2mm];
-    \pingu at draw[thin]{\pingu at color@monocleright at string} (\pingu at name-eye-right)++(-2mm,0)
-    to[out=-105,in=80] ++(0,-\pingu at x@monocleright at string@r);
-    \pingu at block{\pingu at color@monocleright at blob} (\pingu at name-eye-right)++(-2mm,-\pingu at x@monocleright at string@r) circle [radius=.65\p@];
-    \pingu at draw[semithick]{\pingu at color@monocleright} (\pingu at name-eye-right) circle[radius=2mm];
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-hats.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-hats.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-hats.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,173 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{strawhat}{%
-  % extra strawhat (tikzducks basis)
-  straw hat/.forward to         = /pingu/strawhat,
-  strawhat/.default             = brown!50!white,
-  strawhat/.code                = \pingu at set@extra{strawhat}{true}\pingu at color{strawhat}{#1},
-  straw hat ribbon/.forward to  = /pingu/strawhat ribbon,
-  strawhat ribbon/.code         = \pingu at color{strawhat at ribbon}{#1},
-  straw hat position/.forward to= /pingu/strawhat position,
-  strawhat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@strawhat at angle{#1}\def\pingu at x@strawhat at xshift{#2}\def\pingu at x@strawhat at yshift{#3}\def\pingu at x@strawhat at scale{#4}},
-}{strawhat ribbon= gray!85!black,strawhat position={-26.5:(-.185cm,.14cm){1.375}}}
-
-\def\pingu at draw@ea at strawhat{%
-\scope[rotate around={\pingu at x@strawhat at angle:(\pingu at name-head)},shift={(\pingu at name-head)},shift={(\pingu at x@strawhat at xshift,\pingu at x@strawhat at yshift)},scale=\pingu at x@strawhat at scale]
-\pingu at block{\pingu at color@strawhat} (.34cm,0) ellipse[x radius=.75cm, y radius=\pingu at one];
-\pingu at block{\pingu at color@strawhat} (0,.5mm) rectangle (.68cm,5mm);
-\pingu at block{\pingu at color@strawhat} (.34cm,5mm) ellipse[x radius=.34cm, y radius=.8mm];
-\pingu at block{\pingu at color@strawhat} (-.3955cm,.2mm) -- (1.0755cm,.2mm) -- (.68cm,2mm) -- (0,2mm) -- cycle;
-\pingu at block{\pingu at color@strawhat at ribbon} (.34cm,2mm) ellipse[x radius=.34cm, y radius=.8mm];
-\pingu at block{\pingu at color@strawhat at ribbon} (0,2mm) rectangle (.68cm,3mm);
-\pingu at block{\pingu at color@strawhat} (.34cm,3mm) ellipse[x radius=.34cm, y radius=.8mm];
-\endscope}
-
-\pingu at create@extra{hat}{%
-  hat/.default   = pingu at black!90!black,
-  hat/.code      = \pingu at set@extra{hat}{true}\pingu at color{hat}{#1},
-  hat base/.code = \pingu at color{hat at base}{#1},
-  hat coronal/.code = \pingu at color{hat at coronal}{#1},
-  hat ribbon/.code = \pingu at color{hat at ribbon}{#1},
-  hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@hat at angle{#1}\def\pingu at x@hat at xshift{#2}\def\pingu at x@hat at yshift{#3}\def\pingu at x@hat at scale{#4}},
-}{hat position={-2:(.35mm,0)1},hat base=\pingu at color@hat,hat coronal=\pingu at color@hat!91!white,hat ribbon=\pingu at color@hat!87!white}
-
-\newdimen\pingu at hat@w at half \pingu at hat@w at half=.925cm
-\newdimen\pingu at hat@h \pingu at hat@h=.625cm
-\def\pingupathhatupper{[rounded corners=.25mm](-.65cm,-.25cm) to[out=90,in=200] ++(.35cm,\pingu at hat@h) to[bend left=11] ++(.25cm,0) to[bend right=2.5] ++(\pingu at one,0) to[bend left=11] ++(.25cm,0) to[out=-20,in=90] ++(.35cm,-\pingu at hat@h) to[bend left=12] (-.65cm,-.25cm) -- cycle}
-\def\pingu at draw@ea at hat{%
-\scope[rotate around={\pingu at x@hat at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@hat at xshift,\pingu at x@hat at yshift)},scale=\pingu at x@hat at scale]
-\pingu at block[/pingu/@draw=\pingu at color@hat at coronal,thick]{\pingu at color@hat at base} (0,-.25cm)++(180:\pingu at hat@w at half{} and .15cm) arc (180:360:\pingu at hat@w at half{} and .15cm) arc (0:180:\pingu at hat@w at half{} and .115cm) -- cycle;
-\pingu at block{\pingu at color@hat} \pingupathhatupper;
-\scope
-\clip\pingupathhatupper;
-\pingu at block{\pingu at color@hat at ribbon} (\z@,.2mm) ellipse [x radius=.95\pingu at hat@w at half, y radius=.13cm];
-\pingu at block{\pingu at color@hat} (\z@,.134cm) ellipse [x radius=.95\pingu at hat@w at half, y radius=.13cm];
-\endscope\endscope}
-
-\pingu at create@extra{cap}{%
-  cap/.default      = pingu at bronze,
-  cap/.code         = \pingu at set@extra{cap}{true}\pingu at color{cap}{#1},
-  cap padding/.code = {\def\pingu at x@cap at padding{#1}},
-  cap extra height/.code = {\def\pingu at x@cap at height{#1}},
-}{cap padding=.8mm, cap extra height=0pt}
-
-\def\pingu at draw@ea at cap{%
-\pingu at layer{foreground}[]
-\pingu at block[rounded corners=.7mm]{\pingu at color@cap} ([xshift=.25mm]\pingu at name-wing-left-start) to[bend left=4] ([xshift=-\pingu at x@cap at padding]\pingu at name-wings-side-left) to[bend right=3]
-([yshift=\pingu at x@cap at height]\pingu at name-head)
-to[bend right=3]
-([xshift=\pingu at x@cap at padding]\pingu at name-wings-side-right) [rounded corners=.15mm] to[bend left=4] ([xshift=-.25mm]\pingu at name-wing-right-start)
-to[bend left=8]
-([xshift=-\pingu at x@cap at padding]\pingu at name-wings-side-right)
-[rounded corners=.15mm]
-to[bend left=32] ++(\pingu at w@half+\pingu at x@cap at padding,\pingu at w@half+\pingu at one)
-to[bend left=32] ++(\pingu at w@half+\pingu at x@cap at padding,-\pingu at w@half-\pingu at one)
-to[bend left=8] cycle;
-\endpingu at layer
-}
-
-\pingu at create@extra{constructionhelmet}{%
-  construction helmet/.default      = pingu at yellow,
-  construction helmet/.code         = \pingu at set@extra{constructionhelmet}{true}\pingu at color{constructionhelmet}{#1},
-  construction helmet padding/.code = {\def\pingu at x@constructionhelmet at padding{#1}},
-  construction helmet extra height/.code = {\def\pingu at x@constructionhelmet at height{#1}},
-  construction helmet position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@constructionhelmet at angle{#1}\def\pingu at x@constructionhelmet at xshift{#2}\def\pingu at x@constructionhelmet at yshift{#3}\def\pingu at x@constructionhelmet at scale{#4}},
-}{construction helmet padding=.325cm, construction helmet extra height=0pt,construction helmet position={-.5:(.05mm,-1.25mm)1}}
-
-\newdimen\pingu at constructionhelmet@w at half \pingu at constructionhelmet@w at half=.85cm
-\def\pingu at draw@ea at constructionhelmet{%
-\scope[rotate around={\pingu at x@constructionhelmet at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@constructionhelmet at xshift,\pingu at x@constructionhelmet at yshift)},scale=\pingu at x@constructionhelmet at scale]
-\pingu at block{\pingu at color@constructionhelmet} (0,-.25cm)++(180:\pingu at constructionhelmet@w at half{} and \pingu at x@constructionhelmet at padding) arc (180:360:\pingu at constructionhelmet@w at half{} and \pingu at x@constructionhelmet at padding) arc (0:180:\pingu at constructionhelmet@w at half{} and .2cm) -- cycle;
-\scope
-\pingu at block{\pingu at color@constructionhelmet!93!pingu at black} (0,-.25cm)++(0:{.95\pingu at constructionhelmet@w at half} and .675cm) arc (0:180:{.95\pingu at constructionhelmet@w at half} and .675cm) coordinate[pos=.212] (@a) coordinate[pos=.256] (@aa) coordinate[pos=.788] (@b) coordinate[pos=.744] (@bb) arc (180:360:{.95\pingu at constructionhelmet@w at half} and .125cm) -- cycle;
-\clip  (0,-.25cm)++(0:{.95\pingu at constructionhelmet@w at half} and .675cm) arc (0:180:{.95\pingu at constructionhelmet@w at half} and .675cm) arc (180:360:{.95\pingu at constructionhelmet@w at half} and .125cm) -- cycle;
-\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (-.75mm,-.25cm-.125cm) to[bend left=1] ++ (0,.675cm+.125cm) -- ++(1.5mm,0) to[bend right=1] ++(0,-.675cm-.125cm) -- cycle;
-\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (-.95mm,-.25cm-.125cm) to[bend left=3] ++ (-8mm,.675cm+.125cm) -- ++(1.5mm,0) to[bend right=3] ++(8mm,-.675cm-.125cm) -- cycle;
-\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (-.55mm,-.25cm-.125cm) to[bend right=3] ++ (8mm,.675cm+.125cm) -- ++(1.5mm,0) to[bend left=3] ++(-8mm,-.675cm-.125cm) -- cycle;
-\endscope
-% get the 3d wobbles
-\pingu at block[rounded corners=.03mm]{\pingu at color@constructionhelmet!99!pingu at black} (-.75mm,-.25cm+.675cm-.25mm) -- ++(0,.3mm) -| ++(1.5mm,-.3mm) -- cycle;
-\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (@a) to[bend right=14] (@aa);
-\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (@bb) to[bend right=14] (@b);
-\endscope
-}
-
-\pingu at create@extra{conicalhat}{%
-  conical hat/.default      = pingu at bronze,
-  conical hat/.code         = \pingu at set@extra{conicalhat}{true}\pingu at color{conicalhat}{#1},
-  conical hat rounding/.code = {\def\pingu at x@conicalhat at rounding{#1}},
-  conical hat shade/.code = {\def\pingu at x@conicalhat at shade{#1}},
-  conical hat height/.code = {\def\pingu at x@conicalhat at height{#1}},
-  conical hat width/.code = {\def\pingu at x@conicalhat at width{#1}},
-  conical hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@conicalhat at angle{#1}\def\pingu at x@conicalhat at xshift{#2}\def\pingu at x@conicalhat at yshift{#3}\def\pingu at x@conicalhat at scale{#4}},
-}{conical hat position={-15:(2mm,-3mm)1}, conical hat height=8mm, conical hat width=2.25cm,conical hat shade=\pingu at color@conicalhat!80!pingu at black, conical hat rounding=.4pt}
-
-\def\pingu at draw@ea at conicalhat{%
-\scope[rotate around={\pingu at x@conicalhat at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@conicalhat at xshift,\pingu at x@conicalhat at yshift)},scale=\pingu at x@conicalhat at scale]
-
-\pingu at layer{background}[]
-\pingu at block[rounded corners=\pingu at x@conicalhat at rounding]{\pingu at x@conicalhat at shade} (0,-.22cm)++(180:{\pingu at x@conicalhat at width/2+.05mm} and 1mm) coordinate (@) arc (180:360:{\pingu at x@conicalhat at width/2+.05mm} and 1mm) -- ++(.15mm,.3mm) to[bend right=5] ++(-\pingu at x@conicalhat at width/2, \pingu at x@conicalhat at height-.025cm) to[bend right=5] ([xshift=-.15mm,yshift=.3mm]@) -- cycle;
-\endpingu at layer
-
-\pingu at block[rounded corners=\pingu at x@conicalhat at rounding]{\pingu at color@conicalhat} (0,-.25cm)++(180:\pingu at x@conicalhat at width/2 and 1mm) coordinate (@) arc (180:0:\pingu at x@conicalhat at width/2 and 1mm) -- ++(.225mm,.6mm) to[bend right=5] ++(-\pingu at x@conicalhat at width/2, \pingu at x@conicalhat at height) to[bend right=5] ([xshift=-.225mm,yshift=.6mm]@) -- cycle;
-\endscope
-}
-
-\pingu at create@extra{witchhat}{%
-  witch hat/.code      = \pingu at set@extra{witchhat}{true}\pingu at color{witchhat}{#1},
-  witch hat/.default   = pingu at purple!40!black,
-  witch hat base/.code = \pingu at color{witchhat at base}{#1},
-  witch hat coronal/.code = \pingu at color{witchhat at coronal}{#1},
-  witch hat ribbon/.code = \pingu at color{witchhat at ribbon}{#1},
-  witch hat band/.code = \pingu at color{witchhat at band}{#1},
-  witch hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@witchhat at angle{#1}\def\pingu at x@witchhat at xshift{#2}\def\pingu at x@witchhat at yshift{#3}\def\pingu at x@witchhat at scale{#4}},
-}{witch hat position={-7:(.625mm,.45mm){1.15}},witch hat base=\pingu at color@witchhat,witch hat coronal=\pingu at color@witchhat!91!white,witch hat ribbon=\pingu at color@witchhat!87!white,witch hat band=!hide}
-
-\newdimen\pingu at witchhat@w at half \pingu at witchhat@w at half=1.125cm
-\newdimen\pingu at witchhat@h \pingu at witchhat@h=1.3cm
-\def\pingupathwitchhatupper{[rounded corners=.65mm](-.625cm,-.25cm) -- ++(.8cm,\pingu at witchhat@h-4.5mm) -- ++(6.5mm,4.5mm) -- ++(-1.5mm,-4.5mm) -- ++(-1.25mm,-\pingu at witchhat@h+4.5mm)}
-\def\pingu at draw@ea at witchhat{%
-\scope[rotate around={\pingu at x@witchhat at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@witchhat at xshift,\pingu at x@witchhat at yshift)},scale=\pingu at x@witchhat at scale]
-\pingu at draw[semithick]{\pingu at color@witchhat at band} (-.615cm,-.25cm) to[out=-100,in=180] ++(.5cm,-1.1cm) to[bend right=5] ++(3.5mm,.1mm) to[out=0,in=-78] ++(.433cm,1.1cm);
-\pingu at block[/pingu/@draw=\pingu at color@witchhat at coronal,thick]{\pingu at color@witchhat at base} (0,-.25cm)++(180:\pingu at witchhat@w at half{} and .15cm) arc (180:360:\pingu at witchhat@w at half{} and .15cm) arc (0:180:\pingu at witchhat@w at half{} and .115cm) -- cycle;
-\pingu at block{\pingu at color@witchhat} \pingupathwitchhatupper;
-\clip\pingupathwitchhatupper;
-\pingu at block{\pingu at color@witchhat at ribbon} (\z@,.2mm) ellipse [x radius=.95\pingu at witchhat@w at half, y radius=.12cm];
-\pingu at block{\pingu at color@witchhat} (\z@,.134cm) ellipse [x radius=.95\pingu at witchhat@w at half, y radius=.12cm];
-\endscope
-}
-
-
-\pingu at create@extra{mitra}{%
-  mitra/.default     = pingu at red!67!pingu at black,%pingu at black!90!black,
-  mitra/.code        = \pingu at set@extra{mitra}{true}\pingu at color{mitra}{#1},
-  mitra height/.code = {\def\pingu at x@mitra at height{#1}},
-  mitra background/.code = \pingu at color{mitra at background}{#1},
-  mitra overset/.code = {\def\pingu at x@mitra at overset{#1}},
-  mitra lower angle/.code = {\def\pingu at x@mitra at lowerangle{#1}},
-  mitra upper angle/.code = {\def\pingu at x@mitra at upperangle{#1}},
-  mitra lower band/.code = \pingu at color{mitra at lower@band}{#1},
-  mitra lower band height/.code = {\def\pingu at x@mitra at lowerband@height{#1}},
-  mitra upper band/.code = \pingu at color{mitra at upper@band}{#1},
-  mitra upper band height/.code = {\def\pingu at x@mitra at upperband@height{#1}},
-  mitra center band/.code = \pingu at color{mitra at center@band}{#1},
-  mitra center band width/.code = {\def\pingu at x@mitra at centerband@width{#1}},
-  mitra position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@mitra at angle{#1}\def\pingu at x@mitra at xshift{#2}\def\pingu at x@mitra at yshift{#3}\def\pingu at x@mitra at scale{#4}},
-}{mitra position={0:(0,0)1},mitra height=1.125cm,mitra overset=1.25mm,mitra lower angle=125,mitra upper angle=-35,mitra lower band=pingu at yellow!75!pingu at black,mitra center band=\pingu at color@mitra at lower@band,mitra lower band height=.2,mitra center band width={2*\pingu at x@mitra at lowerband@height},mitra upper band=\pingu at color@mitra at lower@band,mitra upper band height={1.5*\pingu at x@mitra at lowerband@height},mitra background=\pingu at color@mitra!80!pingu at black}
-
-\newdimen\pingu at mitra@w at half \pingu at mitra@w at half=.625cm
-\def\pingu at x@mitra at path{(0,-.2185cm)++(180:\pingu at mitra@w at half{} and .035cm) arc (180:360:\pingu at mitra@w at half{} and .035cm) [rounded corners=1pt] -- ++(\pingu at x@mitra at overset,.3*\pingu at x@mitra at height) to[out=\pingu at x@mitra at lowerangle,in=\pingu at x@mitra at upperangle] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half,.7*\pingu at x@mitra at height)
-to[out=180-\pingu at x@mitra at upperangle,in=180-\pingu at x@mitra at lowerangle] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half,-.7*\pingu at x@mitra at height) [sharp corners]  -- cycle}
-\def\pingu at draw@ea at mitra{%
-\scope[rotate around={\pingu at x@mitra at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@mitra at xshift,\pingu at x@mitra at yshift)},scale=\pingu at x@mitra at scale]
-\pingu at block{\pingu at color@mitra at background} (0,-.2185cm)++(180:\pingu at mitra@w at half{} and .035cm) arc (180:360:\pingu at mitra@w at half{} and .035cm) [rounded corners=1pt] -- ++(\pingu at x@mitra at overset,.3*\pingu at x@mitra at height) to[out=\pingu at x@mitra at lowerangle,in=\pingu at x@mitra at upperangle] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half-.66mm,.7*\pingu at x@mitra at height-.1mm)
-to[out=180-\pingu at x@mitra at upperangle+2,in=180-\pingu at x@mitra at lowerangle-2] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half+.66mm,-.7*\pingu at x@mitra at height+.1mm) [sharp corners]  -- cycle;
-\pingu at block{\pingu at color@mitra} \pingu at x@mitra at path;
-% \pingu at block{\pingu at color@mitra} \pingupathmitraupper;
-\scope\clip\pingu at x@mitra at path;
-% TODO: switch to factors non relative to \pingu at x@mitra at overset
-\pingu at block{\pingu at color@mitra at lower@band} (0,-.2185cm)++(180:\pingu at mitra@w at half{} and .035cm) arc (180:360:\pingu at mitra@w at half{} and .035cm) -- ++(\pingu at x@mitra at lowerband@height*\pingu at x@mitra at overset,\pingu at x@mitra at lowerband@height*.3*\pingu at x@mitra at height) arc (0:-180:{\pingu at x@mitra at lowerband@height*\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm)  -- cycle;
-\pingu at block{\pingu at color@mitra at center@band} (\pingu at x@mitra at centerband@width*\pingu at x@mitra at overset+.1mm,-.2185cm) to[bend right=4] ++(0,\pingu at x@mitra at height) to[bend right] ++(-2*\pingu at x@mitra at centerband@width*\pingu at x@mitra at overset-.1mm,0) to[bend left=4] ++(0,-\pingu at x@mitra at height) -- cycle;
-\pingu at block{\pingu at color@mitra at upper@band} (0,.3*\pingu at x@mitra at height-.2185cm-0.5*\pingu at x@mitra at upperband@height*.3*\pingu at x@mitra at height)++(180:{\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm) arc (180:360:{\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm) -- ++(0,\pingu at x@mitra at upperband@height*.3*\pingu at x@mitra at height) arc (0:-180:{\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm)  -- cycle;
-\endscope\endscope}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-horse.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-horse.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-horse.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,229 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-% TODO: get all of this customizable
-\colorlet{base at a}{lightgray!95!black}
-\colorlet{base at b}{lightgray!79!black}
-
-\colorlet{a}{lightgray!63!black}
-\colorlet{b}{lightgray!81!black}
-\def\basew{12}
-\def\pingu@@horse at scale{.1}
-
-\def\pingu@@horse@@main{(1.275,.55) -- ++(\if at pingu@@horse@@donkey at .05\else.1\fi,.2) -- ++(\if at pingu@@horse@@donkey at -.2\else-.25\fi,.25) to[bend right=4] ++(-.425,1.75) to[bend left=15] ++(.05,.2) to[bend right=30] ++(-.1,1.9) to[bend left=30] ++(0,1.65) coordinate(@back) to[bend left=30] ++(2,.625) to[bend right=18,looseness=.8] ++(3.25,-.1) [rounded corners=2*\pingu@@horse at scale] coordinate(@hair) to[out=34,in=185] ++(3,1.3) to[bend left=19] coordinate[pos=.5](@ear) ++(.85,-.4) to[bend left=5] ++(.24,-.45) to[bend right=20] ++(\if at pingu@@horse@@donkey at .25\else0\fi,\if at pingu@@horse@@donkey at -1.2\else-.7\fi) to[bend left=2] ++(.1,-.55) to[out=-85,in=-60,looseness=.75] ++(\if at pingu@@horse@@donkey at -.55\else-.475\fi,\if at pingu@@horse@@donkey at -.45\else-.35\fi) coordinate(@mouth) to[out=-135,in=-120] ++(\if at pingu@@horse@@donkey at -.4\else-.37\fi,\if at pingu@@horse@@donkey at .2\else.25\fi) -- ++(0,.1)
-to[out=125,in=-68] ++(-.58,.615) coordinate (@mouth-low)
-to[out=215,in=80] ++(-1.25,-2) to[bend left=24] ++(-.65,-1) to[out=258,in=86] ++(-.42,-1.25)  to[bend left=3] ++(-.2,-.6) to[bend right=10] ++(-.14,-1.15) to[bend left=2] coordinate[pos=.62] (@hooffront) ++(.355,-.565) to[bend left=15] ++(-.4,-.075) to[bend left=10] ++(-.28,.1) to[bend left=9] ++(.06,.3) to[bend right=9] ++(-.2,.4) to[out=80,in=-80] ++(.138,1.4) to[out=70,in=-103] ++(.2,1.3) to[bend right=10] ++(-.225,.44) coordinate (@frontleg) to[out=196,in=\if at pingu@@horse@@donkey at -65\else-25\fi] ++(-3.3,\if at pingu@@horse@@donkey at .4\else.575\fi) coordinate (@backleg) to[bend right=\if at pingu@@horse@@donkey at 16\else10\fi] ++(-.8,\if at pingu@@horse@@donkey at -1.375\else-1.5\fi) to[bend right=\if at pingu@@horse@@donkey at 9\else20\fi] ++(.1,-2.35) -- ++(\if at pingu@@horse@@donkey at .1\else.2\fi,-.25)
-coordinate (@hoofback) to[bend right=\if at pingu@@horse@@donkey at 9\else8\fi] ++(.15,-.26) to[bend left=10] ++(\if at pingu@@horse@@donkey at -.66\else-.55\fi,\if at pingu@@horse@@donkey at -.15\else-.05\fi) -- cycle}
-
-% #1 is the wing for the color and key assignments
-\def\pingu@@drawer at horse#1{
-% this ensures all coordinates are set in place
-% i know this i inefficient, but atm this is of no greater
-% concern -- i can not use layers as they would clash with that
-% of the penguin and who wants that... no one does!
-% penguins deserve freedom!
-\path \pingu@@horse@@main;
-
-% no we draw "behind" the horse:
-
-% Sockel
-\csname if at pingu@x at horse@#1 at base@\endcsname
-\pingu at block[draw=\csname pingu at color@horse#1 at base@shade at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at base@shade\endcsname} (4.35-\basew/2,.433) -- ++(0,-.5) arc(180:360:\basew/2 and 1) -- ++(0,.5) arc(360:180:\basew/2 and 1);
-\pingu at block[draw=\csname pingu at color@horse#1 at base@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at base\endcsname} (4.35,.433) ellipse[x radius=\basew/2,y radius=1];
-\fi
-% background front leg
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1\endcsname} [rounded corners=1*\pingu@@horse at scale](@frontleg) to[out=266,in=85] ++(.09,-.5) to[bend left=10] ++(-.15,-.8)
-to[bend right=7] ++(-.05,-.2) to[bend left=13] ++(-.2,-1.15) to[bend right=13] ++(.15,-.2) to[bend left=10] ++(-.07,-.3)  to[bend right=100] ++(.45,-.1) to[bend right=10] coordinate[pos=0.08](@hooffront@) ([yshift=5mm,xshift=3mm]@frontleg) -- cycle;
-\pingu at block[draw=\csname pingu at color@horse#1 at fr@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale,rounded corners=.12]{\csname pingu at color@horse#1 at fr@hoof\endcsname} (@hooffront@) to[bend left=2] ++(0,-.565*.665) to[bend left=59] ++(-.225,-.08) -- ++(-.02,.03) to[bend left=20] ++(-.315,.11) to[bend right=6] ++(.092,.2) to[bend right=25] cycle;
-% background back le0
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1\endcsname} [rounded corners=1*\pingu@@horse at scale](@backleg) to[out=-115,in=\if at pingu@@horse@@donkey at 120\else130\fi] ++(-.3,-3.5) -- ++(.2,-.3) coordinate(@hoofback@) to[bend left] ++(-.5,-.1)
--- ++(\if at pingu@@horse@@donkey at -.2\else-.05\fi,.15) -- ++(0,.15) to[bend left=\if at pingu@@horse@@donkey at 45\else60\fi] cycle;
-\pingu at block[draw=\csname pingu at color@horse#1 at br@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale]{\csname pingu at color@horse#1 at br@hoof\endcsname} (@hoofback@) to[bend right=\if at pingu@@horse@@donkey at 9\else9\fi] ++(.206,-.265) to[bend left=10] ++(\if at pingu@@horse@@donkey at -.66\else-.55\fi,\if at pingu@@horse@@donkey at -.15\else-.05\fi) -- ++(-1.73mm,2.42mm) to[bend right=6] cycle;
-
-\if at pingu@@horse@@donkey@
-\pingu at block[draw=\csname pingu at color@horse#1 at tail@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at tail\endcsname} [rounded corners=1*\pingu@@horse at scale](@back) to[out=215,in=95] ++(-.1,-2) to[out=270,in=92] ++(0,-.75) [sharp corners] to[bend right=20] coordinate[pos=.5] (@) ++(.15,0) to[bend right=10] cycle;
-% TODO: hide support
-%\node[draw=\csname pingu at color@horse#1 at tail@draw\endcsname,fill=\csname pingu at color@horse#1 at tail\endcsname,cloud,cloud puffs=30,cloud ignores aspect,scale=1.33*\pingu@@horse at scale,yshift=16mm,rotate=-5,line width=\@pingu@@horse at lw*\pingu@@horse at scale] at (@) {\rotatebox{90}{\phantom{A}\hskip7.5em}};
-\scope[rotate around={180:(@)}] % adapted from the broom
-\pingu at block[rounded corners=.44pt,draw=\csname pingu at color@horse#1 at tail@draw\endcsname]{\csname pingu at color@horse#1 at tail\endcsname} (@)++(-1mm,-2mm) to[out=115,in=240] ++(3mm,12.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]@) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]@) -- cycle;
-\pingu at block[rounded corners=.44pt,draw=\csname pingu at color@horse#1 at tail@draw\endcsname]{\csname pingu at color@horse#1 at tail\endcsname} (@)++(-1mm,-2mm) to[out=115,in=240] coordinate[pos=.17] (@r) coordinate[pos=.19] (@r2)  ++(-.75mm,10.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]@) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]@) -- cycle;
-\pingu at block[rounded corners=.44pt,draw=\csname pingu at color@horse#1 at tail@draw\endcsname]{\csname pingu at color@horse#1 at tail\endcsname}(@)++(-.5mm,-1.5mm) to[out=115,in=240] ++(.5mm,12mm) to[out=300,in=65] ([xshift=.5mm,yshift=-1.5mm]@) -- cycle;
-\endscope
-\else
-\pingu at block[draw=\csname pingu at color@horse#1 at tail@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at tail\endcsname} [rounded corners=1*\pingu@@horse at scale](@back) to[out=215,in=90] ++(-.4,-2.5) to[out=270,in=92] ++(0,-2.8) [sharp corners] to[bend right=20] ++(.6,0) to[bend right=10] cycle;
-\fi
-
-% back ear
-\if at pingu@@horse@@donkey@
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=.2mm,yshift=-1.5mm]@ear) to[bend left=20] ++(.373,1.465) coordinate(@) to[bend left=10] ++(-.15,-1.5);
-\else
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=.2mm,yshift=-1.5mm]@ear) to[bend left=20] ++(.373,.565) coordinate(@) to[bend left=10] ++(-.15,-.75);
-\fi
-% and here comes the wheeee (imagine-horse-sound)
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1\endcsname} [rounded corners=1*\pingu@@horse at scale] \pingu@@horse@@main;
-
-\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at draw\endcsname} ([yshift=-.1mm]@mouth-low) to[bend left=12] ++(.06,.65);
-\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at mouth\endcsname} ([yshift=-.115mm]@mouth) -- ++(-.035,.225);
-
-\edef\pingu at tmp{\if at pingu@@horse@@donkey at 4.5mm\else3.85mm\fi}%
-\edef\pingu at tmpb{\if at pingu@@horse@@donkey at 3.65mm\else2.45mm\fi}%
-\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale,line join=round]{\csname pingu at color@horse#1 at nose\endcsname} ([xshift=\pingu at tmp,yshift=\pingu at tmpb]@mouth) to[out=140,in=10] ++(-.17,-.074) to[bend right=49] cycle;
-
-\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at draw\endcsname} ([yshift=-.35mm]@frontleg) to[bend left=12] ++(.01,.325);
-\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at draw\endcsname} ([yshift=-.2mm]@backleg) to[bend right=13] ++(.25,.425);
-
-\if at pingu@@horse@@donkey@
-\pingu at block[draw=\csname pingu at color@horse#1 at mane@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at mane\endcsname} [rounded corners=1*\pingu@@horse at scale](@hair) to[out=34,in=185] ++(3,1.3) to[bend left=10] ++(.415,-.1) -- ++(-.1,-.25) to[out=186,in=35] ([yshift=-4mm,xshift=1.5mm]@hair) -- cycle;
-
-\pingu at block[draw=\csname pingu at color@horse#1 at thatch@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at thatch\endcsname} [rounded corners=1*\pingu@@horse at scale]([xshift=2.1mm,yshift=-1.05mm]@ear) -- ++(-.1,-.2) to[bend left=4] ++(.45,-.275) to[bend right=9] cycle;
-\else
-\pingu at block[draw=\csname pingu at color@horse#1 at mane@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at mane\endcsname} [rounded corners=1*\pingu@@horse at scale](@hair) to[out=34,in=185] ++(3,1.3) to[bend left=10] ++(.415,-.1) -- ++(-.1,-.4) to[out=194,in=30] ([yshift=-11.5mm,xshift=1.5mm]@hair) -- cycle;
-
-\pingu at block[draw=\csname pingu at color@horse#1 at thatch@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at thatch\endcsname} [rounded corners=1*\pingu@@horse at scale]([xshift=2mm,yshift=-1mm]@ear) -- ++(-.1,-.3275) to[bend left=4] ++(.455,-.175) to[bend right=9] cycle;
-\fi
-
-% ear
-\if at pingu@@horse@@donkey@
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=-1mm,yshift=-1mm]@ear) to[bend left=15] ++(.393,1.685) coordinate(@) to[bend right=17] ++(-.15,-1.8);
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} (@) to[bend right=17] ++(-.15,-1.8) to[bend right=14] cycle;
-\else
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=-.75mm,yshift=-1mm]@ear) to[bend left=20] ++(.393,.585) coordinate(@) to[bend right=10] ++(-.15,-.7);
-\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} (@) to[bend right=7] ++(-.15,-.7) to[bend right=14] cycle;
-\fi
-
-% the eye; this is no error it has draw as fill
-\pingu at block{\csname pingu at color@horse#1 at eyes\endcsname} [rounded corners=.25*\pingu@@horse at scale] ([xshift=3mm,yshift=-7.5mm]@ear) to[bend right=20] ++(.125,-.2) to[bend right=50] ++(.1,.125) to[bend left=15] cycle;
-
-\pingu at block[draw=\csname pingu at color@horse#1 at fl@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale]{\csname pingu at color@horse#1 at fl@hoof\endcsname} (@hooffront) to[bend left=2] ++(.355*.49,-.545*.49) to[bend left=11] ++(-.45-.295,-.05+0.033)to[bend right=2] ++(.046,.29) to[bend right=10] cycle;
-\pingu at block[draw=\csname pingu at color@horse#1 at bl@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale]{\csname pingu at color@horse#1 at bl@hoof\endcsname} (@hoofback) to[bend right=\if at pingu@@horse@@donkey at 9\else8\fi] ++(.15,-.26) to[bend left=10] ++(\if at pingu@@horse@@donkey at -.66\else-.55\fi,\if at pingu@@horse@@donkey at -.15\else-.05\fi) -- ++(-1.73mm,2.42mm) to[bend right=6] cycle; %to[bend left=2] ++(.355*.65,-.565*.65) to[bend left=15] ++(-.395,-.075) to[bend left=10] ++(-.293,.105) to[bend left=9] ++(.06,.3) to[bend left=5] cycle;
-}
-
-% universal switch for all three positions
-\newif\if at pingu@@horse@@donkey@
-
-\newif\if at pingu@x at horse@left at flip@
-\newif\if at pingu@x at horse@right at flip@
-\newif\if at pingu@x at horse@left at base@
-\newif\if at pingu@x at horse@right at base@
-\newif\if at pingu@x at horse@left at donkey@
-\newif\if at pingu@x at horse@right at donkey@
-\pingu at create@wing at extra{horse}{%
-    horse \@lr/.code                       = {\pingu at set@extra{horse\@lr}{true}\pingu at color{horse\@lr}{##1}},
-    horse \@lr/.default                    = pingu at bronze!80!pingu at black,
-    horse \@lr\space flip/.is if           = @pingu at x@horse@\@lr @flip@,
-    horse \@lr\space donkey/.is if         = @pingu at x@horse@\@lr @donkey@,
-    horse \@lr\space has base/.is if       = @pingu at x@horse@\@lr @base@,
-    horse \@lr\space draw/.code            = \pingu at color{horse\@lr @draw}{##1},%
-    horse \@lr\space line width/.code      = \@namedef{pingu at horse\@lr @x at line@width}{##1},%
-    horse \@lr\space mane/.code            = \pingu at color{horse\@lr @mane}{##1},%
-    horse \@lr\space mane draw/.code       = \pingu at color{horse\@lr @mane at draw}{##1},%
-    horse \@lr\space thatch/.code          = \pingu at color{horse\@lr @thatch}{##1},%
-    horse \@lr\space thatch draw/.code     = \pingu at color{horse\@lr @thatch at draw}{##1},%
-    horse \@lr\space tail/.code            = \pingu at color{horse\@lr @tail}{##1},%
-    horse \@lr\space tail draw/.code       = \pingu at color{horse\@lr @tail at draw}{##1},%
-    horse \@lr\space eyes/.code            = \pingu at color{horse\@lr @eyes}{##1},%
-    horse \@lr\space eye/.forward to       = /pingu/horse \@lr\space eyes,%
-    horse \@lr\space mouth/.code           = \pingu at color{horse\@lr @mouth}{##1},%
-    horse \@lr\space nose/.code            = \pingu at color{horse\@lr @nose}{##1},%
-    horse \@lr\space ears/.code            = \pingu at color{horse\@lr @ears}{##1},%
-    horse \@lr\space base/.code            = \pingu at color{horse\@lr @base}{##1},%
-    horse \@lr\space base draw/.code       = \pingu at color{horse\@lr @base at draw}{##1},%
-    horse \@lr\space base shade/.code      = \pingu at color{horse\@lr @base at shade}{##1},%
-    horse \@lr\space base shade draw/.code = \pingu at color{horse\@lr @base at shade@draw}{##1},%
-    horse \@lr\space front left hoof/.code = \pingu at color{horse\@lr @fl at hoof}{##1},%
-    horse \@lr\space front right hoof/.code= \pingu at color{horse\@lr @fr at hoof}{##1},%
-    horse \@lr\space back left hoof/.code  = \pingu at color{horse\@lr @bl at hoof}{##1},%
-    horse \@lr\space back right hoof/.code = \pingu at color{horse\@lr @br at hoof}{##1},%
-    horse \@lr\space front hoofs/.style    = {/pingu/horse \@lr\space front left hoof=##1,/pingu/horse \@lr\space front right hoof=##1},
-    horse \@lr\space back hoofs/.style     = {/pingu/horse \@lr\space back left hoof=##1,/pingu/horse \@lr\space back right hoof=##1},
-    horse \@lr\space hoofs/.style          = {/pingu/horse \@lr\space front hoofs=##1,/pingu/horse \@lr\space back hoofs=##1},
-    horse \@lr\space hoofs/.default        = gray!80!white,
-    % TODO: allow colors to be styles?
-    horse \@lr\space xshift/.code          = \@namedef{pingu at x@horse\@lr @xshift}{##1},
-    horse \@lr\space yshift/.code          = \@namedef{pingu at x@horse\@lr @yshift}{##1},
-    horse \@lr\space on base/.style        ={/pingu/horse \@lr\space yshift=4cm},
-}{horse \@lr\space draw=\csname pingu at color@horse\@lr\endcsname!80!pingu at black,horse \@lr\space mane=\csname pingu at color@horse\@lr\endcsname!86!pingu at white,horse \@lr\space mane draw=\csname pingu at color@horse\@lr @mane\endcsname!80!pingu at black,horse \@lr\space eyes=\csname pingu at color@horse\@lr @draw\endcsname,horse \@lr\space mouth=\csname pingu at color@horse\@lr @draw\endcsname,horse \@lr\space nose=\csname pingu at color@horse\@lr @draw\endcsname,horse \@lr\space ears=\csname pingu at color@horse\@lr\endcsname,horse \@lr\space thatch=\csname pingu at color@horse\@lr @mane\endcsname,horse \@lr\space thatch draw=\csname pingu at color@horse\@lr @thatch\endcsname!80!pingu at black,horse \@lr\space tail=\csname pingu at color@horse\@lr @mane\endcsname,horse \@lr\space tail draw=\csname pingu at color@horse\@lr @tail\endcsname!80!pingu at black,horse \@lr\space has base=false,horse \@lr\space base=lightgray!90!black,horse \@lr\space base draw=\csname pingu at color@horse\@lr @base\endcsname!91!pingu at black,horse \@lr\space base shade=lightgray!80!black,horse \@lr\space base shade draw=\csname pingu at color@horse\@lr @base at shade\endcsname!91!pingu at black,horse \@lr\space xshift=0pt,horse \@lr\space yshift=0pt,horse \@lr\space flip=\ifx\@lr\pingu at str@wing at left true\else false\fi,horse \@lr\space donkey=false,horse \@lr\space line width=1.75pt,horse \@lr\space hoofs=\@pingu at none}
-
-\def\pingu at draw@wi at horse#1{%
-    \pingu at setup@wing{horse}{#1}%
-\scope[scale=\pingu@@horse at scale,every path/.append style={line cap=round, line join=round},shift=(\pingu at name-wing-#1),rotate around={\@angle-5:(\pingu at name-wing-#1)}]
-\csname if at pingu@x at horse@#1 at flip@\endcsname
-\scope[xshift=-4cm-\csname pingu at x@horse#1 at xshift\endcsname,yshift=-42mm+\csname pingu at x@horse#1 at yshift\endcsname]
-\else
-\scope[xshift=4cm+\csname pingu at x@horse#1 at xshift\endcsname,yshift=-42mm+\csname pingu at x@horse#1 at yshift\endcsname,xscale=-1]
-\fi
-\csname if at pingu@x at horse@#1 at donkey@\endcsname
-    \@pingu@@horse@@donkey at true
-\fi
-    \edef\@pingu@@horse at lw{\csname pingu at horse#1 at x@line at width\endcsname}
-    \pingu@@drawer at horse{#1}
-    % TODO-SET: hoof
-\endscope\endscope
-}
-% todo: make statue extra
-% todo: make horse hat
-
-% to get on horse we create some kind of third wing item: 'on'
-% that will be used to initialize all of the colors and keys
-\newif\if at pingu@x at horse@on at flip@
-\newif\if at pingu@x at horse@on at base@
-\newif\if at pingu@x at horse@on at boundingbox@
-\newif\if at pingu@x at horse@on at donkey@
-% TODO: select keys
-% TODO: option so it does not affect the bounding box (default!)
-\pingu at create@extra{horseon}{%
-    on horse/.code                  = {\pingu at set@extra{horseon}{true}\pingu at color{horseon}{#1}},
-    on horse/.default               = pingu at bronze!80!pingu at black,
-    horse behind/.style             = {on horse=#1, on horse scale=.325, on horse yshift=6.15cm},
-    horse behind/.default           = pingu at bronze!80!pingu at black,
-    on horse flip/.is if            = @pingu at x@horse at on@flip@,
-    on horse donkey/.is if          = @pingu at x@horse at on@donkey@,
-    on horse has base/.is if        = @pingu at x@horse at on@base@,
-    on horse has bounding box/.is if = @pingu at x@horse at on@boundingbox@,
-    on horse draw/.code             = \pingu at color{horseon at draw}{#1},%
-    on horse line width/.code       = \@namedef{pingu at horseon@x at line@width}{#1},%
-    on horse mane/.code             = \pingu at color{horseon at mane}{#1},%
-    on horse mane draw/.code        = \pingu at color{horseon at mane@draw}{#1},%
-    on horse thatch/.code           = \pingu at color{horseon at thatch}{#1},%
-    on horse thatch draw/.code      = \pingu at color{horseon at thatch@draw}{#1},%
-    on horse tail/.code             = \pingu at color{horseon at tail}{#1},%
-    on horse tail draw/.code        = \pingu at color{horseon at tail@draw}{#1},%
-    on horse eyes/.code             = \pingu at color{horseon at eyes}{#1},%
-    on horse eye/.forward to        = /pingu/on horse eyes,%
-    on horse mouth/.code            = \pingu at color{horseon at mouth}{#1},%
-    on horse nose/.code             = \pingu at color{horseon at nose}{#1},%
-    on horse ears/.code             = \pingu at color{horseon at ears}{#1},%
-    on horse base/.code             = \pingu at color{horseon at base}{#1},%
-    on horse base draw/.code        = \pingu at color{horseon at base@draw}{#1},%
-    on horse base shade/.code       = \pingu at color{horseon at base@shade}{#1},%
-    on horse base shade draw/.code  = \pingu at color{horseon at base@shade at draw}{#1},%
-    on horse front left hoof/.code  = \pingu at color{horseon at fl@hoof}{#1},%
-    on horse front right hoof/.code = \pingu at color{horseon at fr@hoof}{#1},%
-    on horse back left hoof/.code   = \pingu at color{horseon at bl@hoof}{#1},%
-    on horse back right hoof/.code  = \pingu at color{horseon at br@hoof}{#1},%
-    on horse front hoofs/.style     = {/pingu/on horse front left hoof=#1,/pingu/on horse front right hoof=#1},
-    on horse back hoofs/.style      = {/pingu/on horse back left hoof=#1,/pingu/on horse back right hoof=#1},
-    on horse hoofs/.style           = {/pingu/on horse front hoofs=#1,/pingu/on horse back hoofs=#1},
-    on horse hoofs/.default         = gray!80!white,
-    on horse xshift/.code           = \@namedef{pingu at x@horseon at xshift}{#1},
-    on horse yshift/.code           = \@namedef{pingu at x@horseon at yshift}{#1},
-    on horse scale/.code            = \@namedef{pingu at x@horseon at scale}{#1}
-}{on horse draw=\pingu at color@horseon!80!pingu at black,on horse mane=\pingu at color@horseon!86!pingu at white,on horse mane draw=\pingu at color@horseon at mane!80!pingu at black,on horse eyes=\pingu at color@horseon at draw,on horse mouth=\pingu at color@horseon at draw,on horse nose=\pingu at color@horseon at draw,on horse ears=\pingu at color@horseon,on horse thatch=\pingu at color@horseon at mane,on horse thatch draw=\pingu at color@horseon at thatch!80!pingu at black,on horse tail=\pingu at color@horseon at mane,on horse tail draw=\pingu at color@horseon at tail!80!pingu at black,on horse has base=false,on horse base=lightgray!90!black,on horse base draw=\pingu at color@horseon at base!91!pingu at black,on horse base shade=lightgray!80!black,on horse base shade draw=\pingu at color@horseon at base@shade!91!pingu at black,on horse xshift=0pt,on horse yshift=0pt,on horse flip=false,on horse scale=0.75,on horse has bounding box=false,on horse donkey=false,on horse line width=1.75pt,on horse hoofs=\@pingu at none}
-
-
-\def\pingu at draw@eb at horseon{%
-\pingu at layer{background}[scale=\pingu at x@horseon at scale,every path/.append style={line cap=round, line join=round},shift=(\pingu at name-bottom-center)]
-\if at pingu@x at horse@on at donkey@
-    \@pingu@@horse@@donkey at true
-\fi
-\if at pingu@x at horse@on at flip@
- \scope[xshift=-45mm-\pingu at x@horseon at xshift,yshift=-67mm+\pingu at x@horseon at yshift,xscale=\if at pingu@x at horse@on at donkey@ 1.1\else1\fi,yscale=\if at pingu@@horse@@donkey at .9\else1\fi]
- \else
- \scope[xshift=45mm+\pingu at x@horseon at xshift,yshift=-67mm+\pingu at x@horseon at yshift,xscale=\if at pingu@x at horse@on at donkey@-1.1\else-1\fi,yscale=\if at pingu@@horse@@donkey at .9\else1\fi]
- \fi
-\edef\@pingu@@horse at lw{\pingu at horseon@x at line@width}
-\if at pingu@x at horse@on at boundingbox@\else\pgfinterruptboundingbox\fi
-    \pingu@@drawer at horse{on}
-\if at pingu@x at horse@on at boundingbox@\else\endpgfinterruptboundingbox\fi
-\endscope\endpingu at layer
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-magic.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-magic.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-magic.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,14 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@wing at extra{handcast}{%
-  handcast \@lr/.forward to    = /pingu/hand cast \@lr,
-  hand cast \@lr/.code         = {\pingu at set@extra{handcast\@lr}{true}\@namedef{pingu at handcast@\@lr}{##1}},
-  hand cast \@lr/.default      = {X},
-  handcast \@lr\space color/.forward to    = /pingu/hand cast \@lr\space color,
-  hand cast \@lr\space color/.code = \pingu at color{handcast@\@lr @color}{##1},%
-}{hand cast \@lr\space color=pingu at purple}
-\def\pingu at draw@wi at handcast#1{%
-    \pingu at setup@wing{handcast}{#1}%
-    \path[rotate around={\@angle:(\pingu at name-wing-#1)}] (\pingu at name-wing-#1)++(0,5mm) node[\csname pingu at color@handcast@#1 at color\endcsname] {\@nameuse{pingu at handcast@#1}};
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-medieval.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-medieval.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-medieval.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,205 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\newif\if at pingu@x at rook@draw at hatch@
-\pingu at create@extra{rook}{%
-    rook/.code          = \pingu at set@extra{rook}{true}\pingu at color{rook}{#1},
-    rook/.default       = pingu at silver,
-    rook back/.code     = \pingu at color{rook at back}{#1},
-    rook hatch/.is if   = @pingu at x@rook at draw@hatch@,
-    rook hatch/.default = true,
-    rook shade/.code    = \pingu at color{rook at shade}{#1},
-}{rook back=\pingu at color@rook!85!black,rook shade=\pingu at color@rook!92!black,rook hatch}
-\def\pingu at draw@ea at rook{%
-\if at pingu@do at back@\else\if at pingu@x at rook@draw at hatch@\else\pingu at layer{foreground}[]\fi\fi
-    \pingu at block[even odd rule]{\pingu at color@rook} ([xshift=-.2mm]\pingu at name-wings-side-right|-\pingu at name-foot-right) [rounded corners=\p@] to[bend right=9] coordinate[pos=.15] (@tmpe) ([xshift=.2mm]\pingu at name-wings-side-left|-\pingu at name-foot-left) [sharp corners] to[bend right=1.5*\pingu at bend] (\pingu at name-wings-side-left|-\pingu at name-head-top) coordinate (@tmp) to[bend left=3] coordinate[pos=.3] (@tmpc) coordinate[pos=.7] (@tmpd) (\pingu at name-wings-side-right|-\pingu at name-head-top) [rounded corners=\p@] coordinate (@tmpb) to[bend right=1.5*\pingu at bend] cycle \if at pingu@x at rook@draw at hatch@ (\pingu at name-head-center) ellipse[x radius=.8\pingu at w@half, y radius=.45\pingu at w@half]\fi;
-    \pingu at block{\pingu at color@rook} (@tmp) to[bend right=2] ++(0,2mm) [rounded corners=.25mm] to[bend left=1] ++(-2mm,-.1mm) -- ++(0,-2.25mm);
-    \pingu at block{\pingu at color@rook} (@tmpb) to[bend left=2] ++(0,2mm) [rounded corners=.25mm] to[bend right=1] ++(2mm,-.1mm) -- ++(0,-2.25mm);
-
-    \pingu at block{\pingu at color@rook} (@tmpc)++(-2mm,-.25mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend right=1] ++(4mm,.05mm) -- ++(0,-2.25mm);
-    \pingu at block{\pingu at color@rook} (@tmpd)++(2mm,-.25mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend left=1] ++(-4mm,-.05mm) -- ++(0,-2.25mm);
-
-    % custom shade boi (or gurl, wateva)
-    \scope
-        \clip ([xshift=-.2mm]\pingu at name-wings-side-right|-\pingu at name-foot-right) [rounded corners=\p@] to[bend right=5] ([xshift=.2mm]\pingu at name-wings-side-left|-\pingu at name-foot-left) [sharp corners] to[bend right=1.5*\pingu at bend] (\pingu at name-wings-side-left|-\pingu at name-head-top) -- ++(0,2mm) to[bend left=3] (\pingu at name-wings-side-right|-\pingu at name-head-top) to[bend right=1.5*\pingu at bend] cycle;
-        \if at pingu@x at rook@draw at hatch@
-        \clip[/pingu/@invclip] (\pingu at name-head-center) ellipse[x radius=.8\pingu at w@half, y radius=.45\pingu at w@half];
-        \fi
-        \pingu at block{\pingu at color@rook at shade} (@tmpe) to[bend right=5] ([xshift=.2mm]@tmpe-|@tmp) to[bend right=1.5*\pingu at bend] ([yshift=2mm]@tmp) to[bend left=10] cycle;
-    \endscope
-    \if at pingu@do at back@\else\if at pingu@x at rook@draw at hatch@\else\endpingu at layer\fi\fi
-
-    \pingu at layer{background}[]
-        \pingu at block{\pingu at color@rook at back} (@tmp) to[bend right=3] coordinate[pos=.3] (@tmpc) coordinate[pos=.7] (@tmpd) (@tmpb) to[bend right=30] cycle;
-        \pingu at block{\pingu at color@rook at back} (@tmpb) to[bend left=2] ++(0,2mm) [rounded corners=.25mm] to[bend left=1] ++(2mm,.1mm) -- ++(0,-2.25mm);
-        \pingu at block{\pingu at color@rook at back} (@tmp) to[bend right=2] ++(0,2mm) [rounded corners=.25mm] to[bend right=1] ++(-2mm,.1mm) -- ++(0,-2.25mm);
-
-        \pingu at block{\pingu at color@rook at back} (@tmpc)++(-2mm,-.49mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend right=1] ++(4mm,.05mm) -- ++(0,-2.25mm);
-        \pingu at block{\pingu at color@rook at back} (@tmpd)++(2mm,-.49mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend left=1] ++(-4mm,-.05mm) -- ++(0,-2.25mm);
-    \endpingu at layer
-}
-
-\newif\if at pingu@x at crown@ddd@ % 3d
-\newif\if at pingu@x at crown@shade@ % 3d
-\pingu at create@extra{crown}{%
-  crown/.code             = \pingu at set@extra{crown}{true}\pingu at color{crown}{#1},
-  crown/.default          = pingu at yellow,
-  crown 3d/.is if         = @pingu at x@crown at ddd@, crown 3d/.default = true,
-  crown 2d/.style         = {crown=#1, crown 3d=false},
-  crown 2d/.default       = pingu at yellow,
-  crown back/.code        = \pingu at color{crown at back}{#1},
-  crown front bend/.code  = \def\pingu at x@crown at f@bend{#1},
-  crown back bend/.code   = \def\pingu at x@crown at b@bend{#1},
-  crown gem shade/.is if  = @pingu at x@crown at shade@, crown gem shade/.default = true,
-  crown gem colors/.code n args = 7{\pingu at color{crown at gem@a}{#1}\pingu at color{crown at gem@b}{#2}\pingu at color{crown at gem@c}{#3}\pingu at color{crown at gem@d}{#4}\pingu at color{crown at gem@e}{#5}\pingu at color{crown at gem@f}{#6}\pingu at color{crown at gem@g}{#7}},
-  crown gem ring/.code   = \pingu at color{crown at gem@ring}{#1},
-  crown position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@crown at angle{#1}\def\pingu at x@crown at xshift{#2}\def\pingu at x@crown at yshift{#3}\def\pingu at x@crown at scale{#4}},
-}{crown position={-9:(1mm,0mm)1},crown front bend=16,crown back bend=9,crown back=\pingu at color@crown!93!black,crown 3d,crown gem colors={pingu at purple}{pingu at blue}{pingu at green}{pingu at purple}{pingu at green}{pingu at blue}{pingu at purple},crown gem ring=\pingu at color@crown!85!white,crown gem shade}
-
-% color | bend1 | bend1
-\def\pingu at draw@ea at crown@s#1#2#3{
-\pingu at block{#1} [rounded corners=.2mm](-6.25mm,-.25cm) to[bend left=2] ++(0,3.125mm) to[bend #2=\pingu at x@crown at f@bend]
-    coordinate[pos=0] (r2)  coordinate[pos=.07] (r1)
-    coordinate[pos=.14-.07] (a1)  coordinate[pos=.14] (a2) coordinate[pos=.14+.07] (a3)
-    coordinate[pos=.30-.08] (b1)  coordinate[pos=.30] (b2) coordinate[pos=.30+.08] (b3)
-    coordinate[pos=.50- .1] (c1)  coordinate[pos=.50] (x2) coordinate[pos=.50+ .1] (c3)
-    coordinate[pos=.69-.08] (d1)  coordinate[pos=.69] (d2) coordinate[pos=.69+.08] (d3)
-    coordinate[pos=.85-.07] (e1)  coordinate[pos=.85] (e2) coordinate[pos=.85+.07] (e3)
-    coordinate[pos=1] (l2)  coordinate[pos=.93] (l1)
-    ++(1.375cm,0) to[bend left=2] ++(0,-3.125mm) to[bend #3=\pingu at x@crown at f@bend] (-6mm,-.25cm) -- cycle;
-\path (x2)++(0,.9mm) coordinate (c2);
-\@for\a:={a,b,c,d,e}\do{
-    \pingu at block{#1} ([yshift=-.1mm]\a1) to[bend right=\pingu at x@crown at f@bend] ([yshift=-.1mm]\a3) to[bend right=2] ([yshift=1.85mm]\a2) to[bend right=2] ([yshift=-.1mm]\a1) -- cycle;
-}
-\pingu at block{#1} (l2)++(0,-.2mm) to[bend right=2] ++(0,1.95mm) -- (l1) -- cycle;
-\pingu at block{#1} (r2)++(0,-.2mm) to[bend left=2] ++(0,1.95mm) -- (r1) -- cycle;
-}
-
-% color | at | shift | scale
-\def\pingu at draw@ea at crown@g#1#2#3#4{
-\scope[shift={(#22)},shift={(#3,-.33mm)}]
-    \pingu at block{\pingu at color@crown at gem@ring}  ellipse [x radius=.715mm*#4, y radius=.925mm*#4];
-    \pingu at block{#1}  ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
-    \protected at edef\@tmp{#1}\ifx\@tmp\@pingu at none\else
-    \if at pingu@x at crown@shade@
-    \shade[ball color=#1,fill opacity=.45,shading angle=-95]  ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
-    \else
-    \pingu at block[rotate around={7:(42:.3mm*#4 and .4mm*#4)}]{#1!45!pingu at white} (42:.3mm*#4 and .4mm*#4) ellipse[x radius=.17mm*#4, y radius=.24mm*#4];
-    \pingu at block[rotate around={7:(232:.275mm*#4 and .35mm*#4)}]{#1!45!pingu at white} (232:.275mm*#4 and .35mm*#4) ellipse[x radius=.06mm*#4, y radius=.085mm*#4];
-    \fi\fi
-\endscope
-}
-\def\pingu at draw@ea at crown{%
-\scope[rotate around={\pingu at x@crown at angle:(\pingu at name-head-top)},%
-       shift={(\pingu at name-head-top)},
-       shift={(\pingu at x@crown at xshift,\pingu at x@crown at yshift)},
-       scale=\pingu at x@crown at scale]
-% draw front
-\if at pingu@x at crown@ddd@
-    \pingu at draw@ea at crown@s{\pingu at color@crown}{right}{left}
-    \def\@tmpa{.05mm}\def\@tmpb{.025mm}
-\else
-    \pingu at draw@ea at crown@s{\pingu at color@crown}{left}{right}
-    \def\@tmpa{-.015mm}\def\@tmpb{-.035mm}
-\fi
-% draw the emeralds
-\pingu at draw@ea at crown@g{\pingu at color@crown at gem@b}{a}{-\@tmpa}1
-\pingu at draw@ea at crown@g{\pingu at color@crown at gem@c}{b}{-\@tmpb}1
-\pingu at draw@ea at crown@g{\pingu at color@crown at gem@d}{x}{\z@}{1.35}
-\pingu at draw@ea at crown@g{\pingu at color@crown at gem@e}{d}{\@tmpb}1
-\pingu at draw@ea at crown@g{\pingu at color@crown at gem@f}{e}{\@tmpa}1
-\pingu at layer{background}[]
-\pingu at block{\pingu at color@crown at gem@a} (r2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
-\pingu at block{\pingu at color@crown at gem@ring} (r2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
-\pingu at block{\pingu at color@crown at gem@g} (l2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
-\pingu at block{\pingu at color@crown at gem@ring} (l2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
-% draw back if 3d
-\if at pingu@x at crown@ddd@
-    \pingu at draw@ea at crown@s{\pingu at color@crown at back}{left}{right}
-\fi
-\endpingu at layer
-\endscope
-}
-
-\newif\if at pingu@x at princesscrown@ddd@
-\newif\if at pingu@x at princesscrown@shade@
-\newif\if at pingu@x at princesscrown@bobbles@
-\pingu at create@extra{princesscrown}{%
-  princess crown/.code    = \pingu at set@extra{princesscrown}{true}\pingu at color{princesscrown}{#1},
-  princess crown/.default = pingu at yellow,
-  princess crown 3d/.is if= @pingu at x@princesscrown at ddd@, princess crown 3d/.default = true,
-  princess crown 2d/.style   = {princess crown=#1, princess crown 3d=false},
-  princess crown 2d/.default = pingu at yellow,
-  princess crown back/.code  = \pingu at color{princesscrown at back}{#1},
-  princess crown front bend/.code  = \def\pingu at x@princesscrown at f@bend{#1},
-  princess crown back bend/.code   = \def\pingu at x@princesscrown at b@bend{#1},
-  princess crown gem shade/.is if  = @pingu at x@princesscrown at shade@,
-  princess crown bobbles/.is if = @pingu at x@princesscrown at bobbles@,
-  princess crown gem shade/.default = true,
-  princess crown gem colors/.code n args = 5{\pingu at color{princesscrown at gem@a}{#1}\pingu at color{princesscrown at gem@b}{#2}\pingu at color{princesscrown at gem@c}{#3}\pingu at color{princesscrown at gem@d}{#4}\pingu at color{princesscrown at gem@e}{#5}},
-  princess crown gem ring/.code   = \pingu at color{princesscrown at gem@ring}{#1},
-  princess crown position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@princesscrown at angle{#1}\def\pingu at x@princesscrown at xshift{#2}\def\pingu at x@princesscrown at yshift{#3}\def\pingu at x@princesscrown at scale{#4}},
-}{princess crown position={-9:(1mm,0mm)1},princess crown front bend=12,princess crown back bend=7,princess crown back=\pingu at color@princesscrown!93!black,princess crown 3d,princess crown gem colors={pingu at purple}{pingu at blue}{pingu at green}{pingu at blue}{pingu at purple},princess crown gem ring=\pingu at color@princesscrown!85!white,princess crown gem shade,princess crown bobbles}
-
-% color | bend1 | bend2
-\def\pingu at draw@ea at princesscrown@s#1#2#3{
-\pingu at block{#1} [rounded corners=.2mm](-3.25mm,-.15cm) to[bend left=2] ++(0,2.32mm) to[bend #2=\pingu at x@princesscrown at f@bend]
-    coordinate[pos=0] (r2)  coordinate[pos=.065] (r1)
-    coordinate[pos=.11] (a1) coordinate[pos=.2] (a2) coordinate[pos=.29] (a3)
-    coordinate[pos=.35] (b1) coordinate[pos=.50] (x2) coordinate[pos=.65] (b3)
-    coordinate[pos=.71] (c1) coordinate[pos=.8] (c2) coordinate[pos=.89] (c3)
-    coordinate[pos=1] (l2)  coordinate[pos=.93] (l1)
-    ++(8mm,0) to[bend left=2] ++(0,-2.32mm) to[bend #3=\pingu at x@princesscrown at f@bend] (-3mm,-.15cm) -- cycle;
-\path (x2)++(0,.9mm) coordinate (b2);
-\@for\a:={a,b,c}\do{
-    \pingu at block{#1} ([yshift=-.1mm]\a1) to[bend right=\pingu at x@princesscrown at f@bend] ([yshift=-.1mm]\a3) to[bend left=2] ([yshift=2.15mm]\a2) to[bend left=2] ([yshift=-.1mm]\a1) -- cycle;
-    \if at pingu@x at princesscrown@bobbles@\pingu at block{#1} ([yshift=2.15mm]\a2) circle [radius=.45\p@];\fi
-}
-\pingu at block{#1} (l2)++(0,-.2mm) to[bend left=2] ++(0,2.25mm) -- (l1) -- cycle;
-\pingu at block{#1} (r2)++(0,-.2mm) to[bend right=2] ++(0,2.25mm) -- (r1) -- cycle;
-\if at pingu@x at princesscrown@bobbles@\pingu at block{#1} (l2)++(0,2.05mm) circle [radius=.45\p@];
-\pingu at block{#1} (r2)++(0,2.05mm) circle [radius=.45\p@];\fi
-}
-
-% draw single gem; color | at | shift | scale
-\def\pingu at draw@ea at princesscrown@g#1#2#3#4{
-\scope[shift={(#22)},shift={(#3,-.33mm)}]
-    \pingu at block{\pingu at color@princesscrown at gem@ring} ellipse [x radius=.715mm*#4, y radius=.925mm*#4];
-    \pingu at block{#1} ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
-    \protected at edef\@tmp{#1}\ifx\@tmp\@pingu at none\else
-    \if at pingu@x at princesscrown@shade@
-    \shade[ball color=#1,fill opacity=.45,shading angle=-95] ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
-    \else
-    \pingu at block[rotate around={7:(42:.3mm*#4 and .4mm*#4)}]{#1!45!pingu at white} (42:.3mm*#4 and .4mm*#4) ellipse[x radius=.17mm*#4, y radius=.24mm*#4];
-    \pingu at block[rotate around={7:(232:.275mm*#4 and .35mm*#4)}]{#1!45!pingu at white} (232:.275mm*#4 and .35mm*#4) ellipse[x radius=.06mm*#4, y radius=.085mm*#4];
-    \fi\fi
-\endscope}
-\def\pingu at draw@ea at princesscrown{%
-\scope[rotate around={\pingu at x@princesscrown at angle:(\pingu at name-head-top)},%
-       shift={(\pingu at name-head-top)},
-       shift={(\pingu at x@princesscrown at xshift,\pingu at x@princesscrown at yshift)},
-       scale=\pingu at x@princesscrown at scale]
-% draw front
-\if at pingu@x at princesscrown@ddd@
-    \pingu at draw@ea at princesscrown@s{\pingu at color@princesscrown}{right}{left}
-    \def\@tmpa{.05mm}
-\else
-    \pingu at draw@ea at princesscrown@s{\pingu at color@princesscrown}{left}{right}
-    \def\@tmpa{-.015mm}
-\fi
-% draw the emaralds
-\pingu at draw@ea at princesscrown@g{\pingu at color@princesscrown at gem@b}{a}{-\@tmpa}{.95}
-\pingu at draw@ea at princesscrown@g{\pingu at color@princesscrown at gem@c}{x}{\z@}{1.3}
-\pingu at draw@ea at princesscrown@g{\pingu at color@princesscrown at gem@d}{c}{\@tmpa}{.95}
-\pingu at layer{background}[]
-\pingu at block{\pingu at color@princesscrown at gem@a} (r2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
-\pingu at block{\pingu at color@princesscrown at gem@ring} (r2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
-\pingu at block{\pingu at color@princesscrown at gem@e} (l2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
-\pingu at block{\pingu at color@princesscrown at gem@ring} (l2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
-% draw back if 3d
-\if at pingu@x at princesscrown@ddd@
-    \pingu at draw@ea at princesscrown@s{\pingu at color@princesscrown at back}{left}{right}
-\fi
-\endpingu at layer
-\endscope
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-movement.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-movement.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-movement.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,75 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at bodytype@add{tilt-right}{%
-\pingu at block[save path=\pingu at lowerpingu]{\pingu at color@body at main} (0,\pingu at outer@off)
-% left side
-to[bend right=\pingu at bend] coordinate[pos=.775] (\pingu at name-waist-right) ++(0,-\pingu at side@h at half-\pingu at outer@off)
-% feety stuff
-arc (180:270:\pingu at foot@outer at w{}-1mm and \pingu at foot@outer at h) coordinate[yshift=-.2mm] (\pingu at name-foot-right)
-arc (270:332:\pingu at foot@inner at w{}+1mm and 2.5*\pingu at foot@inner at h)
-coordinate (\pingu at name-bottom-center)
-arc (208:270:\pingu at foot@inner at w{} and 1.25*\pingu at foot@inner at h) coordinate[yshift=-.4mm] (\pingu at name-foot-left)
-arc (270:360:\pingu at foot@outer at w{} and 1.125*\pingu at foot@outer at h)%
-% right side
-to[bend right=\pingu at bend] coordinate[pos=.225] (\pingu at name-waist-left) ++(0,\pingu at side@h at half+\pingu at outer@off)
-% coordinate
-coordinate (\pingu at name-wings-side-left)
--- (0,\pingu at outer@off) coordinate (\pingu at name-wings-side-right) coordinate[pos=.5] (\pingu at name-head-center) -- cycle;
-
-\pingu at block[save path=\pingu at upperpingu]{\pingu at color@body at head} (\pingu at name-head-center)
-++(0,\pingu at head@h at half) coordinate (\pingu at name-head-top)
-arc(90:450:\pingu at w@half{} and \pingu at head@h at half)
-coordinate[pos=\pinguanglehr] (\pingu at name-head-right)
-coordinate[pos=\pinguanglehl] (\pingu at name-head-left);
-
-\coordinate (\pingu at name-belly-back) at (\pingu at w@half,-1cm);
-\coordinate (\pingu at name-belly-center) at (\pingu at w@half,-.68\pingu at side@h at half);
-\pingu at block[save path=\pingu at whitepingu]{\pingu at color@body at front} (\pingu at name-belly-back)++(-\pingu at w@half+\pingu at one,\pingu at lower@off) to[bend right=.8\pingu at bend] ++(-.05mm,1.05cm-\pingu at side@h at half-\pingu at lower@off) arc (180:270:3.7mm and 2mm) arc (270:331:5mm and 3*.85mm) arc (207:270:5.3mm and 1.125*.85mm) arc (270:360:4.025mm and 1.25*2mm) to[bend right=.8\pingu at bend] ++(0,\pingu at side@h at half-1.05cm+\pingu at lower@off) arc (0:180:\pingu at w@half-.96mm and \pingu at w@half-\pingu at one) -- cycle;
-
-\coordinate (\pingu at name-eye-back-right) at ([xshift=-.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
-\coordinate (\pingu at name-eye-back-left) at ([xshift=.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
-
-\coordinate (\pingu at name-head-back-con-right) at ([xshift=-\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-right);
-\coordinate (\pingu at name-head-back-con-left) at ([xshift=\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-left);
-
-\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-right)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
-\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-left)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
-}
-
-
-\pingu at bodytype@add{tilt-left}{%
-\pingu at block[save path=\pingu at lowerpingu]{\pingu at color@body at main} (0,\pingu at outer@off)
-% left side
-to[bend right=\pingu at bend] coordinate[pos=.775] (\pingu at name-waist-right) ++(0,-\pingu at side@h at half-\pingu at outer@off)
-% feety stuff
-arc (180:270:\pingu at foot@outer at w{}-1mm and 1.25*\pingu at foot@outer at h) coordinate[yshift=-.2mm] (\pingu at name-foot-right)
-arc (270:332:\pingu at foot@inner at w{}+1mm and 1.125*\pingu at foot@inner at h)
-coordinate (\pingu at name-bottom-center)
-arc (208:270:\pingu at foot@inner at w{} and 2.5*\pingu at foot@inner at h) coordinate[yshift=-.4mm] (\pingu at name-foot-left)
-arc (270:360:\pingu at foot@outer at w{} and \pingu at foot@outer at h)%
-% right side
-to[bend right=\pingu at bend] coordinate[pos=.225] (\pingu at name-waist-left) ++(0,\pingu at side@h at half+\pingu at outer@off)
-% coordinate
-coordinate (\pingu at name-wings-side-left)
--- (0,\pingu at outer@off) coordinate (\pingu at name-wings-side-right) coordinate[pos=.5] (\pingu at name-head-center) -- cycle;
-
-\pingu at block[save path=\pingu at upperpingu]{\pingu at color@body at head} (\pingu at name-head-center)
-++(0,\pingu at head@h at half) coordinate (\pingu at name-head-top)
-arc(90:450:\pingu at w@half{} and \pingu at head@h at half)
-coordinate[pos=\pinguanglehr] (\pingu at name-head-right)
-coordinate[pos=\pinguanglehl] (\pingu at name-head-left);
-
-\coordinate (\pingu at name-belly-back) at (\pingu at w@half,-1cm);
-\coordinate (\pingu at name-belly-center) at (\pingu at w@half,-.68\pingu at side@h at half);
-\pingu at block[save path=\pingu at whitepingu]{\pingu at color@body at front} (\pingu at name-belly-back)++(-\pingu at w@half+\pingu at one,\pingu at lower@off) to[bend right=.8\pingu at bend] ++(-.05mm,1.05cm-\pingu at side@h at half-\pingu at lower@off) arc (180:270:4.025mm and 1.25*2mm) arc (270:331:5.25mm and 1.125*.85mm) arc (207:270:5mm and 3*.85mm) arc (270:360:3.75mm and 2mm) to[bend right=.8\pingu at bend] ++(0,\pingu at side@h at half-1.05cm+\pingu at lower@off) arc (0:180:\pingu at w@half-.96mm and \pingu at w@half-\pingu at one) -- cycle;
-
-\coordinate (\pingu at name-eye-back-right) at ([xshift=-.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
-\coordinate (\pingu at name-eye-back-left) at ([xshift=.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
-
-\coordinate (\pingu at name-head-back-con-right) at ([xshift=-\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-right);
-\coordinate (\pingu at name-head-back-con-left) at ([xshift=\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-left);
-
-\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-right)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
-\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-left)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-safe.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-safe.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-safe.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,30 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{mask}{%
-    mask/.code    	       = {\pingu at set@extra{mask}{true}\pingu at color{mask}{#1}},
-    mask/.default          = pingu at white!61!gray,%
-    mask band/.code        = \pingu at color{mask at band}{#1},%
-    mask line width/.code  = \def\pingu at x@mask at line@width{#1},%
-    mask band inner/.code  = \pingu at color{mask at band@inner}{#1},%
-    mask band outer/.code  = \pingu at color{mask at band@outer}{#1}%
-}{mask band=\pingu at color@body at main, mask band inner=\pingu at color@mask at band!60!\pingu at color@mask, mask band outer=\pingu at color@mask at band!82!\pingu at color@mask,mask line width=.565pt}
-
-\def\pingu at draw@ea at mask{%
-\pingu at block{\pingu at color@mask} [rounded corners=.8mm] ([xshift=-5mm,yshift=.75mm]\pingu at name-bill) coordinate (@ul) [rounded corners=.1mm]-- ++(3.5mm,.55mm) to[bend left=3] ++(3mm,0) -- ++(3.5mm,-.55mm) coordinate (@ur) -- ++(0,-4.25mm)[rounded corners=.8mm] coordinate (@lr)  -- ++(-3.5mm,-.45mm) to[bend left=3] ++(-3mm,0) [rounded corners=.1mm] -- ++(-3.5mm,.45mm) coordinate (@ll) -- cycle;
-\scope
-\clip[use path=\pingu at upperpingu];
-\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=-.1mm,xshift=.2mm]@ul) to[bend left=3] ([yshift=-1.1mm]\pingu at name-wings-side-right);
-\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=-.1mm,xshift=-.2mm]@ur) to[bend right=3]  ([yshift=-1.1mm]\pingu at name-wings-side-left);
-\endscope\scope
-\clip[use path=\pingu at lowerpingu];
-\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=.01mm,xshift=.2mm]@ll) to[bend left=3]  ([yshift=2mm]\pingu at name-wing-right-start);
-\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=.01mm,xshift=-.2mm]@lr) to[bend right=3] ([yshift=2mm]\pingu at name-wing-left-start);
-\endscope
-% TODO: fix this sloppy overwrite
-\pingu at block{\pingu at color@mask} [rounded corners=.8mm] ([xshift=-5mm,yshift=.75mm]\pingu at name-bill) coordinate (@ul) [rounded corners=.1mm]-- ++(3.5mm,.55mm) to[bend left=3] ++(3mm,0) -- ++(3.5mm,-.55mm) coordinate (@ur) -- ++(0,-4.25mm)[rounded corners=.8mm] coordinate (@lr)  -- ++(-3.5mm,-.45mm) to[bend left=3] ++(-3mm,0) [rounded corners=.1mm] -- ++(-3.5mm,.45mm) coordinate (@ll) -- cycle;
-\pingu at draw[very thin]{\pingu at color@mask at band@inner} ([xshift=-5mm,yshift=.75mm-4.25mm/2]\pingu at name-bill) to[bend right=1] ++(10mm,0);
-\foreach \i/\b/\c in {1.6mm/very thin/\pingu at color@mask at band@inner,.8mm/very thin/\pingu at color@mask at band@inner,0mm//\pingu at color@mask at band@outer} {
-\pingu at draw[\b]{\c} [rounded corners=.8mm] ([xshift=-5mm,yshift=.75mm-\i]\pingu at name-bill) [rounded corners=.1mm]-- ++(3.5mm,.55mm) to[bend left=3] ++(3mm,0) -- ++(3.5mm,-.55mm) -- ++(0,-4.25mm+2*\i)[rounded corners=.8mm]  -- ++(-3.5mm,-.45mm) to[bend left=3] ++(-3mm,0) [rounded corners=.1mm] -- ++(-3.5mm,.45mm) -- cycle;
-}
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-science-fiction.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-science-fiction.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-science-fiction.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,190 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\newif\if at pingu@x at lightsaber@glow at left
-\newif\if at pingu@x at lightsaber@glow at right
-\newif\if at pingu@x at lightsaber@double at left
-\newif\if at pingu@x at lightsaber@double at right
-\def\pingu at x@saberglow at w@half{.9mm}
-\def\pingulightsaberfactor{.013}
-\pingu at create@wing at extra{lightsaber}{%
-  lightsaber \@lr/.code                = {\pingu at set@extra{lightsaber\@lr}{true}\pingu at color{lightsaber\@lr}{##1}},
-  lightsaber \@lr/.default             = pingu at blue,
-  lightsaber \@lr\space handle/.code   = \pingu at color{lightsaber\@lr @handle}{##1},%
-  lightsaber \@lr\space deco/.code     = \pingu at color{lightsaber\@lr @deco}{##1},%
-  lightsaber \@lr\space ribbs/.code    = \pingu at color{lightsaber\@lr @ribbs}{##1},%
-  lightsaber \@lr\space button/.code   = \pingu at color{lightsaber\@lr @button}{##1},%
-  lightsaber \@lr\space button b/.code   = \pingu at color{lightsaber\@lr @button at b}{##1},%
-  lightsaber \@lr\space color b/.code   = \pingu at color{lightsaber\@lr @color at b}{##1},%
-  lightsaber \@lr\space length/.code   = {\@namedef{pingu at x@lightsaber at length@\@lr}{##1}},%
-  lightsaber \@lr\space length b/.code   = {\@namedef{pingu at x@lightsaber at length@b@\@lr}{##1}},%
-  lightsaber \@lr\space yshift/.code   = {\@namedef{pingu at x@lightsaber at yshift@\@lr}{##1}},%
-  lightsaber \@lr\space glow/.is if    = @pingu at x@lightsaber at glow@\@lr,%
-  lightsaber \@lr\space double/.is if  = @pingu at x@lightsaber at double@\@lr,%
-  lightsaber \@lr\space glow core/.code   = \pingu at color{lightsaber\@lr @glow at core}{##1},%
-  lightsaber \@lr\space solid/.style = {/pingu/lightsaber \@lr\space glow=false},
-  lightsaber \@lr\space disabled/.style = {/pingu/lightsaber \@lr\space solid,/pingu/lightsaber \@lr=\@pingu at none},
-  lightsaber \@lr\space outer glow factor/.code  = {\@namedef{pingu at x@lightsaber at ogf@\@lr}{##1}}%
-}{lightsaber \@lr\space handle=pingu at silver, lightsaber \@lr\space deco=pingu at silver!12!pingu at black, lightsaber \@lr\space button=pingu at red!85!pingu at black,lightsaber \@lr\space button b=pingu at red!85!pingu at black, lightsaber \@lr\space ribbs=pingu at silver!50!pingu at black,lightsaber \@lr\space length=2cm,lightsaber \@lr\space glow=\ifpengu at setup@glows@ true\else false\fi,lightsaber \@lr\space glow core=white,lightsaber \@lr\space outer glow factor=\pingulightsaberfactor,lightsaber \@lr\space yshift=0pt,lightsaber \@lr\space length b=\csname pingu at x@lightsaber at length@\@lr\endcsname,lightsaber \@lr\space color b=\noexpand\@col}
-
-% #region lightsaber base
-\def\pingu at draw@wi at lightsaber@base#1{%
-% deco-elements
-    % base
-    \pingu at block{\csname pingu at color@lightsaber#1 at deco\endcsname}(\pingu at name-wing-#1)++(-.4mm,2.65mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) -- ++(0,-5mm) -- ++(.8mm,0) |- cycle;
-    \if at pingu@wing at item@side at left@
-    % ribbs; single path saves memory :D
-    \pingu at block{\csname pingu at color@lightsaber#1 at ribbs\endcsname}(\pingu at name-wing-#1)++(-.40mm,2.225mm+\csname pingu at x@lightsaber at yshift@#1\endcsname)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
-    arc(90:270:.075mm) -- ++(.8mm,0) |- cycle;
-    % button
-    \pingu at block{\csname pingu at color@lightsaber#1 at button@b\endcsname}(\pingu at name-wing-#1)++(.49mm,-1.75mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
-    \pingu at block{\csname pingu at color@lightsaber#1 at button\endcsname}(\pingu at name-wing-#1)++(.49mm,1.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
-    % cover
-    \pingu at block{\csname pingu at color@lightsaber#1 at handle\endcsname}(\pingu at name-wing-#1)++(-.5mm,2.65mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) arc(180:90:.15mm) -- ++(.7mm,0) arc(90:0:.16mm) -- ++(0,-5mm) arc(360:270:.15mm) -- ++(-.7mm,0) arc (270:180:.15mm) -- ++(0,.25mm) arc(270:360:.33mm and .2mm) -- ++(0,4.1mm) arc(0:90:.33mm and .2mm) -- ++(0,.25mm) -- cycle;
-    \else
-    % ribbs; single path saves memory :D (the second)
-    \pingu at block{\csname pingu at color@lightsaber#1 at ribbs\endcsname}(\pingu at name-wing-#1)++(.40mm,2.225mm+\csname pingu at x@lightsaber at yshift@#1\endcsname)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
-        arc(90:-90:.075mm) -- ++(-.8mm,0) |- cycle;
-    % buttons
-    \pingu at block{\csname pingu at color@lightsaber#1 at button@b\endcsname}(\pingu at name-wing-#1)++(-.49mm,-1.75mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
-    \pingu at block{\csname pingu at color@lightsaber#1 at button\endcsname}(\pingu at name-wing-#1)++(-.49mm,1.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
-    % cover
-    \pingu at block{\csname pingu at color@lightsaber#1 at handle\endcsname}(\pingu at name-wing-#1)++(.5mm,2.65mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) arc(0:90:.15mm) -- ++(-.7mm,0) arc(90:180:.16mm) -- ++(0,-5mm) arc(180:270:.15mm) -- ++(.7mm,0) arc (270:360:.15mm) -- ++(0,.25mm) arc(270:180:.33mm and .2mm) -- ++(0,4.1mm) arc(180:90:.33mm and .2mm) -- ++(0,.25mm) -- cycle;
-    \fi
-}
-% #endregion
-% #1 wing, #2 yshift, #3 angle, #4 length, #5 color
-\def\pingu at draw@wi at lightsaber@pre#1#2#3#4#5{
-    \scope[rotate around={#3:(\pingu at name-wing-#1)}]
-    \csname if at pingu@x at lightsaber@glow@#1\endcsname
-    \@for\i:={0,2,4,6,7,8,9,10,11,12,13,14,15,16,17}\do{
-        \pingu at block[fill opacity=\ifnum\i>14 .225\else.1\fi*\i/20]{#5} (\pingu at name-wing-#1)++(-\pingu at x@saberglow at w@half+\i*\i mm/440,#2) -- ++(.05mm,#4) arc(180:0:\pingu at x@saberglow at w@half-.05mm-\i*\i mm/440 and \ifnum\i>14 .85mm\else\pingu at one\fi-\i mm/30) -- ++(.05mm,-#4) arc (0:-180:\pingu at x@saberglow at w@half-\i*\i mm/440 and .35mm);
-    }
-    \else % draw solid
-        \pingu at block{#5} (\pingu at name-wing-#1)++(-.425mm,#2-.1mm) -- ++(.05mm,#4) arc(180:0:.375mm and .375mm) -- ++(.05mm,-#4) arc (0:-180:.425mm and .05mm);
-    \fi
-    \endscope
-}
-
-% #1 wing, #2 yshift, #3 angle, #4 length, #5 color
-\def\pingu at draw@wi at lightsaber@post#1#2#3#4#5{
-    \scope[rotate around={#3:(\pingu at name-wing-#1)}]
-    \csname if at pingu@x at lightsaber@glow@#1\endcsname
-    \ifdim\csname pingu at x@lightsaber at ogf@#1\endcsname pt>\z@
-    \pingu at layer{foreground}[]
-    \pgfinterruptboundingbox
-    \path[clip,/pingu/@invclip] (\pingu at name-wing-#1)++(-.275mm,#2-.1mm) -- ++(.1mm,#4) arc(180:0:.175mm and .25mm) -- ++(.1mm,-#4) arc (0:-180:.275mm and .065mm);
-    \@for\i:={1,1.1,1.2,1.3,1.4}\do{
-        \pingu at block[fill opacity=\csname pingu at x@lightsaber at ogf@#1\endcsname/\i]{#5} (\pingu at name-wing-#1) ++(.05mm,#2+#4/2) circle[radius=\i*#4];
-    }
-    \endpgfinterruptboundingbox
-    \endpingu at layer
-    \fi
-        % fadings had a rotation angle bug
-        \@for\i:={1,2}\do{
-            \pingu at block[fill opacity=.125*\i/10]{#5} (\pingu at name-wing-#1)++(-\pingu at x@saberglow at w@half+\i*\i mm/440,#2) -- ++(.05mm,#4) arc(180:0:\pingu at x@saberglow at w@half-.05mm-\i*\i mm/440 and \pingu at one-\i mm/30) -- ++(.05mm,-#4) arc (0:-180:\pingu at x@saberglow at w@half-\i*\i mm/440 and .35mm);
-        }
-        \pingu at block{\csname pingu at color@lightsaber#1 at glow@core\endcsname} (\pingu at name-wing-#1)++(-.275mm,#2-.1mm) -- ++(.1mm,#4) arc(180:0:.175mm and .25mm) -- ++(.1mm,-#4) arc (0:-180:.275mm and .065mm);
-    \fi
-    \endscope
-}
-
-% #1 wing
-\def\pingu at draw@wi at lightsaber#1{%
-    \pingu at setup@wing{lightsaber}{#1}%
-    \scope[rotate around={\@angle:([yshift=+\csname pingu at x@lightsaber at yshift@#1\endcsname]\pingu at name-wing-#1)},xscale=1.2]
-    \pingu at draw@wi at lightsaber@pre{#1}{2.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname}{0}{\csname pingu at x@lightsaber at length@#1\endcsname}{\@col}
-    \csname if at pingu@x at lightsaber@double@#1\endcsname
-    \pingu at draw@wi at lightsaber@pre{#1}{2.65mm-\csname pingu at x@lightsaber at yshift@#1\endcsname}{180}{\csname pingu at x@lightsaber at length@b@#1\endcsname}{\csname pingu at color@lightsaber#1 at color@b\endcsname}
-    \fi
-    \pingu at draw@wi at lightsaber@base{#1}
-    % afterglow (whuile watching everglow :D)
-    \pingu at draw@wi at lightsaber@post{#1}{2.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname}{0}{\csname pingu at x@lightsaber at length@#1\endcsname}{\@col}
-    \csname if at pingu@x at lightsaber@double@#1\endcsname
-    \pingu at draw@wi at lightsaber@post{#1}{2.65mm-\csname pingu at x@lightsaber at yshift@#1\endcsname}{180}{\csname pingu at x@lightsaber at length@b@#1\endcsname}{\csname pingu at color@lightsaber#1 at color@b\endcsname}
-    \fi
-    \endscope
-}
-
-
-\newif\if at pingu@x at lightstaff@glow at left
-\newif\if at pingu@x at lightstaff@glow at right
-\pingu at create@wing at extra{lightstaff}{%
-    light-staff \@lr/.code         = {\pingu at set@extra{lightstaff\@lr}{true}\pingu at color{lightstaff\@lr}{##1}},
-    light-staff \@lr/.default      = pingu at green,
-    light-staff \@lr\space length/.code =\expandafter\def\csname pingu at lightstaff@\@lr @length\endcsname{##1},
-    light-staff \@lr\space glow length/.code =\expandafter\def\csname pingu at lightstaff@\@lr @glow at length\endcsname{##1},
-    light-staff \@lr\space head/.code = \pingu at color{lightstaff\@lr}{##1},%
-    light-staff \@lr\space staff/.code = \pingu at color{lightstaff@\@lr @staff}{##1},%
-    light-staff \@lr\space core/.code = \pingu at color{lightstaff@\@lr @head at core}{##1},%
-    light-staff \@lr\space core width/.code = \expandafter\def\csname pingu at lightstaff@\@lr @core at width\endcsname{##1},%
-    light-staff \@lr\space glow/.is if    = @pingu at x@lightstaff at glow@\@lr,%
-    light-staff \@lr\space outer glow factor/.code  = {\@namedef{pingu at x@lightstaff at ogf@\@lr}{##1}},%
-}{light-staff \@lr\space length=28mm,light-staff \@lr\space staff=pingu at bronze,light-staff \@lr\space head=pingu at green,light-staff \@lr\space core=pingu at white,light-staff \@lr\space glow=\ifpengu at setup@glows@ true\else false\fi,light-staff \@lr\space outer glow factor=.022,light-staff \@lr\space glow length=13mm,light-staff \@lr\space core width=.44mm}
-\def\pingu at draw@wi at lightstaff#1{%
-    \pingu at setup@wing{lightstaff}{#1}%
-\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
-    \pingu at block{\csname pingu at color@lightstaff@#1 at staff\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.2mm,-11mm) -- ++(0,\csname pingu at lightstaff@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-lightstaff-#1-top) -- ++(0,-\csname pingu at lightstaff@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
-    \pingu at draw@wi at lightstaff@pre{#1}{[yshift=-1.1mm]\pingu at name-lightstaff-#1-top}{\@col}
-    \pingu at block{\csname pingu at color@lightstaff@#1 at head@core\endcsname} ([yshift=-1.1mm]\pingu at name-lightstaff-#1-top) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(0,2mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,-1mm) -- ++(0,-2mm) -- cycle;
-    \pingu at draw@wi at lightstaff@post{#1}{[yshift=-1.1mm]\pingu at name-lightstaff-#1-top}{\@col}
-\endscope
-}
-
-% #1 wing, #2 start, #3 color
-\def\pingu at draw@wi at lightstaff@pre#1#2#3{
-\csname if at pingu@x at lightstaff@glow@#1\endcsname
-\@for\i:={0,1,2,3,6,7,9,10,13}\do{
-    \pingu at block[fill opacity=\ifnum\i>14 .225\else.1\fi*\i/20]{#3} (#2)++(0,-\i mm/15) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname-\i mm/30,1mm+\i mm/30) -- ++(0,2mm+\i mm/15) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,1mm+\i mm/30) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,-1mm-\i mm/30) -- ++(0,-2mm-\i mm/15) -- cycle;
-    %  -- ++(.05mm,#4) arc(180:0:\pingu at x@saberglow at w@half-.05mm-\i*\i mm/440 and \ifnum\i>14 .85mm\else\pingu at one\fi-\i mm/30) -- ++(.05mm,-#4) arc (0:-180:\pingu at x@saberglow at w@half-\i*\i mm/440 and .35mm);
-}
-\else % draw solid
-    \pingu at block{#3} (#2) -- ++(-.55mm,1mm) -- ++(0,2mm) -- ++(.55mm,1mm) -- ++(.55mm,-1mm) -- ++(0,-2mm) -- cycle;
-\fi
-}
-
-\def\pingu at draw@wi at lightstaff@post#1#2#3{
-\csname if at pingu@x at lightstaff@glow@#1\endcsname
-\ifdim\csname pingu at x@lightstaff at ogf@#1\endcsname pt>\z@
-\pingu at layer{foreground}[]
-\pgfinterruptboundingbox
-\@for\i:={1,1.1,1.2,1.3,1.4}\do{
-    \pingu at block[fill opacity=\csname pingu at x@lightstaff at ogf@#1\endcsname/\i]{#3} (#2)++(0,2mm) circle[radius=\i*\csname pingu at lightstaff@#1 at glow@length\endcsname];
-}
-\endpgfinterruptboundingbox
-\pingu at block[opacity=.65]{\csname pingu at color@lightstaff@#1 at head@core\endcsname} (#2)++(0,.5mm) -- ++(-.20mm,.75mm) -- ++(0,1.5mm) -- ++(.20mm,.75mm) -- ++(.20mm,-.75mm) -- ++(0,-1.5mm) -- cycle;
-\endpingu at layer
-\fi
-% fadings hat a rotation angle bug
-\@for\i:={1,2}\do{
-    \pingu at block[fill opacity=.125*\i/10]{#3} (#2)++(0,-\i mm/15+2mm) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname-\i mm/30,1mm+\i mm/30) -- ++(0,2mm+\i mm/15) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,1mm+\i mm/30) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,-1mm-\i mm/30) -- ++(0,-2mm-\i mm/15) -- cycle;
-}
-\pingu at block{\csname pingu at color@lightstaff@#1 at head@core\endcsname} (#2) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(0,2mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,-1mm) -- ++(0,-2mm) -- cycle;
-\fi
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-shirts.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-shirts.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-shirts.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,63 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\newif\if at pingu@shirt at above
-\pingu at create@extra{shirt}{%
-    shirt/.code              = \pingu at set@extra{shirt}{true}\pingu at color{shirt}{#1},
-    shirt/.default           = pingu at bronze,
-    shirt above/.is if       = @pingu at shirt@above,
-    shirt raise/.code        = \def\pingu at shirt@raise{#1},
-    shirt padding/.code      = \def\pingu at shirt@padding{#1},
-    shirt button top/.code   = \pingu at color{shirt at button@top}{#1},
-    shirt button middle/.code      = \pingu at color{shirt at button@middle}{#1},
-    shirt button bottom/.code      = \pingu at color{shirt at button@bottom}{#1},
-    shirt buttons/.style           = {/pingu/shirt button top={#1}, /pingu/shirt button middle={#1}, /pingu/shirt button bottom={#1}},
-    shirt button top shade/.code  = \pingu at color{shirt at button@top at shade}{#1},
-    shirt button middle shade/.code = \pingu at color{shirt at button@middle at shade}{#1},
-    shirt button bottom shade/.code = \pingu at color{shirt at button@bottom at shade}{#1},
-    shirt buttons shade/.style     = {/pingu/shirt button top shade={#1}, /pingu/shirt button middle shade={#1}, /pingu/shirt button bottom shade={#1}},
-    shirt without buttons/.forward to=/pingu/shirt no buttons,
-    shirt no buttons/.style        = {/pingu/shirt buttons=\@pingu at none, /pingu/shirt buttons shade=\@pingu at none},
-}{shirt buttons=pingu at black,shirt padding=0mm,shirt button top shade=\pingu at color@shirt at button@top!70!\pingu at color@shirt!70!white,shirt button middle shade=\pingu at color@shirt at button@middle!70!\pingu at color@shirt!70!white,shirt button bottom shade=\pingu at color@shirt at button@bottom!70!\pingu at color@shirt!70!white,shirt raise=2.25mm,shirt above=false}
-\def\pingu at draw@cloth at shirt@behind{}
-
-\def\pingu at draw@cloth at shirt@middle{\if at pingu@shirt at above\else\pingu at draw@cloth at shirt@main\fi}
-
-\def\pingu at draw@cloth at shirt@main{%
-\coordinate (\pingu at name-shirt-low) at ([yshift=\pingu at shirt@raise]\pingu at name-belly-center);
-\pingu at block{\pingu at color@shirt} [rounded corners=.131mm] ([xshift=.2mm,yshift=.18mm]\pingu at name-head-back-con-right) -- (\pingu at name-shirt-low) -- ([xshift=-.1mm,yshift=.24mm]\pingu at name-head-back-con-left) to[bend left=12] (\pingu at name-waist-left) to[bend left=3] ([xshift=\pingu at shirt@padding]\pingu at name-bottom-center-|\pingu at name-waist-left) to[bend left=10] ([yshift=-1.1\pingu at one]\pingu at name-bottom-center) to[bend left=10] ([xshift=-\pingu at shirt@padding]\pingu at name-bottom-center-|\pingu at name-waist-right) to[bend left=3] (\pingu at name-waist-right) to[bend left=12] (\pingu at name-head-back-con-right) -- cycle;
-
-\coordinate (\pingu at name-shirt-bt) at ([yshift=-\pingu at one]\pingu at name-shirt-low);
-\pingu at block{\pingu at color@shirt at button@top}(\pingu at name-shirt-bt) circle[radius=.4mm];
-\pingu at block{\pingu at color@shirt at button@middle}(\pingu at name-shirt-bt)++(0,-1.35mm)circle[radius=.4mm];
-\pingu at block{\pingu at color@shirt at button@bottom}(\pingu at name-shirt-bt)++(0,2*-1.35mm)circle[radius=.4mm];
-\pingu at block[even odd rule]{\pingu at color@shirt at button@top at shade}(\pingu at name-shirt-bt) circle[radius=.4mm] circle[radius=.465mm];
-\pingu at block[even odd rule]{\pingu at color@shirt at button@middle at shade}(\pingu at name-shirt-bt)++(0,-1.35mm)circle[radius=.4mm] circle[radius=.465mm];
-\pingu at block[even odd rule]{\pingu at color@shirt at button@bottom at shade}(\pingu at name-shirt-bt)++(0,2*-1.35mm)circle[radius=.4mm] circle[radius=.465mm];
-\@for\i:={0,90,180,270}\do{
-    \pingu at block{\pingu at color@shirt at button@top at shade} (\pingu at name-shirt-bt)++(\i:.
-    25mm) circle[radius=.065mm];
-    \pingu at block{\pingu at color@shirt at button@middle at shade} (\pingu at name-shirt-bt)++(0,-1.35mm)++(\i:.25mm) circle[radius=.065mm];
-    \pingu at block{\pingu at color@shirt at button@bottom at shade} (\pingu at name-shirt-bt)++(0,2*-1.35mm)++(\i:.25mm) circle[radius=.065mm];
-}}
-
-% TODO: if flags to draw parts
-\def\pingu at draw@cloth at shirt{\if at pingu@shirt at above\pingu at draw@cloth at shirt@main\fi}
-
-\pingu at create@extra{secondshirt}{%
-    second shirt/.code        = \pingu at set@extra{secondshirt}{true}\pingu at color{secondshirt}{#1},
-    second shirt raise/.code  = \def\pingu at secondshirt@raise{#1},
-    second shirt neck/.code   = \pingu at color{secondshirt at neck}{#1},
-    second shirt/.default     = purple,
-}{second shirt raise=3.35mm,second shirt neck=\pingu at color@secondshirt!32!pingu at white}
-\def\pingu at draw@cloth at secondshirt@behind{}
-
-\def\pingu at draw@cloth at secondshirt@middle{%
-\coordinate (\pingu at name-secondshirt-low) at ([yshift=\pingu at secondshirt@raise]\pingu at name-belly-center);
-\pingu at block{\pingu at color@secondshirt} [rounded corners=.131mm] ([xshift=.2mm,yshift=.05mm]\pingu at name-head-back-con-right) -- (\pingu at name-secondshirt-low) -- ([xshift=-.16mm,yshift=.09mm]\pingu at name-head-back-con-left) to[bend left=12] (\pingu at name-waist-left) to[bend left=3] ([xshift=-.22mm]\pingu at name-bottom-center-|\pingu at name-waist-left) to[bend left=10] ([yshift=-1\pingu at one]\pingu at name-bottom-center) to[bend left=10] ([xshift=.22mm]\pingu at name-bottom-center-|\pingu at name-waist-right) to[bend left=3] (\pingu at name-waist-right) to[bend left=12] (\pingu at name-head-back-con-right) -- cycle;
-\pingu at draw{\pingu at color@secondshirt at neck} [rounded corners=.131mm] ([xshift=.025mm,yshift=-.09mm]\pingu at name-head-back-con-right) -- ([xshift=.2mm,yshift=.05mm]\pingu at name-head-back-con-right) -- (\pingu at name-secondshirt-low) -- ([xshift=-.19mm,yshift=.09mm]\pingu at name-head-back-con-left) -- ([xshift=-.02mm,yshift=-.02mm]\pingu at name-head-back-con-left);
-}
-
-% TODO: if flags to draw parts
-\def\pingu at draw@cloth at secondshirt{%
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-signs.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-signs.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-signs.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,53 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@wing at extra{signpost}{%
-  signpost \@lr/.forward to    = /pingu/sign post \@lr,
-  sign post \@lr/.code         = {\pingu at set@extra{signpost\@lr}{true}\@namedef{pingu at signpost@\@lr}{##1}},
-  sign post \@lr/.default      = {},
-  signpost \@lr\space color/.forward to    = /pingu/sign post \@lr\space color,
-  sign post \@lr\space color/.code = \pingu at color{signpost\@lr}{##1},
-  signpost \@lr\space fontcolor/.forward to    = /pingu/sign post \@lr\space font color,
-  sign post \@lr\space font color/.code = \pingu at color{signpost\@lr @font}{##1},
-}{sign post \@lr\space color=brown!70!black, sign post \@lr\space font color=white!90!brown}
-\def\pingu at draw@wi at signpost#1{%
-    \pingu at setup@wing{signpost}{#1}%
-    \def\@rot{\if at pingu@wing at item@side at left@-5\else+5\fi}%
-\scope[rotate around={\@angle+\@rot:(\pingu at name-wing-#1)}]
-    \pingu at block[thick]{\@col}(\pingu at name-wing-#1)++(\@sidesign*-.225mm,-2mm) -- ++(0,15mm) arc(180:0:\@sidesign*.45mm and .375mm) -- ++(0,-15mm) arc(360:180:\@sidesign*.45mm and .375mm) -- cycle;
-    \path (\pingu at name-wing-#1)++(\@sidesign*.225mm,13mm) node[fill=\@col,rounded corners=2\p@,minimum width=14mm,minimum height=8mm,align=center,rotate=\@angle+\@rot,text=\csname pingu at color@signpost#1 at font\endcsname] {\csname pingu at signpost@#1\endcsname};
-\endscope
-}
-
-\pingu at create@extra{banner}{%
-    banner/.code             = \pingu at set@extra{banner}{true}\@namedef{pingu at banner}{#1},
-    banner/.default          = Bannertext,
-    banner band/.code        = \pingu at color{banner at band}{#1},
-    banner text color/.code  = \pingu at color{banner at text@color}{#1},
-    banner sticks color/.style={/pingu/banner stick left color=#1,/pingu/banner stick right color=#1},
-    banner stick left color/.code  = \pingu at color{banner at stick@left}{#1},
-    banner stick right color/.code = \pingu at color{banner at stick@right}{#1},
-    banner sticks length/.style={/pingu/banner stick left length=#1,/pingu/banner stick right length=#1},
-    banner stick left length/.code  = \@namedef{pingu at banner@stick at left@l}{#1},
-    banner stick right length/.code  = \@namedef{pingu at banner@stick at right@l}{#1},
-    banner raise/.code  = \@namedef{pingu at banner@raise}{#1},
-    banner height/.code  = \@namedef{pingu at banner@height}{#1},
-    banner font/.code  = \@namedef{pingu at banner@font}{#1},
-    banner bent/.code  = \@namedef{pingu at banner@bent}{#1}
-}{banner band=pingu at white!91!pingu at black,banner text color=pingu at black,banner sticks  color=pingu at bronze,banner stick left length=20mm, banner stick right length=20mm,banner bent=30,banner raise=-1mm,banner height=4mm,banner font=\bfseries}
-
-\usetikzlibrary{decorations.text}
-\def\pingu at draw@ea at banner{%
-\pingu at setup@wing{staff}{left}% we do not need the staff color, but we will use it
-\scope[rotate around={\@angle:(\pingu at name-wing-left)}]
-    \pingu at block{\pingu at color@banner at stick@left}(\pingu at name-wing-left)++(\@sidesign*-.2mm,-7mm) -- ++(0,\pingu at banner@stick at left@l) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-s-left) -- ++(0,-\pingu at banner@stick at left@l) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
-    \path (\pingu at name-s-left)++(.5mm,\pingu at banner@height) coordinate (\pingu at name-s-left-top) ++(0,-2*\pingu at banner@height) coordinate (\pingu at name-s-left-bot);
-\endscope
-\pingu at setup@wing{staff}{right}% we do not need the staff color, but we will use it
-\scope[rotate around={\@angle:(\pingu at name-wing-right)}]
-    \pingu at block{\pingu at color@banner at stick@right}(\pingu at name-wing-right)++(\@sidesign*-.2mm,-7mm) -- ++(0,\pingu at banner@stick at right@l) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-s-right) -- ++(0,-\pingu at banner@stick at right@l) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
-    \path (\pingu at name-s-right)++(-.5mm,\pingu at banner@height) coordinate (\pingu at name-s-right-top) ++(0,-2*\pingu at banner@height) coordinate (\pingu at name-s-right-bot);
-\endscope
-\pingu at block[rounded corners=.3mm]{\pingu at color@banner at band} (\pingu at name-s-left-top) to[bend right=\pingu at banner@bent] (\pingu at name-s-right-top) -- (\pingu at name-s-right-bot) to[bend left=\pingu at banner@bent] (\pingu at name-s-left-bot) -- cycle;
-\path[postaction={decorate},decoration={text color=\pingu at color@banner at text@color,text along path, raise=\pingu at banner@raise, text={|\pingu at banner@font|\pingu at banner},text align={center,left indent=1mm,right indent=1mm}}] (\pingu at name-s-right) to[bend left=\pingu at banner@bent+3] (\pingu at name-s-left);
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-sport.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-sport.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-sport.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,79 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{medal}{%
-    medal/.code    	  = {\pingu at set@extra{medal}{true}\pingu at color{medal}{#1}},
-    medal/.default    = pingu at yellow,%
-    gold medal/.style = {medal, medal text=#1}, gold medal/.default={1},
-    silver medal/.style = {medal=pingu at silver, medal text=#1}, silver medal/.default={2},
-    bronze medal/.style = {medal=pingu at bronze, medal text=#1}, bronze medal/.default={3},
-    medal band/.code  = \pingu at color{medal at band}{#1},%
-    medal shade/.code  = \pingu at color{medal at shade}{#1},%
-    medal shade width/.code  = \def\pingu at medal@shade at w{#1},%
-    medal text/.code  = \def\pingu at x@medal at text{#1},%
-    medal text style/.style = {\pingu at color@medal!65!pingu at white},
-}{medal band=pingu at red,medal text={},medal shade={\pingu at color@medal!65!pingu at white},medal shade width=.75\p@}
-
-\def\pingu at draw@eb at medal{%
-\coordinate (\pingu at name-medal-center) at ([yshift=1.25mm]\pingu at name-belly-center);
-\pingu at block{\pingu at color@medal at band} [rounded corners=.15mm] (\pingu at name-head-back-con-right) -- (\pingu at name-medal-center) -- (\pingu at name-head-back-con-left) to[bend left=11] ++(-1.35mm,-.5mm) -- ([yshift=.7mm]\pingu at name-medal-center) -- ([xshift=1.35mm,yshift=-.5mm]\pingu at name-head-back-con-right) to[bend left=11] (\pingu at name-head-back-con-right) -- cycle;
-\pingu at block{\pingu at color@medal} (\pingu at name-medal-center) circle [radius=2.35mm];
-\pingu at draw[line width=\pingu at medal@shade at w]{\pingu at color@medal at shade} (\pingu at name-medal-center) circle [radius=2.35mm];
-\node[/pingu/@text,/pingu/medal text style] at (\pingu at name-medal-center) {\pingu at x@medal at text};
-}
-\newif\if at pingu@x at headband@knot@
-\newif\if at pingu@x at headband@bands@
-\pingu at create@extra{headband}{%
-    headband/.forward to  = /pingu/head band,
-    head-band/.forward to = /pingu/head band,
-    head band/.code       = \pingu at set@extra{headband}{true}\pingu at color{headband}{#1},
-    head band/.default    = pingu at red,
-    headband bend/.forward to  = /pingu/head band bend,
-    head-band bend/.forward to = /pingu/head band bend,
-    head band bend/.code  = \def\pingu at x@headband at bend{#1},
-    headband angle/.forward to  = /pingu/head band angle,
-    head-band angle/.forward to = /pingu/head band angle,
-    head band angle/.code  = \def\pingu at x@headband at angle{#1},
-    headband upper angle/.forward to  = /pingu/head band upper angle,
-    head-band upper angle/.forward to = /pingu/head band upper angle,
-    head band upper angle/.code  = \def\pingu at x@headband at upangle{#1},
-    % knot
-    headband knot/.forward to  = /pingu/head band knot,
-    head-band knot/.forward to = /pingu/head band knot,
-    head band knot/.is if = @pingu at x@headband at knot@,
-    headband knot color/.forward to  = /pingu/head band knot color,
-    head-band knot color/.forward to = /pingu/head band knot color,
-    head band knot color/.code  = \pingu at color{headband at knot}{#1},
-    headband knot a color/.forward to  = /pingu/head band knot a color,
-    head-band knot a color/.forward to = /pingu/head band knot a color,
-    head band knot a color/.code  = \pingu at color{headband at knot@a}{#1},
-    headband knot b color/.forward to  = /pingu/head band knot b color,
-    head-band knot b color/.forward to = /pingu/head band knot b color,
-    head band knot b color/.code  = \pingu at color{headband at knot@b}{#1},
-    headband bands/.forward to  = /pingu/head band bands,
-    head-band bands/.forward to = /pingu/head band bands,
-    head band bands/.is if = @pingu at x@headband at bands@,
-    headband bands a color/.forward to  = /pingu/head band bands a color,
-    head-band bands a color/.forward to = /pingu/head band bands a color,
-    head band bands a color/.code  = \pingu at color{headband at bands@a}{#1},
-    headband bands b color/.forward to  = /pingu/head band bands b color,
-    head-band bands b color/.forward to = /pingu/head band bands b color,
-    head band bands b color/.code  = \pingu at color{headband at bands@b}{#1},
-}{head band bend=9, head band angle=16,head band upper angle=49, head band knot color=\pingu at color@headband!78!black,head band knot a color=\pingu at color@headband at knot!90!black,head band knot b color=\pingu at color@headband at knot@a,head band bands,head band bands a color=\pingu at color@headband!78!black,head band bands b color=\pingu at color@headband}
-
-\def\pingu at draw@ea at headband@wh{1.25mm}
-\def\pingu at draw@ea at headband{%
-    \path (\pingu at name-head-center)+(\pingu at x@headband at upangle-\pingu at x@headband at angle:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-head-band-lower);
-    \path (\pingu at name-head-center)+(\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-head-band-upper);
-    \if at pingu@x at headband@bands@
-    \pingu at block{\pingu at color@headband at bands@a} (\pingu at name-head-band-lower) to[out=-50,in=75] ++(2.75mm,-4mm) to[bend right] ++(.6mm,0) to[out=80,in=-5] (\pingu at name-head-band-upper) -- cycle;
-    \pingu at block{\pingu at color@headband at bands@b} (\pingu at name-head-band-lower) to[out=-80,in=80] ++(1.75mm,-3.35mm) to[bend right] ++(.45mm,0) to[out=80,in=-8] (\pingu at name-head-band-upper) -- cycle;
-    \fi
-    \pingu at block{\pingu at color@headband} (\pingu at name-head-center)+(\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) to[bend left=\pingu at x@headband at bend] coordinate[pos=.5] (\pingu at name-headband-center-a) +(180-\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) arc(180-\pingu at x@headband at upangle:180-\pingu at x@headband at upangle+\pingu at x@headband at angle:\pingu at w@half{} and \pingu at head@h at half) to[bend right=\pingu at x@headband at bend] coordinate[pos=.5] (\pingu at name-headband-center-b) (\pingu at name-head-band-lower) arc(\pingu at x@headband at upangle-\pingu at x@headband at angle:\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) -- cycle;
-    \path (\pingu at name-headband-center-a) -- (\pingu at name-headband-center-b) coordinate[pos=.5] (\pingu at name-headband-center);
-    \if at pingu@x at headband@knot@
-    \pingu at block[rounded corners=.25mm]{\pingu at color@headband at knot@a} (\pingu at name-headband-center-a)++(-.15mm,-.6mm) to[out=155,in=-5] ++(-3mm,\pingu at one) to[bend right=15] ([xshift=-3mm,yshift=-.2mm]\pingu at name-headband-center-b) to[in=-155,out=5] ++(.285cm,.8mm) -- cycle;
-    \pingu at block[rounded corners=.25mm]{\pingu at color@headband at knot@b} (\pingu at name-headband-center-a)++(.15mm,-.6mm) to[out=25,in=-175] ++(3mm,\pingu at one) to[bend left=15] ([xshift=3mm,yshift=-.2mm]\pingu at name-headband-center-b) to[in=-25,out=175] ++(-.285cm,.8mm) -- cycle;
-    \pingu at block[rounded corners=.25mm]{\pingu at color@headband at knot} (\pingu at name-headband-center-a)++(-\pingu at draw@ea at headband@wh,.12mm) to[bend right=9] ++(2*\pingu at draw@ea at headband@wh,0) -- ([xshift=\pingu at draw@ea at headband@wh,yshift=-.12mm]\pingu at name-headband-center-b) to[bend right=9] ++(-2*\pingu at draw@ea at headband@wh, 0) -- cycle;
-    \fi
-}
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-technology.lib.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-technology.lib.tex	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus-technology.lib.tex	2024-11-28 21:23:53 UTC (rev 72990)
@@ -1,126 +0,0 @@
-% Florian Sihler, 2022
-% Licensed under GNU General Public License version 3
-% https://opensource.org/licenses/gpl-3.0.html
-\pingu at create@extra{vrheadset}{%
-    vr-headset/.code             = \pingu at set@extra{vrheadset}{true}\pingu at color{vrheadset}{#1},
-    vr-headset/.default          = pingu at black!92!gray,
-    vr-headset band/.code        = \pingu at color{vrheadset at band}{#1},
-    vr-headset band top/.code    = \pingu at color{vrheadset at band@top}{#1},
-    vr-headset text/.code        = \def\pingu at x@vrheadset at text{#1},
-    vr-headset text color/.code  = \pingu at color{vrheadset at text@color}{#1},
-    vr-headset hair/.style       = {/pingu/hair 2=!hide,/pingu/hair 3=!hide,/pingu/hair 4=!hide}
-}{vr-headset band=\pingu at color@vrheadset!92!gray,vr-headset text={\textit{\textsf{VR\thinspace\texttrademark}}},vr-headset text color=pingu at white,vr-headset band top=\pingu at color@vrheadset!96!gray}
-
-\def\pingu at draw@ea at vrheadset{%
-\pingu at layer{middle}[]
-    \pingu at block{\pingu at color@vrheadset} [rounded corners=1.25mm]([yshift=3.45mm]\pingu at name-waist-right|-\pingu at name-eye-right) to[bend left=2] coordinate[pos=.5] (@) ([yshift=3.45mm]\pingu at name-waist-left|-\pingu at name-eye-left) to[bend left=3] coordinate (\pingu at name-vrh-ol) ++(0,-6.25mm) to[bend left=13] ([yshift=-1mm]\pingu at name-head-center) to[bend left=13] ([yshift=3.45mm-6.25mm]\pingu at name-waist-right|-\pingu at name-eye-right) -- cycle;
-    \path (\pingu at name-vrh-ol)++(-2.25mm,2mm) node[text=\pingu at color@vrheadset at text@color,scale=.25] {\pingu at x@vrheadset at text};
-\endpingu at layer
-\if at pingu@do at back@\else
-    % top band
-    \pingu at block[rounded corners=1pt]{\pingu at color@vrheadset at band@top} (@)++(-1.05mm+.15mm,0) to[bend right=2] ([xshift=-.85mm+.3mm,yshift=.3mm]\pingu at name-head-top) to[bend left=2] ++(1.6mm,0) to[bend left=2] ([xshift=1.25mm+.15mm]@);
-\fi
-    % we draw a band for the background
-\pingu at layer{background}[]
-\pingu at block[line cap=round]{\pingu at color@vrheadset at band} ([yshift=1mm]\pingu at name-waist-right|-\pingu at name-eye-right) to[bend left=3] coordinate[pos=.5] (@b) ([yshift=1mm]\pingu at name-waist-left|-\pingu at name-eye-left) arc(90:-90:.25mm and 1mm) to[bend right=3] ([yshift=-1mm]\pingu at name-waist-right|-\pingu at name-eye-right) arc (270:90:.25mm and 1mm);
-\pingu at block[rounded corners=1pt]{\pingu at color@vrheadset at band@top} (@b)++(-1.25mm+.2mm,-1.25mm) to[bend right=2] ([xshift=-.85mm+.3mm,yshift=.3mm]\pingu at name-head-top) to[bend right=2] ++(1.6mm,0) to[bend right=2] ([xshift=1.15mm+.2mm,yshift=-1.25mm]@b) -- cycle;
-\endpingu at layer
-}
-\pingu at create@extra{headphone}{%
-    headphones/.forward to      = /pingu/headphone,
-    headphone/.code             = \pingu at set@extra{headphone}{true}\pingu at color{headphone}{#1},
-    headphone/.default          = pingu at blue!80!pingu at black,
-    headphone left/.code        = \pingu at color{headphone at left}{#1},
-    headphone right/.code       = \pingu at color{headphone at right}{#1},
-    headphones outer/.forward to  = /pingu/headphone outer,
-    headphone outer/.style        = {/pingu/headphone left outer=#1,/pingu/headphone right outer=#1}, headphone outer/.default      = pingu at black,
-    headphone left outer/.code    = \pingu at color{headphone at left@p}{#1}, headphone left outer/.default  =pingu at black,
-    headphone right outer/.code   = \pingu at color{headphone at right@p}{#1}, headphone right outer/.default=pingu at black,
-    headphones inner/.forward to  = /pingu/headphone inner,
-    headphone inner/.style        = {/pingu/headphone left inner=#1,/pingu/headphone right inner=#1}, headphone inner/.default      = pingu at black,
-    headphone left inner/.code    = \pingu at color{headphone at left@i}{#1}, headphone left inner/.default = pingu at black,
-    headphone right inner/.code   = \pingu at color{headphone at right@i}{#1}, headphone right inner/.default=pingu at black,
-}{headphone left=\pingu at color@headphone!65!pingu at black,headphone right=\pingu at color@headphone at left,headphone left outer=\@pingu at none,
-,headphone right outer=\@pingu at none,,headphone left inner=\@pingu at none,
-,headphone right inner=\@pingu at none}
-
-\def\pingu at draw@ea at headphone{%
-\if at pingu@do at back@ \pingu at layer{background}[] \fi
-    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at right@p} ([xshift=-\pingu at one,yshift=3.22mm]\pingu at name-wings-side-right|-\pingu at name-eye-right) arc (93:273:.565mm and 2.11mm) -- ++(.8mm,.075mm) -- ++(0,4.075mm);
-    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at right@i} ([xshift=\pingu at one-.366mm,yshift=3.22mm]\pingu at name-wings-side-right|-\pingu at name-eye-right) arc (87:-93:.565mm and 2.14mm) -- ++(-.8mm,.075mm) -- ++(0,4.075mm) -- cycle;
-    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at right} ([xshift=-\pingu at one+.2mm,yshift=3.22mm]\pingu at name-wings-side-right|-\pingu at name-eye-right) arc (92:272:.565mm and 2.1mm) -- ++(.8mm,-.05mm) arc (270:450:.425mm and 2.1mm) -- cycle;
-    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at left@p} ([xshift=\pingu at one,yshift=3.22mm]\pingu at name-wings-side-left|-\pingu at name-eye-left) arc (87:-93:.565mm and 2.11mm) -- ++(-.8mm,.075mm) -- ++(0,4.075mm) -- cycle;
-    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at left@i} ([xshift=-\pingu at one+.366mm,yshift=3.22mm]\pingu at name-wings-side-left|-\pingu at name-eye-left) arc (93:273:.565mm and 2.14mm) -- ++(.8mm,.075mm) -- ++(0,4.075mm);
-    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at left} ([xshift=\pingu at one-.2mm,yshift=3.22mm]\pingu at name-wings-side-left|-\pingu at name-eye-left) arc (88:-92:.565mm and 2.1mm) -- ++(-.8mm,-.05mm) arc (270:90:.425mm and 2.1mm) -- cycle;
-    \pingu at block{\pingu at color@headphone} ([xshift=-\pingu at one,yshift=\pingu at one]\pingu at name-wings-side-right|-\pingu at name-eye-right)
-    arc(180:0:{\pingu at one+\pingu at w@half} and {\pingu at head@h at half-.5\pingu at one}) arc(0:-180:.65mm and .33mm)
-    arc(0:180:{\pingu at one+\pingu at w@half-2*.65mm} and {\pingu at head@h at half+.33\pingu at one-2*.6mm-1.1\pingu at one})
-    arc(0:-180:.65mm and .33mm) -- cycle;
-\if at pingu@do at back@ \endpingu at layer \fi
-}
-
-\pingu at create@wing at extra{vrcontroller}{%
-vr-controller \@lr/.code         = {\pingu at set@extra{vrcontroller\@lr}{true}\pingu at color{vrcontroller\@lr}{##1}},
-vr-controller \@lr/.default      = pingu at green,
-vr-controller \@lr\space handle/.code = \pingu at color{vrcontroller\@lr @handle}{##1},%
-vr-controller \@lr\space second/.code = \pingu at color{vrcontroller\@lr @second}{##1},%
-vr-controller \@lr\space second shade/.code = \pingu at color{vrcontroller\@lr @second at shade}{##1}%
-}{vr-controller \@lr\space handle={\csname pingu at color@vrcontroller\@lr\endcsname!76!pingu at black},vr-controller \@lr\space second={\csname pingu at color@vrcontroller\@lr\endcsname!56!pingu at black},vr-controller \@lr\space second shade={\csname pingu at color@vrcontroller\@lr\endcsname!96!pingu at black}}
-
-% #1 wing
-\def\pingu at draw@wi at vrcontroller#1{%
-    \pingu at setup@wing{vrcontroller}{#1}%
-    \pingu at block[rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@vrcontroller#1 at handle\endcsname}(\pingu at name-wing-#1)++(.5mm,5mm) to[bend right=1] ++(-.25mm,-5.5mm) arc (0:-180:.325mm and .1mm) to[bend right=1] ++(-.7mm,5.5mm) -- cycle coordinate[pos=.5] (@);
-    \def\@y{2.06mm} \def\@@y{.78mm}
-    \pingu at block[rotate around={\@angle:(\pingu at name-wing-#1)},even odd rule]{\csname pingu at color@vrcontroller#1 at second\endcsname}([yshift=.1mm]@) arc (90:450:{\@y} and 1mm) coordinate[pos=.25] (@r) coordinate[pos=.75] (@l) ([yshift=-.6mm]@) arc (90:0:{\@@y} and .25mm) arc (0:-180:{\@@y} and .35mm) arc (180:90:{\@@y} and .25mm);
-    % \pingu at draw[rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@vrcontroller#1 at second@shade\endcsname} ([yshift=-.9mm]@)++(180:{\@@y} and .3mm) arc (180:0:{\@@y} and .3mm);
-    \def\@toruslow{(@l) to[bend left=7] ++(-.2mm,-.875mm) to[bend left=15] coordinate[pos=.95] (@c) ++(-2*\@y+.4mm,0) [sharp corners] to[bend left=7] ++(-.2mm,.875mm) to[bend right=30] cycle}
-    \pingu at block[rounded corners=.1mm,rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@vrcontroller#1 at second\endcsname} \@toruslow;
-    \scope[rounded corners=.1mm,rotate around={\@angle:(\pingu at name-wing-#1)}]
-    \clip \@toruslow;
-    \pingu at block[opacity=.1]{black} (@l) to[bend left=14] (@c) -- ++(0,-2mm) -| cycle;
-    \endscope
-}
-
-
-\pingu at create@wing at extra{laptop}{%
-  laptop \@lr/.code                  = {\pingu at set@extra{laptop\@lr}{true}\pingu at color{laptop\@lr}{##1}},
-  laptop \@lr/.default               = gray!80!pingu at white,
-  laptop \@lr\space bracket/.code    = \pingu at color{laptop\@lr @bracket}{##1},
-  laptop \@lr\space lower/.code      = \pingu at color{laptop\@lr @lower}{##1},
-  laptop \@lr\space key/.code        = \pingu at color{laptop\@lr @key}{##1},
-  laptop \@lr\space display/.code    = \pingu at color{laptop\@lr @display}{##1},
-  laptop \@lr\space content/.code    = \@namedef{pingu at x@laptop\@lr @content}{##1}, % tikz content
-  laptop \@lr\space mid/.code        = \@namedef{pingu at x@laptop\@lr @mid}{##1}, % tikz content
-}{laptop \@lr\space bracket=pingu at black!80!\csname pingu at color@laptop\@lr\endcsname,laptop \@lr\space lower=\csname pingu at color@laptop\@lr\endcsname!95!pingu at black,laptop \@lr\space key=\csname pingu at color@laptop\@lr\endcsname!92!pingu at white,laptop \@lr\space display=\csname pingu at color@laptop\@lr\endcsname!32!pingu at white,laptop \@lr\space content={},laptop \@lr\space mid={}}
-
-% #1 wing
-\def\pingu at draw@wi at laptop#1{%
-    \pingu at setup@wing{laptop}{#1}%
-    \scope[rotate around={\@angle+5:(\pingu at name-wing-#1)},shift={(\pingu at name-wing-#1)}]
-        \pingu at block[rounded corners=1pt]{\csname pingu at color@laptop#1 at lower\endcsname}(-6.9mm,0) -- ++(-.1mm,-4.75mm) -- ++(14mm,0) -- ++(-.1mm,4.75mm) -- cycle;
-        \pingu at block[rounded corners=1pt]{\@col}(-6.9mm,0) -- ++(0,7mm) -- ++(13.8mm,0) -- ++(0,-7mm) -- cycle;
-        \pingu at block[rounded corners=.125mm]{\csname pingu at color@laptop#1 at bracket\endcsname}(-6.4mm,.125mm) -- ++(0,-.25mm) -- ++(12.8mm,0) -- ++(0,.25mm) -- cycle;
-        % keys
-        \foreach[count=\y from 0,evaluate=\y as \extpadding using 0.005*\y,evaluate=\y as \rextpadding using 0.05*\y] \row in {
-            % manually account for padding
-                {0,1,1,1,1,1,1,1,1,1,1,1,1,1},
-                {.63,1.5,1,1,1,1,1,1,1,1,1,1,1},
-                {0,1,1,1,1,1,1,1,1,1,1,1,1,1},
-                {0,1,1,1,1,1,4.62,1,1,1,1},
-            } {
-            \def\lengthincr{-\rextpadding mm}
-            \foreach[count=\i from 0,evaluate=\len as \l using 0.85*\len] \len in \row {
-                \ifnum\i=0 \else % first one is silent:
-                \pingu at block[rounded corners=.125mm]{\csname pingu at color@laptop#1 at key\endcsname}(\lengthincr-6.4mm,-\y mm-.5mm) rectangle ++(\l mm,-.75mm) node[midway,centered,text=\@col,scale=.3] {\textbullet};
-                \fi
-                \xdef\lengthincr{\the\dimexpr\lengthincr+\l mm+.13mm+\extpadding mm}
-            }
-        }
-        % display, we modify the lower shift to adjust height offset
-        \pingu at block[rounded corners=1pt]{\csname pingu at color@laptop#1 at display\endcsname}(-6.7mm,.25mm+.05mm) rectangle ++(13.4mm,6.45mm) node[midway,centered,rotate=\@angle+5,text width=13.2mm,align=center,minimum height=6.2mm] {\csname pingu at x@laptop#1 at mid\endcsname};
-        \scope[shift={(-6.7mm,.25mm+.05mm)}]
-            \csname pingu at x@laptop#1 at content\endcsname
-        \endscope
-    \endscope
-}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus.sty	2024-11-28 00:42:19 UTC (rev 72989)
+++ trunk/Master/texmf-dist/tex/latex/tikzpingus/tikzpingus.sty	2024-11-28 21:23:53 UTC (rev 72990)
@@ -2,13 +2,13 @@
 % Licensed under GNU General Public License version 3
 % https://opensource.org/licenses/gpl-3.0.html
 \def\tikzpingus at filename{tikzpingus}
-\ProvidesPackage{\tikzpingus at filename}[2023/09/17 version v1.1 Penguins in TikZ]
+\ProvidesPackage{\tikzpingus at filename}[2024/11/27 version v1.2 Penguins in TikZ]
 \newif\ifpengu at setup@glows@
 \DeclareOption{glows}{\pengu at setup@glows at true}\DeclareOption{noglows}{\pengu at setup@glows at false}
 \newif\ifpengu at setup@manual at layers@
 \DeclareOption{manual-layers}{\pengu at setup@manual at layers@true}\DeclareOption{nomanual-layers}{\pengu at setup@manual at layers@false}
-\newif\ifpengu at setup@bare@
-\DeclareOption{bare}{\pengu at setup@bare at true}\DeclareOption{nobare}{\pengu at setup@bare at false}
+% \newif\ifpengu at setup@bare@
+% \DeclareOption{bare}{\pengu at setup@bare at true}\DeclareOption{nobare}{\pengu at setup@bare at false}
 \ProcessOptions*
 
 \RequirePackage{etoolbox}
@@ -364,6 +364,8 @@
 \ifpengu at setup@manual at layers@\pgfsetlayers{background,main,middle,foreground}\fi\begingroup
 \@pingu at do@back at false
 \pgfqkeys{/pingu}{defaults, #1}%
+\let\pingu at path@lowerpingu\pingu at default@path at lowerpingu\relax
+\let\pingu at path@upperpingu\pingu at default@path at upperpingu\relax
 \ifdim\pingu at side@h at half<10.33mm \PackageWarning{\tikzpingus at filename}{Penguins with a height below 10.33mm may have unwanted artifacts.}\fi
 \scope[/pingu/@pingu,/pingu/@pingu at main]
 \scope[/pingu/@body]
@@ -370,20 +372,15 @@
 \@pingu at drawer@bodytype@
 \pingu at body@app
 \endscope
-
-\path (\pingu at name-head-center)++(0,-.05mm-\pingu at outer@off) coordinate (\pingu at name-bill);
-
+\path(\pingu at name-head-center)++(0,-.05mm-\pingu at outer@off) coordinate (\pingu at name-bill);
 \scope[shift=(\pingu at name-belly-center),/pingu/@belly]
 \clip[use path=\pingu at whitepingu]; \pingu at belly@raw
 \endscope
-\coordinate (\pingu at name-head) at (\pingu at w@half,.7375cm);
-
+\coordinate(\pingu at name-head) at (\pingu at w@half,.7375cm);
 \scope[/pingu/@eyes]
 \@pingu at drawer@lefteye@ \@pingu at drawer@righteye@
 \endscope
-
 \pingu at layer{background}[]\pingu at draw@clothing at behind\endpingu at layer
-
 \pingu at draw@clothing at middle
 \scope[/pingu/@extras,/pingu/@extras at below]
 \pingu at draw@extras at below
@@ -444,7 +441,7 @@
 
 %   #region lower-pingu
 % Note: to be used in clippies
-\def\pingu at path@lowerpingu{(0,\pingu at outer@off)
+\def\pingu at default@path at lowerpingu{(0,\pingu at outer@off)
 % left side
 to[bend right=\pingu at bend] ++(0,-\pingu at side@h at half-\pingu at outer@off)
 % feety stuff
@@ -453,8 +450,9 @@
 % right side
 to[bend right=\pingu at bend] ++(0,\pingu at side@h at half+\pingu at outer@off)
 arc(0:180:\pingu at w@half{} and \pingu at head@h at half) -- cycle}% arc clip to secure wings
-\def\pingu at path@upperpingu{(\pingu at name-head-center) ellipse [x radius=\pingu at w@half, y radius=\pingu at head@h at half]}
-
+\def\pingu at default@path at upperpingu{(\pingu at name-head-center) ellipse [x radius=\pingu at w@half, y radius=\pingu at head@h at half]}
+\let\pingu at path@lowerpingu\pingu at default@path at lowerpingu
+\let\pingu at path@upperpingu\pingu at default@path at upperpingu
 %   #endregion
 % #endregion
 
@@ -601,6 +599,21 @@
 % #endregion
 % #region legacy
 \pingu at bodytype@add{legacy}{%
+\gdef\pingu at path@lowerpingu{%
+(0,\pingu at outer@off)
+% left side
+to[bend right=1.25*\pingu at bend] ++(0,-.95\pingu at side@h at half-\pingu at outer@off+.65\pingu at one)%
+% feety stuff
+to[out=270,in=270]
+++(2*\pingu at w@half,0)
+% right side
+to[bend right=1.25*\pingu at bend] ++(0,.95\pingu at side@h at half+\pingu at outer@off-.65\pingu at one)
+arc(0:180:\pingu at w@half{} and \pingu at head@h at half) -- cycle
+}
+\gdef\pingu at path@upperpingu{(\pingu at name-head-center)
+++(0,\pingu at head@h at half)
+arc(90:450:\pingu at w@half{} and \pingu at head@h at half);
+}
 \pingu at block[save path=\pingu at lowerpingu]{\pingu at color@body at main} (0,\pingu at outer@off)
 % left side
 to[bend right=1.25*\pingu at bend] coordinate[pos=.77] (\pingu at name-waist-right) ++(0,-.95\pingu at side@h at half-\pingu at outer@off+.65\pingu at one) coordinate (@b) % for bottom clip
@@ -753,6 +766,9 @@
 \def\@pingu at wingangle@items at none@{90}
 \def\@pingu at wingdown@none@{90}
 
+% to hide it with the glow
+\def\pingu at wing@compensator#1{#1}
+
 %     #region wings-normal
 \@pingu at wings@s{normal}{%
     \coordinate (\pingu at name-wing-left-start) at ([yshift=-6.5mm]\pingu at name-wings-side-left);
@@ -778,8 +794,8 @@
     \path[/pingu/@invclip] \pingu at path@lowerpingu;
     \endpgfinterruptboundingbox
     \pingu at block[rotate around={-39:(\pingu at name-wing-left-start)}]{\pingu at color@left at wing} (\pingu at name-wing-left-start) ellipse [x radius=2.2mm, y radius=9.35mm] +(90:.22cm and .935cm) coordinate (\pingu at name-wing-left-tip) +(150:.22cm and .935cm) coordinate (\pingu at name-wing-left-cap-up) +(-3:.22cm and .935cm) coordinate (\pingu at name-wing-left-cap-down) +(90:.175cm and .75cm) coordinate (\pingu at name-wing-left);
-    \pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.03mm,4.6mm) to[out=-80,in=220] (\pingu at name-wing-left-cap-up) -- (\pingu at name-wing-left-start) -- cycle;
-    \pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.085mm,-4.4mm) to[out=80,in=-131] (\pingu at name-wing-left-cap-down) -- (\pingu at name-wing-left-start) -- cycle;
+    \pingu at wing@compensator{\pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.03mm,4.6mm) to[out=-80,in=220] (\pingu at name-wing-left-cap-up) -- (\pingu at name-wing-left-start) -- cycle;
+    \pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.085mm,-4.4mm) to[out=80,in=-131] (\pingu at name-wing-left-cap-down) -- (\pingu at name-wing-left-start) -- cycle;}
     \endscope}{%
     \coordinate (\pingu at name-wing-right-start) at ([yshift=-5.85mm]\pingu at name-wings-side-right);
 \scope[xshift=\p@] % shift to avoid rounding errors in pdf viewers
@@ -787,8 +803,8 @@
     \path[/pingu/@invclip] \pingu at path@lowerpingu;
     \endpgfinterruptboundingbox
     \pingu at block[rotate around={39:(\pingu at name-wing-right-start)}]{\pingu at color@right at wing} (\pingu at name-wing-right-start) ellipse [x radius=.22cm, y radius=.935cm] +(90:.22cm and .935cm) coordinate (\pingu at name-wing-right-tip) +(30:.22cm and .935cm) coordinate (\pingu at name-wing-right-cap-up) +(177:.22cm and .935cm) coordinate (\pingu at name-wing-right-cap-down) +(90:.175cm and .775cm) coordinate (\pingu at name-wing-right);
-    \pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.03mm,4.6mm) to[out=-100,in=-45] (\pingu at name-wing-right-cap-up) -- (\pingu at name-wing-right-start) -- cycle;
-    \pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.1mm,-4.4mm) to[out=100,in=-50] (\pingu at name-wing-right-cap-down) -- (\pingu at name-wing-right-start) -- cycle;
+    \pingu at wing@compensator{\pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.03mm,4.6mm) to[out=-100,in=-45] (\pingu at name-wing-right-cap-up) -- (\pingu at name-wing-right-start) -- cycle;
+    \pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.1mm,-4.4mm) to[out=100,in=-50] (\pingu at name-wing-right-cap-down) -- (\pingu at name-wing-right-start) -- cycle;}
 \endscope}{\pingu at wi@above}{-10}{-110}
 %     #endregion
 %     #region wings-raise
@@ -845,8 +861,8 @@
 \path[/pingu/@invclip] \pingu at path@lowerpingu;
 \endpgfinterruptboundingbox
 \pingu at block[rotate around={-128:(\pingu at name-wing-left-start)}]{\pingu at color@left at wing} (\pingu at name-wing-left-start) ellipse [x radius=.235cm, y radius=.925cm] +(90:.235cm and .935cm) coordinate (\pingu at name-wing-left-tip) +(175:.235cm and .935cm) coordinate (\pingu at name-wing-left-cap-up) +(22:.235cm and .935cm) coordinate (\pingu at name-wing-left-cap-down) +(90:.175cm and .775cm) coordinate (\pingu at name-wing-left);
-\pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.03mm,4.6mm) to[out=-80,in=140] (\pingu at name-wing-left-cap-up) -- (\pingu at name-wing-left-start) -- cycle;
-\pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.085mm,-4.4mm) to[out=82,in=155] (\pingu at name-wing-left-cap-down) -- (\pingu at name-wing-left-start) -- cycle;
+\pingu at wing@compensator{\pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.03mm,4.6mm) to[out=-80,in=140] (\pingu at name-wing-left-cap-up) -- (\pingu at name-wing-left-start) -- cycle;
+\pingu at block{\pingu at color@left at wing} (\pingu at name-wing-left-start)++(.085mm,-4.4mm) to[out=82,in=155] (\pingu at name-wing-left-cap-down) -- (\pingu at name-wing-left-start) -- cycle;}
 \endscope}{%
 \coordinate (\pingu at name-wing-right-start) at ([yshift=-6.25mm]\pingu at name-wings-side-right);
 \scope[xshift=\p@] % shift to avoid rounding errors in pdf viewers
@@ -854,8 +870,8 @@
 \path[/pingu/@invclip] \pingu at path@lowerpingu;
 \endpgfinterruptboundingbox
 \pingu at block[rotate around={128:(\pingu at name-wing-right-start)}]{\pingu at color@right at wing} (\pingu at name-wing-right-start) ellipse [x radius=.235cm, y radius=.935cm] +(90:.235cm and .935cm) coordinate (\pingu at name-wing-right-tip) +(5:.235cm and .935cm) coordinate (\pingu at name-wing-right-cap-up) +(160:.235cm and .935cm) coordinate (\pingu at name-wing-right-cap-down) +(90:.175cm and .775cm) coordinate (\pingu at name-wing-right);
-\pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.03mm,4.6mm) to[out=-100,in=40] (\pingu at name-wing-right-cap-up) -- (\pingu at name-wing-right-start) -- cycle;
-\pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.085mm,-4.4mm) to[out=92,in=20] (\pingu at name-wing-right-cap-down) -- (\pingu at name-wing-right-start) -- cycle;
+\pingu at wing@compensator{\pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.03mm,4.6mm) to[out=-100,in=40] (\pingu at name-wing-right-cap-up) -- (\pingu at name-wing-right-start) -- cycle;
+\pingu at block{\pingu at color@right at wing} (\pingu at name-wing-right-start)++(-.085mm,-4.4mm) to[out=92,in=20] (\pingu at name-wing-right-cap-down) -- (\pingu at name-wing-right-start) -- cycle;}
 \endscope}{\pingu at wi@above}{-30}{-62}
 \let\@pingu at wings@s\relax
 %     #endregion
@@ -1075,6 +1091,7 @@
     \pingu at xif@eb{devilwings}{devilwings}%
     \pingu at xif@eb{glow}{glow}%
     \pingu at xif@eb{belt}{belt}%
+    \pingu at xif@eb{santabeard}{santabeard}%
     \pingu at xif@eb{tie}{tie}%
     \pingu at xif@eb{pants}{pants}%
     \pingu at xif@eb{medal}{medal}%
@@ -1161,9 +1178,11 @@
     \pingu at layer{background}[]
     \@for\i:={\pingu at x@extra at glow@steps}\do{
         \scope[/pingu/@block/.append style={draw=\pingu at color@glow,line width=\pingu at x@extra at glow@width at func},/pingu/@draw/.append style={draw=\pingu at color@glow,line width=\pingu at x@extra at glow@width at func},opacity=\pingu at x@extra at glow@func,transparency group]
-        \pingu at draw{\pingu at color@glow} \pingu at path@lowerpingu;
+        \pingu at draw[sharp corners]{\pingu at color@glow} \pingu at path@lowerpingu;
+        \pingu at draw[sharp corners]{\pingu at color@glow} \pingu at path@upperpingu; 
         % todo: disable re set of coordinates
-        % only draw, if not ofset
+        % only draw, if not offset
+        \tikzset{rounded corners/.style={}}\def\pingu at wing@compensator##1{}%
         \csname @pingu at wingitem@\@pingu at select@leftwing@ @\endcsname\@pingu at drawer@leftwing@\fi
         \csname @pingu at wingitem@\@pingu at select@rightwing@ @\endcsname\@pingu at drawer@rightwing@\fi
         \endscope
@@ -1185,8 +1204,11 @@
     \pingu at xif@ea{glassesround}{glassesround}%
     \pingu at xif@ea{devilhorns}{devilhorns}%
     \pingu at xif@ea{headband}{headband}%
+    \pingu at xif@ea{vrheadset}{vrheadset}%
     \pingu at xif@ea{strawhat}{strawhat}%
+    \pingu at xif@ea{graduate}{graduate}%
     \pingu at xif@ea{hat}{hat}%
+    \pingu at xif@ea{spacehelmet}{spacehelmet}%
     \pingu at xif@ea{mitra}{mitra}%
     \pingu at xif@ea{witchhat}{witchhat}%
     \pingu at xif@ea{constructionhelmet}{constructionhelmet}%
@@ -1198,13 +1220,11 @@
     \pingu at xif@ea{princesscrown}{princesscrown}%
     \pingu at xif@ea{rook}{rook}%
     \pingu at xif@ea{halo}{halo}%
-    \pingu at xif@ea{vrheadset}{vrheadset}%
     \pingu at xif@ea{headphone}{headphone}%
     \pingu at xif@ea{sheriffstar}{sheriffstar}%
     \pingu at xif@ea{santahat}{santahat}%
     \pingu at xif@ea{woolhat}{woolhat}%
     \pingu at xif@ea{deerhat}{deerhat}%
-    \pingu at xif@ea{santabeard}{santabeard}%
     \pingu at xif@ea{banner}{banner}%
     \pingu at xif@ea{bee}{bee}%
 }
@@ -1381,69 +1401,2345 @@
 }
 % #endregion
 
-\def\pingu@@dummy at lib#1#2{%
-    \pgfqkeys{/pingu}{#1/.code={\PackageError{\tikzpingus at filename}{To use '#1' you need to load the '#2' library via '\string\pinguloadlibrary{#2}'}}}%
-    \expandafter\def\csname pingu@@lib@#1@\endcsname{#2}%
+
+% #region bee-lib
+\pingu at create@extra{bee}{%
+    bee/.code    	  = {\pingu at set@extra{bee}{true}\pingu at color{bee}{#1}},
+    bee/.default      = pingu at yellow!60!pingu at white,%
+    bee body/.code    = \pingu at color{bee at body}{#1},
+    bee eyes/.code    = \pingu at color{bee at eyes}{#1},
+    bee wings/.code    = \pingu at color{bee at wings}{#1},
+    bee mouth/.code    = \pingu at color{bee at mouth}{#1},
+    bee blush/.code    = \pingu at color{bee at blush}{#1},
+    bee position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@bee at angle{#1}\def\pingu at x@bee at xshift{#2}\def\pingu at x@bee at yshift{#3}\def\pingu at x@bee at scale{#4}},
+}{bee body=pingu at black!82!gray,bee wings=pingu at blue!8!pingu at white,bee mouth=\pingu at color@bee at body,bee eyes=\pingu at color@bee at body,bee blush=pingu at red!21!\pingu at color@bee,bee position={-27.5:(8mm,15mm){.875}}}
+
+\def\pingu at bee@x at lbody{ (left) to[out=270,in=150] (0,-.725) to[out=30,in=270] (right)}
+
+\def\pingu at draw@ea at bee{%
+\scope[very path/.append style={line join=round},rotate around={\pingu at x@bee at angle:(\pingu at name-head)},shift={(\pingu at name-head)},shift={(\pingu at x@bee at xshift,\pingu at x@bee at yshift)},scale=\pingu at x@bee at scale]
+% wings
+\coordinate (wl) at(20:2.55mm);
+\coordinate (wr) at(160:2.55mm);
+\pingu at draw[fill=\pingu at color@bee at wings!80!white,rotate around=-32:(wl)]{\pingu at color@bee at body} (wl) ellipse [x radius=6.15mm, y radius=2.75mm];
+\pingu at draw[fill=\pingu at color@bee at wings!80!white,rotate around=32:(wr)]{\pingu at color@bee at body} (wr) ellipse [x radius=6.15mm, y radius=2.75mm];
+\pingu at draw[fill=\pingu at color@bee at wings,rotate around=19:(wl)]{\pingu at color@bee at body} (wl) ellipse [x radius=6.55mm, y radius=3.125mm];
+\pingu at draw[fill=\pingu at color@bee at wings,rotate around=-19:(wr)]{\pingu at color@bee at body} (wr) ellipse [x radius=6.55mm, y radius=3.125mm];
+% body
+\path (-.375,0) coordinate (left) -- (.375,0) coordinate (right);
+% TODO: block draw?
+\pingu at block[draw=\pingu at color@bee at body]{\pingu at color@bee at body} \pingu at bee@x at lbody;
+\scope\clip\pingu at bee@x at lbody;
+\foreach \angl in {30,1} {
+\pingu at block{\pingu at color@bee} (-\angl:.75) to[bend left=14] (180+\angl:.75) -- ++(0,-1.75mm)
+                     to[bend right=14] (-\angl-14:.75) -- cycle;
+}\endscope
+% left and right arm
+\foreach\m/\s/\k in {right/-2.45/95,left/-.75/80} {
+\scope[shift=(\m),yshift=\s,rotate around=\k:(\m),scale=.166]
+\pingu at block{\pingu at color@bee at body} (-.965,0) arc(270:90:.29) -- ++(1.233,0) arc (90:-90:.29) -- cycle;
+\endscope}
+% sting
+\pingu at draw[line cap=round,thick]{\pingu at color@bee at body} (0,-.725) -- ++(0,-.035);
+% head
+\pingu at draw[fill=\pingu at color@bee,rounded corners=1.5pt]{\pingu at color@bee at body} (.85mm,-.55mm) to[bend right=30,looseness=.9] ([xshift=1.45mm,yshift=1.35mm]right) arc(0:180:{(.75cm+2*1.45mm)/2} and {(.75cm+2*1.45mm)/2.05}) to[bend right=30,looseness=.9] (-.85mm,-.55mm) -- cycle;
+% eyes [intersect with left and right]
+\pingu at block{\pingu at color@bee at eyes} (left|-0,2.265mm)++(.6mm,0) coordinate (el) circle[radius=.6mm];
+\coordinate (ell) at ([yshift=-.8mm]el);
+\pingu at block[rotate around=3:(ell)]{\pingu at color@bee at blush} ([yshift=-.8mm]el) ellipse[x radius=.412mm, y radius=.165mm];
+\pingu at block{\pingu at color@bee at eyes} (right|-0,2.265mm)++(-.6mm,0) coordinate (er) circle[radius=.6mm];
+\coordinate (err) at ([yshift=-.8mm]er);
+\pingu at block[rotate around=-1:(err)]{\pingu at color@bee at blush} ([yshift=-.8mm]er) ellipse[x radius=.4mm, y radius=.155mm];
+% mouth
+\scope[yshift=1mm]
+\pingu at draw[semithick,line cap=round]{\pingu at color@bee at mouth} (-.6mm,0) arc (180:360:.6mm and .415mm);
+% antenna
+\pingu at draw[line cap=round]{\pingu at color@bee at body} (123:4mm) to[out=110,in=-41] ++(-1mm,3mm) coordinate (@);
+\pingu at block[rotate around=-41:(@)]{\pingu at color@bee at body} ([xshift=-.1mm,yshift=-.185mm]@) ellipse[x radius=.55mm,y radius=.35mm];
+\pingu at draw[line cap=round]{\pingu at color@bee at body} (57:4mm) to[out=70,in=180+41] ++(1mm,3mm) coordinate (@);
+\pingu at block[rotate around=41:(@)]{\pingu at color@bee at body} ([xshift=-.1mm,yshift=-.2mm]@) ellipse[x radius=.55mm,y radius=.35mm];
+\endscope
+\endscope
 }
-\def\pingu@@dummy at selector#1#2#3{%
-    \expandafter\csname pingu@#3 at add\endcsname{#1}{\PackageError{\tikzpingus at filename}{To use '#1' with '#3' you need to load the '#2' library via '\string\pinguloadlibrary{#2}'}}%
-    \expandafter\def\csname pingu@@lib@#1@#3@\endcsname{#2}%
+
+\pingu at create@wing at extra{flower}{%
+  flower \@lr/.code         = {\pingu at set@extra{flower\@lr}{true}\pingu at color{flower\@lr}{##1}},
+  flower \@lr/.default      = pingu at purple!80!pingu at yellow,
+  flower \@lr\space center/.code   = \pingu at color{flower@\@lr @center}{##1},
+  flower \@lr\space center size/.code = \expandafter\def\csname pingu at flower@\@lr @center at size\endcsname{##1},
+  flower \@lr\space stem/.code   = \pingu at color{flower@\@lr @stem}{##1},
+  flower \@lr\space stem length/.code = \expandafter\def\csname pingu at flower@\@lr @stem at length\endcsname{##1},
+  flower \@lr\space stem width/.code = \expandafter\def\csname pingu at flower@\@lr @stem at width\endcsname{##1},
+  flower \@lr\space stem tilt/.code = \expandafter\def\csname pingu at flower@\@lr @stem at tilt\endcsname{##1},
+  flower \@lr\space size/.code  = \expandafter\def\csname pingu at flower@\@lr @size\endcsname{##1},
+  flower \@lr\space petal count/.code  = \expandafter\def\csname pingu at flower@\@lr @petals\endcsname{##1},
+  flower \@lr\space petal width/.code  = \expandafter\def\csname pingu at flower@\@lr @petals at width\endcsname{##1},
+  flower \@lr\space petal start angle/.code  = \expandafter\def\csname pingu at flower@\@lr @petals at start@angle\endcsname{##1},
+  flower \@lr\space petal peak/.code  = \expandafter\def\csname pingu at flower@\@lr @petals at peak\endcsname{##1},
+}{flower \@lr\space size=.3mm, flower \@lr\space center=brown!50!pingu at yellow, flower \@lr\space center size=.65mm, flower \@lr\space stem=green!90!pingu at yellow!70!pingu at black, flower \@lr\space stem length=6mm,flower \@lr\space stem width=.15mm,flower \@lr\space stem tilt=-.5mm, flower \@lr\space petal count=5, flower \@lr\space petal start angle=27, flower \@lr\space petal width=4.5pt, flower \@lr\space petal peak=2}
+
+% #1 wing
+\def\pingu at draw@wi at flower#1{%
+\pingu at setup@wing{flower}{#1}%
+    \pingu at draw[line width=\csname pingu at flower@#1 at stem@width\endcsname]{\csname pingu at color@flower@#1 at stem\endcsname} ([yshift=-.5mm]\pingu at name-wing-#1) to[out=80,in=-20] ++(\csname pingu at flower@#1 at stem@tilt\endcsname,\csname pingu at flower@#1 at stem@length\endcsname) coordinate (\pingu at name-flower-center-#1) coordinate (@);
+\pgfmathsetmacro\AnglePerPetal{360/\csname pingu at flower@#1 at petals\endcsname}
+\edef\@currwidth{\csname pingu at flower@#1 at petals@width\endcsname}%
+\foreach \i in {1,...,\csname pingu at flower@#1 at petals\endcsname} {
+    \pgfmathsetmacro{\@currrot}{\i*\AnglePerPetal+\csname pingu at flower@#1 at petals@start at angle\endcsname}%
+    \scope[rotate around={\@currrot:(@)}]
+\pingu at block{\@col} (@) to[bend right=4] ++(\@currwidth,.5*\csname pingu at flower@#1 at size\endcsname) arc(-9:189:\@currwidth\space and \@currwidth*\csname pingu at flower@#1 at petals@peak\endcsname) to[bend right=4] ++(\@currwidth,-.5*\csname pingu at flower@#1 at size\endcsname) -- cycle;
+\endscope
+\pingu at block{\csname pingu at color@flower@#1 at center\endcsname} (\pingu at name-flower-center-#1) circle[radius=\csname pingu at flower@#1 at center@size\endcsname];
 }
-\def\pingu at dummy@lib#1#2{\edef\tmp at list{#2}\@for\@current:=\tmp at list\do{\expandafter\pingu@@dummy at lib\expandafter{\@current}{#1}}\xappto\pingu at defaultlibs{,{#1}/{#2}}\xappto\pingu@@defaultlibs{,#1}}%
-% library | selector | keys
-\def\pingu at dummy@selector#1#2#3{\edef\tmp at list{#3}\@for\@current:=\tmp at list\do{\expandafter\pingu@@dummy at selector\expandafter{\@current}{#1}{#2}}}
-\def\pingu at defaultlibs{}\def\pingu@@defaultlibs{}
-\providecommand\pingulibpathprefix{}
-\def\pingu at load@library#1{%
-% store common catcodes
-\expandafter\edef\csname pingu at lib@#1 at atcode\endcsname{\the\catcode`\@}%
-\expandafter\edef\csname pingu at lib@#1 at barcode\endcsname{\the\catcode`\|}%
-\expandafter\edef\csname pingu at lib@#1 at dollarcode\endcsname{\the\catcode`\$}%
-\catcode`\@=11 \catcode`\|=12 \catcode`\$=3\relax
-\def\pingu at tmp{\pingulibpathprefix tikzpingus-#1.lib.tex}\relax
-\InputIfFileExists{\pingu at tmp}{}{\PackageError{\tikzpingus at filename}{There is no '#1' library (searched: '\pingu at tmp')}}
-% restore catcodes
-\catcode`\@=\csname pingu at lib@#1 at atcode\endcsname
-\catcode`\|=\csname pingu at lib@#1 at barcode\endcsname
-\catcode`\$=\csname pingu at lib@#1 at dollarcode\endcsname
 }
-\def\pingu at loadlibrary#1{%
-\ifcsname pingu at lib@#1 at loaded\endcsname\else% do not load again
-    \expandafter\let\csname pingu at lib@#1 at loaded\endcsname=\@empty
-    \pingu at load@library{#1}\relax
+% #endregion
+% #endregion
+
+% #region christmas-lib
+\pingu at create@extra{santahat}{%
+    santa hat/.code             = \pingu at set@extra{santahat}{true}\pingu at color{santahat}{#1}\pgfqkeys{/pingu}{hair=\@pingu at none},
+    santa hat/.default          = pingu at red!87!pingu at black,
+    santa hat second/.code      = \pingu at color{santahat at second}{#1},
+    santa hat bobble/.code      = \pingu at color{santahat at bobble}{#1}
+}{santa hat second={pingu at white!97!\pingu at color@santahat},santa hat bobble={\pingu at color@santahat at second}}
+\def\pingu at draw@ea at santahat{%
+\path (\pingu at name-head-center)+(152:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-santa-right);
+\path (\pingu at name-head-center)+(5:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-santa-left);
+\pingu at layer{middle}[]
+\pingu at block{\pingu at color@santahat at second} (\pingu at name-santa-right) to[out=48,in=132] (\pingu at name-santa-left) to[out=30,in=-45,looseness=1.325] ++(0,3.2mm)
+to[out=135,in=47,looseness=1.025] coordinate[pos=.915] (\pingu at name-santa-ur) coordinate[pos=.055] (\pingu at name-santa-ul) ([yshift=2mm]\pingu at name-santa-right) to[out=240,in=140] cycle;
+\endpingu at layer
+\pingu at layer{background}[]
+\pingu at block{\pingu at color@santahat} (\pingu at name-santa-ur) arc(145:-25:11.85mm and 14.915mm)
+    to[bend right=7] coordinate[pos=.5] (\pingu at name-santa-lc) ++(-1.11mm,.375mm) to[bend right=11] (\pingu at name-santa-ul) to[bend right=15] cycle;
+\pingu at block{\pingu at color@santahat at bobble} (\pingu at name-santa-lc) circle[radius=2.625mm];
+\endpingu at layer
+}
+\pingu at create@extra{santabeard}{%
+    santa beard/.code             = \pingu at set@extra{santabeard}{true}\pingu at color{santabeard}{#1},
+    santa beard/.default          = pingu at white!96!pingu at red!98!pingu at black!92!gray,
+    santa beard string/.code      = \pingu at color{santabeard at string}{#1}
+}{santa beard string=\pingu at color@body at main!85!pingu at black}
+\def\pingu at draw@eb at santabeard{%
+% \coordinate (\pingu at name-santa-beard-center) at ([yshift=1.25mm]\pingu at name-belly-center);
+\pingu at block{\pingu at color@santabeard at string} ([xshift=-.35mm,yshift=.575mm]\pingu at name-head-back-con-right) to[bend right=28,edge node={foreach[count=\i] \l in {0.03,0.085,...,0.992} {coordinate[pos=\l-rand*.015,yshift=-.85pt] (\pingu at name-santa-beard-\i)}}]
+([yshift=.575mm,xshift=.35mm]\pingu at name-head-back-con-left) arc(20:110:.05mm and .15mm) to[bend left=26] ([yshift=.575mm+.15mm,xshift=-.35mm]\pingu at name-head-back-con-right) to[bend right] cycle;
+\ifx\pingu at color@santabeard\@pingu at none\else% to allow for random
+\xdef\@pmaxY{18}\xdef\@pmaxYI{17}%
+\foreach[evaluate=\j as \maxj using int(\@pmaxY-\j),evaluate=\j as \widthred using \j/23pt] \j in {0,...,\@pmaxYI} {
+\foreach[remember=\i as \li (initially 0)] \i in {1,...,\maxj} {
+    \pgfmathsetmacro\@ptmp{94+rand*2.6}
+    \pingu at block{\pingu at color@santabeard!\@ptmp!pingu at black} (\pingu at name-santa-beard-\i) circle [radius=1.85pt-\widthred pt+rand*.35pt];
+    \ifnum\li>0 % make middle of last
+        \path (\pingu at name-santa-beard-\li) -- (\pingu at name-santa-beard-\i) coordinate[pos=.5,yshift=-1.1pt,xshift=.133pt] (\pingu at name-santa-beard-\li); % smoll shift
+    \fi
+}}\fi
+}
+
+\pingu at create@extra{woolhat}{%
+    wool hat/.code             = \pingu at set@extra{woolhat}{true}\pingu at color{woolhat}{#1}\pgfqkeys{/pingu}{hair=\@pingu at none},
+    wool hat/.default          = pingu at blue!57!pingu at black,
+    wool hat second/.code      = \pingu at color{woolhat at second}{#1},
+    wool hat bobble/.code      = \pingu at color{woolhat at bobble}{#1}
+}{wool hat second={\pingu at color@woolhat!55!pingu at white},wool hat bobble={\pingu at color@woolhat at second}}
+\def\pingu at draw@ea at woolhat{%
+\path ([yshift=.5mm,xshift=.165mm]\pingu at name-head-center)+(165:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-wool-right);
+\path ([yshift=.5mm,xshift=-.045mm]\pingu at name-head-center)+(4:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-wool-left);
+\pingu at layer{middle}[]
+\pingu at block{\pingu at color@woolhat at second} (\pingu at name-wool-right) to[out=37,in=170] (\pingu at name-wool-left) to[out=50,in=-55] ++(0,1.52mm) coordinate (\pingu at name-wool-left-up)
+to[out=167,in=38] coordinate[pos=.915] (\pingu at name-wool-ur) coordinate[pos=.055] (\pingu at name-wool-ul) ([yshift=1.5mm]\pingu at name-wool-right) coordinate (\pingu at name-wool-right-up) to[out=240,in=140] cycle;
+\endpingu at layer
+\path (\pingu at name-wool-left-up) -- (\pingu at name-wool-right-up) coordinate[pos=.455,yshift=9.75mm] (@mid);
+\pingu at block{\pingu at color@woolhat} (\pingu at name-wool-right-up) to[out=71,in=203] [rounded corners=2pt] (@mid) to[out=-34,in=100]  [sharp corners]  (\pingu at name-wool-left-up) to[in=37,out=172] cycle;
+\pingu at layer{background}[]
+\pingu at block{\pingu at color@woolhat at bobble} (@mid) circle [radius=1.25mm];
+\endpingu at layer
+}
+
+
+\pingu at create@extra{deerhat}{%
+    deer hat/.code             = \pingu at set@extra{deerhat}{true}\pingu at color{deerhat}{#1}\pgfqkeys{/pingu}{hair=\@pingu at none},
+    deer hat/.default          = pingu at bronze!57!pingu at black,
+    deer hat b/.code           = \pingu at color{deerhat at b}{#1},
+    deer hat band/.code        = \pingu at color{deerhat at band}{#1},
+}{deer hat band={\pingu at color@deerhat!85!pingu at black},deer hat b=\pingu at color@deerhat}
+\pgfmathsetmacro\pingu at deerhat@baseang at l{90-360*(1-\pinguanglehl)}
+\pgfmathsetmacro\pingu at deerhat@baseang at r{90-360*(1-\pinguanglehr)}
+\def\pingu at deerhat@baseoff{47}
+\def\pingu at deerhat@yshift{.15mm}
+\def\pingu at deerhat@linewidth{1.32mm}
+\def\pingu at deerhat@headoff at l{22}
+\def\pingu at deerhat@headoff at r{19}
+\def\pingu at draw@ea at deerhat{%
+\path ([yshift=-\pingu at deerhat@yshift]\pingu at name-head-left) arc (\pingu at deerhat@baseang at l:\pingu at deerhat@baseang at l-\pingu at deerhat@baseoff:\pingu at w@half{} and \pingu at head@h at half) coordinate[yshift=.05mm] (@target);
+\pingu at draw[line width=.7mm]{\pingu at color@deerhat at band} ([xshift=-.8mm]@target) arc (\pingu at deerhat@baseang at l-\pingu at deerhat@baseoff:360+\pingu at deerhat@baseang at r+\pingu at deerhat@baseoff:\pingu at w@half{}-.8mm and \pingu at head@h at half);
+
+\path ([yshift=-\pingu at deerhat@yshift]\pingu at name-head-top) arc (90:90-\pingu at deerhat@headoff at l:\pingu at w@half{} and \pingu at head@h at half) coordinate (@left);
+\path ([yshift=-\pingu at deerhat@yshift]\pingu at name-head-top) arc (90:90+\pingu at deerhat@headoff at r:\pingu at w@half{} and \pingu at head@h at half) coordinate (@right);
+
+\pgfonlayer{background}
+\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat} (@left) to[bend right=4] ++(.85mm,1.5mm) coordinate (@a) -- ++(3.15mm,.5mm) coordinate (@b) -- ++(4.65mm,4.35mm) coordinate[pos=.5] (@c) to[bend right=10] ++(-.75mm,2.55mm);
+\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat} ([xshift=-.135mm,yshift=-.425mm]@a) to[bend left=3] ++(1mm,3.9mm) ([xshift=-.4mm,yshift=-.05mm]@b) to[bend right=2] ++(3.75mm,.1mm) (@c) to[bend left=12] ++(-1mm,3.5mm);
+\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat at b} (@right) to[bend left=4] ++(-.85mm,1.5mm) coordinate (@a) -- ++(-3.15mm,.5mm) coordinate (@b) -- ++(-4.65mm,4.35mm) coordinate[pos=.5] (@c) to[bend left=10] ++(.75mm,2.55mm);
+\pingu at draw[line width=\pingu at deerhat@linewidth,rounded corners=2pt,line cap=round]{\pingu at color@deerhat at b} ([yshift=-.425mm,xshift=.135mm]@a) to[bend right=3] ++(-1mm,3.9mm) ([xshift=.4mm,yshift=-.05mm]@b) to[bend right=2] ++(-3.75mm,.1mm) (@c) to[bend right=12] ++(1mm,3.5mm);
+\endpgfonlayer
+}
+
+\pingu at create@wing at extra{present}{%
+  present \@lr/.code              = {\pingu at set@extra{present\@lr}{true}\pingu at color{present\@lr}{##1}},
+  present \@lr/.default           = pingu at red!50!pingu at black!60!red,
+  present \@lr\space width/.code  = \@namedef{pingu at present@\@lr @width}{##1},
+  present \@lr\space height/.code = \@namedef{pingu at present@\@lr @height}{##1},
+  present \@lr\space ribbon/.code   = \pingu at color{present\@lr @ribbon}{##1},%
+  present \@lr\space band/.code   = \pingu at color{present\@lr @band}{##1},%
+  present \@lr\space band width/.code  = \@namedef{pingu at present@\@lr @band at width}{##1},
+  present \@lr\space xshift/.code = \@namedef{pingu at present@\@lr @xshift}{##1},
+  present \@lr\space yshift/.code = \@namedef{pingu at present@\@lr @yshift}{##1},
+  present \@lr\space band second height/.code = \@namedef{pingu at present@\@lr @band at second@height}{##1},
+  present \@lr\space band second yshift/.code = \@namedef{pingu at present@\@lr @band at second@yshift}{##1},
+  present \@lr\space lid/.code   = \pingu at color{present\@lr @lid}{##1},%
+  present \@lr\space lid height/.code = \@namedef{pingu at present@\@lr @lid at height}{##1},
+  present \@lr\space lid overhang/.code = \@namedef{pingu at present@\@lr @lid at overhang}{##1},
+  present \@lr\space lid yshift/.code = \@namedef{pingu at present@\@lr @lid at yshift}{##1},
+  present \@lr\space lid band/.code   = \pingu at color{present\@lr @lid at band}{##1},%
+}{present \@lr\space band=pingu at green!70!pingu at black!90!pingu at white,present \@lr\space width=7.75mm,present \@lr\space band width=1.75mm,present \@lr\space height=7mm,present \@lr\space yshift=-0.25*(\csname pingu at present@\@lr @height\endcsname),present \@lr\space band second height=\csname pingu at present@\@lr @band at width\endcsname, present \@lr\space band second yshift=0.5*(\csname pingu at present@\@lr @height\endcsname),present \@lr\space xshift=-0.25*(\csname pingu at present@\@lr @width\endcsname),present \@lr\space lid=\csname pingu at color@present\@lr\endcsname!92!pingu at black,present \@lr\space lid height=1.33mm,present \@lr\space lid overhang=.125mm,present \@lr\space lid yshift=0,present \@lr\space lid band=\csname pingu at color@present\@lr @band\endcsname!98!pingu at black,present \@lr\space ribbon=\csname pingu at color@present\@lr @band\endcsname!97!pingu at black}
+
+% TODO: more ribbon color control
+% #1 wing
+\def\pingu at draw@wi at present#1{%
+    \pingu at setup@wing{present}{#1}%
+    \scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+        \pingu at block[rounded corners=2pt]{\@col}(\pingu at name-wing-#1)++(-{0.5*(\csname pingu at present@#1 at width\endcsname)+\csname pingu at present@#1 at xshift\endcsname},{\csname pingu at present@#1 at yshift\endcsname}) coordinate (@ll) rectangle ++({\csname pingu at present@#1 at width\endcsname},{\csname pingu at present@#1 at height\endcsname}) coordinate (@ur);
+        % vert band
+        \pingu at block{\csname pingu at color@present#1 at band\endcsname}(@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)-0.5*(\csname pingu at present@#1 at band@width\endcsname)},0) rectangle ++({\csname pingu at present@#1 at band@width\endcsname},{\csname pingu at present@#1 at height\endcsname});
+        % horiz band
+        \pingu at block{\csname pingu at color@present#1 at band\endcsname}(@ll)++(0,{\csname pingu at present@#1 at band@second at yshift\endcsname-0.5*(\csname pingu at present@#1 at band@second at height\endcsname)}) rectangle ++({\csname pingu at present@#1 at width\endcsname},{\csname pingu at present@#1 at band@second at height\endcsname});
+        % lid
+        \pingu at block[rounded corners=.75pt]{\csname pingu at color@present#1 at lid\endcsname} ([yshift={\csname pingu at present@\@lr @lid at yshift\endcsname},xshift=\csname pingu at present@\@lr @lid at overhang\endcsname]@ur) rectangle ++({-\csname pingu at present@#1 at width\endcsname-2*(\csname pingu at present@\@lr @lid at overhang\endcsname)},-\csname pingu at present@#1 at lid@height\endcsname) coordinate (@ll);
+        % upper lid band
+        \pingu at block{\csname pingu at color@present#1 at lid@band\endcsname}(@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)-0.5*(\csname pingu at present@#1 at band@width\endcsname)+\csname pingu at present@\@lr @lid at overhang\endcsname},0) rectangle ++({\csname pingu at present@#1 at band@width\endcsname},{\csname pingu at present@#1 at lid@height\endcsname});
+        % ribbon
+        \path (@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)+\csname pingu at present@\@lr @lid at overhang\endcsname+0.2*(\csname pingu at present@#1 at band@width\endcsname)},{\csname pingu at present@#1 at lid@height\endcsname+.25mm}) coordinate (@top);
+        \pingu at block[even odd rule]{\csname pingu at color@present#1 at ribbon\endcsname} (@top) to[out=40,in=110] ++(4mm,1mm)
+        to[out=-70,in=-20] ++(-4mm,-1.5mm) to[bend left=55] cycle ([xshift=.5mm]@top) to[out=40,in=110] ++(2.55mm,.5mm)
+        to[out=-70,in=-20] [rounded corners=1pt] ++(-2.85mm,-.835mm) -- cycle;
+        \path (@ll)++({0.5*(\csname pingu at present@#1 at width\endcsname)+\csname pingu at present@\@lr @lid at overhang\endcsname-0.2*(\csname pingu at present@#1 at band@width\endcsname)},{\csname pingu at present@#1 at lid@height\endcsname+.25mm}) coordinate (@top);
+        \pingu at block[even odd rule]{\csname pingu at color@present#1 at ribbon\endcsname} (@top) to[out=180-40,in=180-110] ++(-3.6mm,1mm)
+        to[out=-110,in=-160] ++(3.6mm,-1.5mm) to[bend right=55] cycle ([xshift=-.5mm]@top) to[out=140,in=70] ++(-2.55mm,.5mm)
+        to[out=-110,in=-160] [rounded corners=1pt] ++(2.55mm,-.75mm) -- cycle;
+        \pingu at block[rounded corners=.5pt]{\csname pingu at color@present#1 at ribbon\endcsname} (@top)++(-.3mm,-.65mm) rectangle ++(1.3mm,.65mm); % TODO: make that round? (i.e., bend edges)
+    \endscope
+}
+
+\pingu at create@wing at extra{snowball}{%
+  snowball \@lr/.code         = {\pingu at set@extra{snowball\@lr}{true}\pingu at color{snowball\@lr}{##1}},
+  snowball \@lr/.default      = pingu at white!90!pingu at black,
+  snowball \@lr\space size/.code  = \expandafter\def\csname pingu at snowball@\@lr @size\endcsname{##1},
+  snowball \@lr\space xshift/.code  = \expandafter\def\csname pingu at snowball@\@lr @xshift\endcsname{##1},
+  snowball \@lr\space yshift/.code  = \expandafter\def\csname pingu at snowball@\@lr @yshift\endcsname{##1}
+}{snowball \@lr\space size=2.33mm, snowball \@lr\space xshift=0pt, snowball \@lr\space yshift=0pt}
+
+% #1 wing
+% TODO: shifts
+\def\pingu at draw@wi at snowball#1{%
+\pingu at setup@wing{snowball}{#1}%
+    \pingu at draw[opacity=.35]{\@col} ([xshift=\csname pingu at snowball@#1 at xshift\endcsname,yshift=\csname pingu at snowball@#1 at yshift\endcsname]\pingu at name-wing-#1) coordinate (@) circle[radius=\csname pingu at snowball@#1 at size\endcsname];
+    \pingu at block[rotate around={\@angle-1:(\pingu at name-wing-#1)},decoration={random steps,segment length=1pt,amplitude=.075pt},decorate,rounded corners=.35pt,save path=\snowball at outer]{\@col}(@) circle[radius=\csname pingu at snowball@#1 at size\endcsname];
+}
+% #endregion
+
+% #region cloak-lib
+\newif\if at pingu@x at cloak@wings
+\pingu at create@extra{cloak}{%
+    cloak/.code              = \pingu at set@extra{cloak}{true}\pingu at color{cloak}{#1},
+    cloak/.default           = pingu at bronze,
+    cloak cap/.code          = \pingu at color{cloak at cap}{#1},
+    cloak wings color/.code  = \pingu at color{cloak at wings}{#1},
+    cloak bottom color/.code = \pingu at color{cloak at bottom}{#1},
+    cloak front color/.code  = \pingu at color{cloak at front}{#1},
+    cloak padding/.code      = \def\pingu at x@cloak at padding{#1},
+    cloak wings/.is if       = @pingu at x@cloak at wings,
+    cape/.style              = {/pingu/cloak=#1, /pingu/cloak wings=false,/pingu/cloak front color=\@pingu at none, /pingu/cloak cap=\@pingu at none,/pingu/cloak front color=\@pingu at none},
+    cape/.default            = pingu at bronze,
+}{cloak padding=1.95mm,cloak bottom color=\pingu at color@cloak!90!black,cloak cap=\pingu at color@cloak!98!pingu at black,cloak front color=\pingu at color@cloak!90!white,cloak wings color=\pingu at color@cloak at front!94!pingu at black,cloak wings=true}
+\def\pingu at draw@cloth at cloak@behind{%
+    \pingu at block[bottom color=\pingu at color@cloak at bottom,top color=\pingu at color@cloak]{\pingu at color@cloak} (\pingu at name-bottom-center)++(-\pingu at x@cloak at padding-\pingu at w@half,-.5mm) arc (180:0:{\pingu at x@cloak at padding+\pingu at w@half} and \pingu at one) to[bend left=1] (\pingu at name-wings-side-left) arc(0:180:\pingu at w@half{} and .75mm) to[bend left=1] cycle;
+}
+
+\def\pingu at draw@cloth at cloak@middle{\pingu at block[rounded corners=.7mm]{\pingu at color@cloak at front}
+(\pingu at name-bottom-center)++(-\pingu at x@cloak at padding-\pingu at w@half,-.5mm) arc (180:250:{\pingu at x@cloak at padding+\pingu at w@half} and \pingu at one) to[bend right=6]
+([xshift=1.3mm,yshift=.4mm]\pingu at name-wings-side-right) to[bend right=3] ([yshift=.65mm]\pingu at name-wings-side-right);
+\pingu at block[rounded corners=.7mm]{\pingu at color@cloak at front}
+(\pingu at name-bottom-center)++(\pingu at x@cloak at padding+\pingu at w@half,-.5mm) arc (0:-70:{\pingu at x@cloak at padding+\pingu at w@half} and \pingu at one) to[bend left=6]
+([xshift=-1.3mm,yshift=.4mm]\pingu at name-wings-side-left) to[bend left=3] ([yshift=.65mm]\pingu at name-wings-side-left);}
+
+% TODO: if flags to draw parts
+\def\pingu at draw@cloth at cloak{%
+\scope[rounded corners=.6\p@]
+    % wings
+    \if at pingu@x at cloak@wings
+    \edef\@la{\csname @pingu at wingdown@\@pingu at select@leftwing@ @\endcsname}
+    \ifnum\@la>0 % wing is going inverted up or down / \ => left
+        \pingu at layer{foreground}[]
+        \ifnum\@la>70
+            \pingu at block[right color=\pingu at color@cloak at front,left color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} (\pingu at name-wing-left-start)++(.5mm,-3.5mm) to[bend left=10] (\pingu at name-wing-left-low) to[bend right=13] (\pingu at name-wing-left-up) to[bend left=3] (\pingu at name-wing-left-start-up) to[bend left] ([xshift=.35mm,yshift=1mm]\pingu at name-wing-left-start);
+            \else % down
+            \pingu at block[right color=\pingu at color@cloak at front,left color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} (\pingu at name-wing-left-start)++(.5mm,-3.5mm) to[bend left=10] (\pingu at name-wing-left-low) to[bend right=13] (\pingu at name-wing-left-up) to[bend left=3] ([xshift=1mm,yshift=1mm]\pingu at name-wing-left-start-up) to[bend left=4.5] ([xshift=.5mm,yshift=-3.5mm]\pingu at name-wing-left-start);
+        \fi
+        \endpingu at layer
+    \else
+        \ifnum\@la<-90% normal up \ / => left side
+            \pingu at block[upper right=\pingu at color@cloak at wings,lower right=\pingu at color@cloak at front,lower left=\pingu at color@cloak at front,upper left=\pingu at color@cloak at front]{\pingu at color@cloak at wings} ([xshift=.25mm]\pingu at name-wing-left-start-low) to[bend right=14] (\pingu at name-wing-left-low) to[bend left=8] ([yshift=-.5mm]\pingu at name-wing-left-up) to[bend right=17] ([yshift=1.6mm]\pingu at name-wing-left-start-up) to[bend right=13] ([xshift=-.15mm,yshift=.15mm]\pingu at name-waist-left) -- cycle;
+        \else % normal and hugging down => right
+            \pingu at block[top color=\pingu at color@cloak at front,middle color=\pingu at color@cloak,bottom color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} plot[smooth] coordinates {([xshift=-1.38mm]\pingu at name-wings-side-left) (\pingu at name-wing-left-start-low) ([yshift=.65mm,xshift=-.65mm]\pingu at name-wing-left-low) ([yshift=.65mm,xshift=-.65mm]\pingu at name-wing-left-up) ([xshift=.68mm]\pingu at name-wings-side-left) ([xshift=-1.38mm]\pingu at name-wings-side-left)};
+        \fi
+    \fi
+    \edef\@ra{\csname @pingu at wingdown@\@pingu at select@rightwing@ @\endcsname}
+    \ifnum\@ra>0 % wing is going inverted up or down => right
+        \pingu at layer{foreground}[]
+        \ifnum\@ra>70
+            \pingu at block[left color=\pingu at color@cloak at front,middle color=\pingu at color@cloak at front,right color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} (\pingu at name-wing-right-start-low) to[bend right=10] (\pingu at name-wing-right-low) to[bend left=13] (\pingu at name-wing-right-up) to[bend right=3] (\pingu at name-wing-right-start-up) -- ++(-.25mm,0mm) to[bend right=11] cycle;
+        \else
+            \pingu at block[left color=\pingu at color@cloak at front,middle color=\pingu at color@cloak at front,right color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings}  ([xshift=1mm,yshift=-1mm]\pingu at name-wing-right-start-low) to[bend right=10] (\pingu at name-wing-right-low) to[bend left=13] (\pingu at name-wing-right-up) to[bend right=3] ([xshift=-1mm,yshift=1mm]\pingu at name-wing-right-start-up) to[bend right=4.5] ([xshift=-.5mm,yshift=-3.5mm]\pingu at name-wing-right-start);
+        \fi
+        \endpingu at layer
+    \else
+        \ifnum\@ra<-90% normal up => right side
+            \pingu at block[upper left=\pingu at color@cloak at wings,lower left=\pingu at color@cloak at front,lower right=\pingu at color@cloak at front,upper right=\pingu at color@cloak at front]{\pingu at color@cloak at wings} ([xshift=.25mm]\pingu at name-wing-right-start-low) to[bend left=14] (\pingu at name-wing-right-low) to[bend right=8] ([yshift=-.5mm]\pingu at name-wing-right-up) to[bend left=17] ([yshift=1.6mm]\pingu at name-wing-right-start-up) to[bend left=13] ([xshift=.15mm,yshift=.15mm]\pingu at name-waist-right) -- cycle;
+        \else % normal and hugging down => left
+            \pingu at block[top color=\pingu at color@cloak at front,middle color=\pingu at color@cloak at front,bottom color=\pingu at color@cloak at wings]{\pingu at color@cloak at wings} plot[smooth] coordinates {([xshift=1.38mm]\pingu at name-wings-side-right) (\pingu at name-wing-right-start-low) ([yshift=.85mm,xshift=-.35mm]\pingu at name-wing-right-low) ([yshift=.85mm,xshift=.35mm]\pingu at name-wing-right-up) ([xshift=-.68mm]\pingu at name-wings-side-right) ([xshift=1.38mm]\pingu at name-wings-side-right)};
+        \fi
+    \fi
 \fi
+    % cape
+    \pingu at block[rounded corners=.8mm]{\pingu at color@cloak at cap} ([xshift=.85mm,yshift=-2.75mm]\pingu at name-wing-left-start) to[bend left=4] ([xshift=-.45mm,yshift=-.65mm]\pingu at name-wings-side-left) to[bend right=3]
+    (\pingu at name-head)
+    to[bend right=3]
+    ([xshift=.4mm,yshift=-.65mm]\pingu at name-wings-side-right) [rounded corners=.15mm] to[bend left=3] ([xshift=-.85mm,yshift=-2.75mm]\pingu at name-wing-right-start)
+    to[bend left=8]
+    ([xshift=-.66mm]\pingu at name-wings-side-right)
+    [rounded corners=.15mm]
+    to[bend left=32] ++(\pingu at w@half+.66mm,\pingu at w@half+1.2\pingu at one)
+    to[bend left=32] ++(\pingu at w@half+.66mm,-\pingu at w@half-1.2\pingu at one)
+    to[bend left=8] cycle;
+\endscope
 }
-\def\pinguloadlibrary#1{\edef\tmp at list{#1}\@for\tmp at elem:=\tmp at list\do{\ifx\tmp at elem\@empty\else\pingu at loadlibrary{\tmp at elem}\fi}}
-\let\pinguloadlibraries\pinguloadlibrary
+% #endregion
 
-\pingu at dummy@lib{shirts}{shirt,second shirt}
-\pingu at dummy@lib{glasses}{glasses,glasses round,monocle left,monocle right}
-\pingu at dummy@lib{medieval}{rook,crown,princess crown}
-\pingu at dummy@lib{cloak}{cloak,cape}
-\pingu at dummy@lib{christmas}{santa hat,santa beard,wool hat,deer hat,present left, present right,snowball left, snowball right}
-\pingu at dummy@lib{science-fiction}{lightsaber left,lightsaber right}
-\pingu at dummy@lib{fun}{cake-hat,pumpkin-hat,lollipop left,lollipop right,vampire teeth,broom left,broom right,jack o lantern,jack o lantern helmet,hammer left, hammer right,plank left, plank right,magnifier left, magnifier right}
-\pingu at dummy@lib{technology}{vr-headset,headphone,vr-controller left,vr-controller right,laptop left,laptop right}
-\pingu at dummy@lib{flags}{flag left,flag right}
-\pingu at dummy@lib{hats}{strawhat,hat,cap,construction helmet,conical hat,witch hat,mitra}
-\pingu at dummy@lib{sport}{head band,medal}
-\pingu at dummy@lib{formal}{tie,bow tie,pants,belt}
-\pingu at dummy@lib{signs}{sign post left,sign post right}
-\pingu at dummy@lib{devil}{devil horns,devil wings,devil fork left,devil fork right,eyes devil,left eye devil,right eye devil}
-\pingu at dummy@selector{devil}{lefteye}{devil}
-\pingu at dummy@selector{devil}{righteye}{devil}
-\pingu at dummy@lib{safe}{mask}
-\pingu at dummy@lib{magic}{hand cast left,hand cast right}
-\pingu at dummy@lib{movement}{}% register the lib
-\pingu at dummy@selector{movement}{bodytype}{tilt-right,tilt-left}
-\pingu at dummy@lib{emotions}{eyes sad,left eye sad,right eye sad,eyes angry,left eye angry,right eye angry,eyes hearts,left eye heart,right eye hearts,bill angry,blush,eyes critical,left eye critical,right eye critical}
-\pingu at dummy@selector{emotions}{lefteye}{sad,angry,hearts}
-\pingu at dummy@selector{emotions}{righteye}{sad,angry,hearts}
+% #region devil-lib
+\pingu at create@extra{devilhorns}{%
+    devilhorns/.forward to = /pingu/devil horns,
+    devil-horns/.forward to = /pingu/devil horns,
+    devil horns/.code    = \pingu at set@extra{devilhorns}{true}\pingu at color{devilhorns}{#1},
+    devil horns/.default = pingu at purple,
+    devil horns b/.code  = \pingu at color{devilhorns at b}{#1},
+    devilhorns b/.forward to = /pingu/devil horns b,
+    devil-horns b/.forward to = /pingu/devil horns b
+}{devil horns b=\pingu at color@devilhorns}
 
-\pingu at dummy@lib{horse}{horse left,horse right,on horse,horse behind}
-\pingu at dummy@lib{bee}{bee}
+\pgfmathsetmacro\pingu at devilhorns@baseang at l{90-360*(1-\pinguanglehl)}
+\pgfmathsetmacro\pingu at devilhorns@baseang at r{90-360*(1-\pinguanglehr)}
+\def\pingu at devilhorns@baseoff{12}
+\def\pingu at devilhorns@yshift{.65mm}
+\def\pingu at draw@ea at devilhorns{%
+    % 90 - 360*.06
+    \pingu at block{\pingu at color@devilhorns} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) arc (\pingu at devilhorns@baseang at l:\pingu at devilhorns@baseang at l-\pingu at devilhorns@baseoff:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-devilhorns-left-goal) to[out=32,in=-32,looseness=.9] ++(.3mm,2.65mm) to[bend left=17] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) -- cycle;
+    \pingu at block{\pingu at color@devilhorns} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) to [bend right=38] (\pingu at name-devilhorns-left-goal) to[bend right=30] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-left) -- cycle;
+    \pingu at block{\pingu at color@devilhorns at b} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) arc (\pingu at devilhorns@baseang at r:\pingu at devilhorns@baseang at r+\pingu at devilhorns@baseoff:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-devilhorns-right-goal) to[out=148,in=-148,looseness=.9] ++(-.3mm,2.65mm) to[bend right=17] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) -- cycle;
+    \pingu at block{\pingu at color@devilhorns at b} ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) to [bend left=38] (\pingu at name-devilhorns-right-goal) to[bend left=30] ([yshift=-\pingu at devilhorns@yshift]\pingu at name-head-right) -- cycle;
+}
 
-\ifpengu at setup@bare@\else
-\pinguloadlibraries{\pingu@@defaultlibs}
+% wip hack
+\colorlet{pingu at devil@ring}{pingu at black}
+\def\pingu at devil@x at opacity{.75}
+\pingu at eyes@s{devil}{%
+\pingu at layer{foreground}[]
+    \pingu at block{pingu at devil@ring} ([yshift=.75mm,xshift=\pingu at eye@shift]\pingu at name-eye-back-left) coordinate (\pingu at name-eye-left) ellipse [x radius=.1535cm, y radius=.1575cm];
+    \pingu at block{\pingu at color@eye at second@left} ([yshift=.75mm,xshift=\pingu at eye@shift]\pingu at name-eye-back-left) coordinate (\pingu at name-eye-left) ellipse [x radius=.1325cm, y radius=.1375cm];
+    \fill[\pingu at color@eye at left,/pingu/@glow] (\pingu at name-eye-left) circle [radius=1.325mm];
+    \pingu at block[fill opacity=\pingu at devil@x at opacity]{\pingu at color@eye at left} (\pingu at name-eye-left)++(0,.36) to[bend right=58] ++(.36,-.36) to[bend right=58] ++(-.36,-.36) to[bend right=58] ++(-.36,.36) to[bend right=58] cycle;
+    \fill[/pingu/@glow,fill=\pingu at color@eye at left!20!pingu at yellow!15!pingu at white] (\pingu at name-eye-left)++(0,.10) to[bend right=60] ++(.10,-.10) to[bend right=60] ++(-.10,-.10) to[bend right=60] ++(-.10,.10) to[bend right=60] cycle;
+    \fill[\pingu at color@eye at left!20!pingu at yellow!7!pingu at white] (\pingu at name-eye-left) circle [radius=.5pt]; %
+    \pingu at block{pingu at white} (\pingu at name-eye-left) circle [radius=.15pt];
+\endpingu at layer
+}{%
+\pingu at layer{foreground}[]
+    \pingu at block{pingu at black} ([yshift=.75mm,xshift=-\pingu at eye@shift]\pingu at name-eye-back-right) coordinate (\pingu at name-eye-right) ellipse [x radius=.1535cm, y radius=.1575cm];
+    \pingu at block{\pingu at color@eye at second@right} ([yshift=.75mm,xshift=-\pingu at eye@shift]\pingu at name-eye-back-right) coordinate (\pingu at name-eye-right) ellipse [x radius=.1325cm, y radius=.1375cm];
+    \fill[\pingu at color@eye at right,/pingu/@glow] (\pingu at name-eye-right) circle [radius=1.325mm];
+    \pingu at block[fill opacity=.75]{\pingu at color@eye at right} (\pingu at name-eye-right)++(0,.36) to[bend right=58] ++(.36,-.36) to[bend right=58] ++(-.36,-.36) to[bend right=58] ++(-.36,.36) to[bend right=58] cycle;
+    \fill[/pingu/@glow,fill=\pingu at color@eye at right!20!pingu at yellow!15!pingu at white] (\pingu at name-eye-right)++(0,.10) to[bend right=60] ++(.10,-.10) to[bend right=60] ++(-.10,-.10) to[bend right=60] ++(-.10,.10) to[bend right=60] cycle;
+    \fill[\pingu at color@eye at right!20!pingu at yellow!7!pingu at white] (\pingu at name-eye-right) circle [radius=.5pt]; %
+    \pingu at block{pingu at white} (\pingu at name-eye-right) circle [radius=.15pt];
+\endpingu at layer
+}[pingu at purple]
+
+\pingu at create@wing at extra{devilfork}{%
+    devil fork \@lr/.code         = {\pingu at set@extra{devilfork\@lr}{true}\pingu at color{devilfork\@lr}{##1}},
+    devil fork \@lr/.default      = pingu at red,
+    devil fork \@lr\space second/.code= \pingu at color{devilfork\@lr @second}{##1},
+    devil fork \@lr\space length/.code =\expandafter\def\csname pingu at devilfork@\@lr @length\endcsname{##1}
+}{devil fork \@lr\space length=20mm,devil fork \@lr\space second=pingu at bronze!10!black}
+\def\pingu at draw@wi at devilfork#1{%
+    \pingu at setup@wing{devilfork}{#1}%
+\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+    \pingu at block{\csname pingu at color@devilfork#1 at second\endcsname} (\pingu at name-wing-#1)++(\@sidesign*-.2mm,-7mm) -- ++(0,\csname pingu at devilfork@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-devilfork-#1-top) -- ++(0,-\csname pingu at devilfork@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+    \pingu at block{\@col} ([yshift=4mm]\pingu at name-devilfork-#1-top) to[out=240,in=90] ++(-.65mm,-4mm) to[out=180,in=-60] ++(-1mm,5.5mm) to[out=240,in=90] ++(-.65mm,-5.9mm) to[bend right] ++(4.4mm,0) to[out=90,in=-60] ++(-.65mm,5.9mm) to[out=240,in=0] ++(-1mm,-5.5mm) to[out=90,in=-60] cycle;
+\endscope
+}
+
+\pingu at create@extra{devilwings}{%
+    devilwings/.forward to    = /pingu/devil wings,
+    devil-wings/.forward to   = /pingu/devil wings,
+    devil wings/.code         = \pingu at set@extra{devilwings}{true}\pingu at color{devilwings}{#1},
+    devil wings/.default      = pingu at black,
+    devil wings b/.code       = \pingu at color{devilwings at b}{#1},
+    devilwings b/.forward to  = /pingu/devil wings b,
+    devil-wings b/.forward to = /pingu/devil wings b
+}{devil wings b=\pingu at color@devilwings}
+
+% taken over and adapted from the old penguins
+% lower wing based on https://tex.stackexchange.com/a/464828
+\def\@pingu at devilwings@lower at wing@code{(0,0.2) -- (0,1.4) -- (-2,1.4) .. controls (-4,0.8) .. (-4.3,0.2) .. controls (-4.48,0.08) .. (-4.5,-0.15) .. controls (-4.9,-0.5) and (-4.9,-0.7) .. (-4.7,-0.9) .. controls (-4.7,-1) .. (-4.6,-1.1) .. controls (-4.9,-1.8) .. (-4.2,-2) -- (-4,-2.4) .. controls (-4.1,-3) .. (-3.6,-3.1) -- (-3.25,-3.7) .. controls (-3.5,-4.5) .. (-4.1,-5.4) .. controls (-4.2,-5.9) and (-3.6,-5.9) .. (-3.5,-5.4) .. controls (-3.55,-5.1) and (-3.4,-4.8) .. (-3,-4.1) -- (-2.6,-4.1) .. controls (-2.35,-4.35) .. (-2,-4.2) .. controls (-1.75,-4.6) and (-1.25,-4.6) .. (-1.25,-3.90) .. controls (-0.9,-4) .. (-0.6,-2.8) -- (-0.3,-1) -- (0,0.2)}
+
+\def\pingu at draw@eb at devilwings{%
+\pgfonlayer{background}
+    \scope[scale=0.225,shift={(\pingu at name-head-back-con-right)}]
+       \pingu at block[thick,rounded corners=.75mm]{\pingu at color@devilwings} \@pingu at devilwings@lower at wing@code;
+       \pingu at block[thick]{\pingu at color@devilwings} (0,1) -- (0,2.2) [rounded corners=5mm] parabola[bend at end] (-6,6) -- (-5,1) -- (0,1);
+    \endscope
+    \scope[scale=0.225,shift={(\pingu at name-head-back-con-left)},xscale=-1]
+       \pingu at block[thick,rounded corners=0.75mm]{\pingu at color@devilwings at b} \@pingu at devilwings@lower at wing@code;
+       \pingu at block[thick]{\pingu at color@devilwings at b} (0,1) -- (0,2.2) [rounded corners=5mm] parabola[bend at end] (-6,6) -- (-5,1) -- (0,1);
+    \endscope
+\endpgfonlayer
+}
+% #endregion
+
+% #region emotions-lib
+\pingu at eyes@s{sad}{%
+    \path (\pingu at name-eye-back-left)++(\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-left);
+    \pingu at block{\pingu at color@eye at left} (\pingu at name-eye-left)++(15:.1225cm and .1275cm) arc (15:-245:.1225cm and .1275cm) to[out=-45,in=175] cycle;
+}{%
+    \path (\pingu at name-eye-back-right)++(-\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-right);
+    \pingu at block{\pingu at color@eye at right} (\pingu at name-eye-right)++(165:.1225cm and .1275cm) arc (165:425:.1225cm and .1275cm) to[out=225,in=5] cycle;
+}
+
+\pingu at eyes@s{angry}{%
+    \path (\pingu at name-eye-back-left)++(\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-left);
+    \pingu at block{\pingu at color@eye at left} (\pingu at name-eye-left) ellipse [x radius=.1225cm, y radius=.1275cm];
+    \pingu at block{\pingu at color@body at front} (\pingu at name-eye-left) ++(120:.1225cm and .1275cm) ellipse [x radius=1.5mm,y radius=.5mm];
+}{%
+    \path (\pingu at name-eye-back-right)++(-\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-right);
+    \pingu at block{\pingu at color@eye at right} (\pingu at name-eye-right) ellipse [x radius=.1225cm, y radius=.1275cm];
+    \pingu at block{\pingu at color@body at front} (\pingu at name-eye-right) ++(60:.1225cm and .1275cm) ellipse [x radius=1.5mm,y radius=.5mm];
+}
+
+\pingu at bill@s{angry}{%
+\pingu at block{\pingu at color@bill} (\pingu at name-bill)++(-.19cm,0)
+    to[out=-90,in=170] ++(1.9mm,-2.25mm) coordinate (\pingu at name-bill-bottom)
+    to[out=10,in=-90] ++(1.9mm,2.25mm)
+    to[bend right=.25cm] cycle;
+}
+
+\pingu at create@extra{blush}{%
+    blush/.code              = \pingu at set@extra{blush}{true}\pingu at color{blush}{#1},
+    blush/.default           = pingu at red,
+    blush second/.code       = \pingu at color{blush at second}{#1},
+    blush opacity/.code      = \def\pingu at x@blush at opacity{#1},
+}{blush opacity=.35,blush second=\pingu at color@blush}
+\def\pingu at draw@eb at blush{%
+    \pingu at block[/pingu/@glow,opacity=\pingu at x@blush at opacity]{\pingu at color@blush} ([yshift=-2.7mm,xshift=-1.85mm]\pingu at name-eye-right) ellipse [x radius=2.66mm,y radius=2.25mm];
+    \pingu at block[/pingu/@glow,opacity=\pingu at x@blush at opacity]{\pingu at color@blush at second} ([yshift=-2.7mm,xshift=1.85mm]\pingu at name-eye-left) ellipse [x radius=2.66mm,y radius=2.25mm];
+}
+
+\pingu at eyes@s{hearts}{%
+    \path (\pingu at name-eye-back-left)++(\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-left);
+    \pingu at block[rounded corners=0pt]{\pingu at color@eye at left} ([yshift=.3mm]\pingu at name-eye-left) arc(0:180:.065cm)
+    to[out=270,in=110] ++(.13cm,-.2cm) to[out=70,in=270] ++(.13cm,.2cm) arc (0:180:.065cm) -- cycle;
+}{%
+    \path (\pingu at name-eye-back-right)++(-\pingu at eye@shift,.75mm) coordinate (\pingu at name-eye-right);
+    \pingu at block{\pingu at color@eye at right} ([yshift=.3mm]\pingu at name-eye-right) arc(0:180:.065cm)
+    to[out=270,in=110] ++(.13cm,-.2cm) to[out=70,in=270] ++(.13cm,.2cm) arc (0:180:.065cm) -- cycle;
+}
+
+\pingu at eyes@s{critical}{%
+    \pingu at block{\pingu at color@eye at left} ([yshift=.75mm,xshift=\pingu at eye@shift]\pingu at name-eye-back-left) coordinate (\pingu at name-eye-left) ellipse [x radius=1.13mm, y radius=.145cm];
+    \pingu at draw[thick]{\pingu at color@eye at left} (\pingu at name-eye-left)++(45:1.35mm and 1.85mm) arc(45:135:1.35mm and 1.85mm);
+}{%
+    \pingu at block{\pingu at color@eye at right} ([yshift=.75mm,xshift=-\pingu at eye@shift]\pingu at name-eye-back-right) coordinate(\pingu at name-eye-right) ellipse [x radius=1.13mm, y radius=.145cm];
+    \pingu at draw[thick]{\pingu at color@eye at right} (\pingu at name-eye-right)++(45:1.35mm and 1.85mm) arc(45:135:1.35mm and 1.85mm);
+}
+% #endregion
+
+% #region flags-lib
+\pingu at create@wing at extra{flag}{%
+    flag \@lr/.code         = {\pingu at set@extra{flag\@lr}{true}\pingu at color{flag\@lr}{##1}},
+    flag \@lr/.default      = pingu at purple,
+    flag \@lr\space pole/.code    = \pingu at color{flag\@lr @pole}{##1},
+    flag \@lr\space code/.code    = \expandafter\def\csname pingu at flag@\@lr @code\endcsname{##1},
+    flag \@lr\space bobble/.code  = {\pingu at color{flag\@lr @bobble}{##1}},
+    pride flag \@lr/.style  = {%
+        /pingu/flag \@lr\space code = {%
+            \noexpand\node[/pingu/@flag at first,/pingu/@flag={{rgb:yellow,1;red,5;magenta,2;black,1}}{1.9mm}] (a) at (0,0) {};
+            \noexpand\node[below,/pingu/@flag={{rgb:yellow,5;red,5;green,1;white,1}}{1.9mm}] (b) at (a.south) {};
+            \noexpand\node[below,/pingu/@flag={yellow}{1.9mm}] (c) at (b.south) {};
+            \noexpand\node[below,/pingu/@flag={{rgb:blue,1;cyan,1;green,4;black,2}}{1.9mm}] (d) at (c.south) {};
+            \noexpand\node[below,/pingu/@flag={{rgb:magenta,3;blue,5;cyan,4;black,3}}{1.9mm}] (e) at (d.south) {};
+            \noexpand\node[below,/pingu/@flag={{rgb:red,2;magenta,2;blue,5}}{1.9mm}] (f) at (e.south) {};
+        }, /pingu/flag \@lr, /pingu/flag \@lr\space pole={##1}%
+    },%
+    @flag/.style 2 args={tape bend height=.5mm,shape=tape,minimum height=##2, minimum width=15mm,outer sep=\z@,inner sep=\z@,fill=##1,draw=##1,rotate=\noexpand\@angle},
+    pride flag \@lr/.default = pingu at bronze,%
+    german flag \@lr/.style  = {%
+    /pingu/flag \@lr\space code = {%
+            \noexpand\node[/pingu/@flag at first,/pingu/@flag={black}{3.33mm}] (a) at (0,0) {};
+            \noexpand\node[below,/pingu/@flag={red}{3.33mm}] (b) at (a.south) {};
+            \noexpand\node[below,/pingu/@flag={yellow}{3.33mm}] (c) at (b.south) {};
+        }, /pingu/flag \@lr, /pingu/flag \@lr\space pole={##1}%
+    },%
+    german flag \@lr/.default = pingu at bronze%
+}{flag \@lr\space bobble=pingu at bronze, flag \@lr\space pole=pingu at bronze, flag \@lr\space code = {%
+    \noexpand\node[/pingu/@flag at first,/pingu/@flag={\noexpand\@col}{9.75mm}] (a) at (0,0) {};
+}}
+\def\pingu at draw@wi at flag#1{%
+    \pingu at setup@wing{flag}{#1}%
+\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+    % NOTE: not full foreground if placed under the wing
+    \pingu at layer{foreground}[shift={(\pingu at name-wing-#1)},shift={(\@sidesign*.15mm,17.5mm-3.5\p@)}]
+        \if at pingu@wing at item@side at left@\pgfqkeys{/pingu}{@flag at first/.style={below right}}\else\pgfqkeys{/pingu}{@flag at first/.style={below left}}\fi
+        \csname pingu at flag@#1 at code\endcsname
+        \pingu at block[thick]{\csname pingu at color@flag#1 at pole\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.15mm,3mm) -- ++(0,13.65mm) -| ++(\@sidesign*.6mm,-13.65mm) -- cycle;
+    \endpingu at layer
+    \pingu at block[thick]{\csname pingu at color@flag#1 at pole\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.15mm,-3mm) -- ++(0,20mm) arc(180:0:\@sidesign*.3mm and .375mm) -- ++(0,-20mm) arc(360:180:\@sidesign*.3mm and .375mm) -- cycle;
+    \pingu at block{\csname pingu at color@flag#1 at bobble\endcsname} (\pingu at name-wing-#1)++(\@sidesign*.15mm,17.5mm) circle [radius=2.15\p@];
+\endscope
+}
+% #endregion
+
+% #region formal-lib
+\pingu at create@extra{tie}{%
+    tie/.code         = \pingu at set@extra{tie}{true}\pingu at color{tie}{#1},
+    tie/.default      = pingu at green,
+    tie knot/.code    = \pingu at color{tie at knot}{#1},
+    tie length/.code  = \def\pingu at x@tie at length{#1},
+    tie offset/.code  = \def\pingu at x@tie at offset{#1},
+    tie width/.code   = \def\pingu at x@tie at width{#1},
+    tie pattern/.code = \def\pingu at x@tie at pattern{#1},
+    tie dots/.style   = {%
+        tie pattern={%
+            \pingu at block[postaction={pattern={Dots[angle=40,distance=1.5pt,radius=.35pt]},pattern color=#1}]{\pingu at color@tie} \pingupathxtie;
+            \pingu at block[postaction={pattern={Dots[angle=-30,distance=1.45pt,radius=.35pt@]},pattern color=#1}]{\pingu at color@tie at knot} \pingupathxtieknot;
+        }%
+    },
+    tie dots/.default={pingu at white}%
+}{% defaults
+    tie length=.625\pingu at side@h at half,  tie offset=.399cm,%
+    tie knot=\pingu at color@tie!92!black, tie width=.21cm,%
+    tie pattern={%
+        \pingu at block{\pingu at color@tie} \pingupathxtie;
+        \pingu at block{\pingu at color@tie at knot} \pingupathxtieknot;
+    }%
+}
+\def\pingupathxtie{[rounded corners=.15mm] (\pingu at name-tie-start)++(-.4mm,-.25mm) -- ++(-\pingu at x@tie at width/2, -\pingu at x@tie at length+.125cm) -- ++(\pingu at x@tie at width/2+.4mm,-.125cm) -- ++(\pingu at x@tie at width/2+.4mm,.125cm) -- +(-\pingu at x@tie at width/2, \pingu at x@tie at length-.125cm) -- cycle}
+\def\pingupathxtieknot{[rounded corners=.25mm] (\pingu at name-tie-start)++(-.095cm-.02*\pingu at x@tie at width,\z@) -- ++(.3mm,-.15cm-.01*\pingu at x@tie at width) -- ++(.13cm+.04*\pingu at x@tie at width,\z@) -- ++(.3mm,.15cm+.01*\pingu at x@tie at width) -- cycle}
+\def\pingu at draw@eb at tie{%
+    \path (\pingu at name-bill)++(0,-\pingu at x@tie at offset) coordinate(\pingu at name-tie-start);
+    \pingu at x@tie at pattern
+}
+
+\pingu at create@extra{bowtie}{%
+    bowtie/.forward to         = /pingu/bow tie,
+    bow-tie/.forward to        = /pingu/bow tie,
+    bow tie/.code              = \pingu at set@extra{bowtie}{true}\pingu at color{bowtie}{#1},
+    bow tie/.default           = pingu at blue,
+    bow tie b/.code            = \pingu at color{bowtie at b}{#1},
+    bowtie b/.forward to         = /pingu/bow tie b,
+    bow-tie b/.forward to        = /pingu/bow tie b,
+    bowtie offset/.forward to  = /pingu/bow tie offset,
+    bow-tie offset/.forward to = /pingu/bow tie offset,
+    bow tie offset/.code       = \def\pingu at x@bowtie at offset{#1},
+    bowtie knot/.forward to    = /pingu/bow tie knot,
+    bow-tie knot/.forward to   = /pingu/bow tie knot,
+    bow tie knot/.code         = \pingu at color{bowtie at knot}{#1},
+}{% defaults
+    bow tie knot=\pingu at color@bowtie!92!black,bow tie offset=.315cm,%
+    bow tie b=\pingu at color@bowtie%
+}
+
+\def\pingupathxbowtieknot{[rounded corners=.25mm] (\pingu at name-bow-tie-start)++(-.0625cm,-.35mm) to[bend right=10] ++(.125cm,0) -- ++(0,-.13cm) to[bend right=10] ++(-.125cm, 0) -- cycle}
+\def\pingupathxbowtieleft{[rounded corners=.25mm]  (\pingu at name-bow-tie-start)++(-.15mm,-.06cm) to[out=155,in=-5] ++(-.25cm,.065cm) to[bend right=15] ++(0,-.21cm) to[in=-155,out=5] ++(.25cm,.065cm) -- cycle}
+\def\pingupathxbowtieright{[rounded corners=.25mm]  (\pingu at name-bow-tie-start)++(.15mm,-.06cm) to[out=25,in=-175] ++(.25cm,.065cm) to[bend left=15] ++(0,-.21cm) to[in=-25,out=175] ++(-.25cm,.065cm) -- cycle}
+\def\pingu at draw@eb at bowtie{%
+    \path (\pingu at name-bill)++(0,-\pingu at x@bowtie at offset) coordinate(\pingu at name-bow-tie-start);
+    \pingu at block{\pingu at color@bowtie} \pingupathxbowtieleft;
+    \pingu at block{\pingu at color@bowtie at b} \pingupathxbowtieright;
+    \pingu at block{\pingu at color@bowtie at knot} \pingupathxbowtieknot;
+}
+
+\newif\if at pingu@x at pants@bands
+\pingu at create@extra{pants}{%
+    pants/.code    	               = \pingu at set@extra{pants}{true}\pingu at color{pants}{#1},
+    pants/.default                 = pingu at red,
+    pants bands/.is if             = @pingu at x@pants at bands,
+    pants button left/.code        = \pingu at color{pants at button@left}{#1},
+    pants button right/.code       = \pingu at color{pants at button@right}{#1},
+    pants buttons/.style           = {/pingu/pants button left={#1}, /pingu/pants button right={#1}},
+    pants button left shade/.code  = \pingu at color{pants at button@left at shade}{#1},
+    pants button right shade/.code = \pingu at color{pants at button@right at shade}{#1},
+    pants buttons shade/.style     = {/pingu/pants button left shade={#1}, /pingu/pants button right shade={#1}},
+    pants without buttons/.forward to=/pingu/pants no buttons,
+    pants no buttons/.style        = {/pingu/pants buttons=\@pingu at none, /pingu/pants buttons shade=\@pingu at none},
+    pants extra height/.code = \def\pingu at x@pants at extra@height{#1},
+}{pants extra height=1.5mm,pants buttons=pingu at black,pants button left shade=\pingu at color@pants at button@left!70!white,pants button right shade=\pingu at color@pants at button@right!70!white}
+
+\def\pingu at draw@eb at pants{%
+\pingu at block[rounded corners=\p@]{\pingu at color@pants} ([xshift=.85mm,yshift=\pingu at x@pants at extra@height]\pingu at name-waist-right) coordinate(@tmp) to[bend right=6] ([xshift=-.85mm,yshift=\pingu at x@pants at extra@height]\pingu at name-waist-left) coordinate(@tmpb) -- ++(0,-\pingu at x@pants at extra@height) arc(180:270:.85mm and 2.25mm) to[bend left=\pingu at bend] (\pingu at name-bottom-center-|\pingu at name-waist-left) to[bend left=15] ([yshift=-.15mm]\pingu at name-bottom-center) to[bend left=15] (\pingu at name-bottom-center-|\pingu at name-waist-right) to[bend left=6] ([yshift=-2.5mm]\pingu at name-waist-right) arc (-90:0:.85mm and 2.25mm) -- cycle;
+\if at pingu@x at pants@bands
+\pingu at layer{middle}[]
+% draw stripes
+\scope
+\clip \pingu at path@lowerpingu;
+\pingu at block{\pingu at color@pants} (@tmp)++(.55mm,-\pingu at one) to[bend right=3] ([yshift=1.65mm]\pingu at name-wings-side-right) -- ++(-.25mm,-.25mm) to[bend left=3] ([yshift=-\pingu at one]@tmp) -- cycle;
+\pingu at block{\pingu at color@pants} (@tmpb)++(-.55mm,-\pingu at one) to[bend left=3] ([yshift=1.65mm]\pingu at name-wings-side-left) -- ++(.25mm,-.25mm) to[bend right=3] ([yshift=-\pingu at one]@tmpb) -- cycle;
+\endscope
 \fi
+\pingu at block{\pingu at color@pants at button@right}(@tmp)++(.25mm,-.25mm)circle[radius=.7mm];
+\pingu at block{\pingu at color@pants at button@left}(@tmpb)++(-.25mm,-.25mm)circle[radius=.7mm];
+\pingu at block[even odd rule]{\pingu at color@pants at button@right at shade}(@tmp)++(.25mm,-.25mm)circle[radius=.7mm] circle[radius=.615mm];
+\pingu at block[even odd rule]{\pingu at color@pants at button@left at shade}(@tmpb)++(-.25mm,-.25mm)circle[radius=.7mm] circle[radius=.615mm];
+\@for\i:={0,90,180,270}\do{
+    \pingu at block{\pingu at color@pants at button@right at shade} (@tmp)++(.25mm,-.25mm)++(\i:.
+    35mm) circle[radius=.1mm];
+    \pingu at block{\pingu at color@pants at button@left at shade} (@tmpb)++(-.25mm,-.25mm)++(\i:.35mm) circle[radius=.1mm];
+}%
+\if at pingu@x at pants@bands \endpingu at layer \fi
+}
+
+
+\pingu at create@extra{belt}{%
+    belt/.code        = \pingu at set@extra{belt}{true}\pingu at color{belt}{#1},
+    belt/.default     = pingu at bronze!80!black,
+    belt knot color/.code  = \pingu at color{belt at knot}{#1}
+}{% defaults
+    belt knot color  = pingu at silver
+}
+
+\def\pingu at draw@eb at belt@wh{1.25mm}
+\def\pingu at draw@eb at belt{%
+    \path ([yshift=-1.66mm/2]\pingu at name-waist-left) -- ([yshift=-1.66mm/2]\pingu at name-waist-right) coordinate[pos=.5] (\pingu at name @belt at center);
+    \pingu at block[rounded corners=.5pt]{\pingu at color@belt} (\pingu at name-waist-left) coordinate (@) to[bend left=5] (\pingu at name-waist-right) -- ++(0,-1.66mm) to[bend right=5] ([yshift=-1.66mm]@) -- cycle;
+    \pingu at block[rounded corners=1.5pt]{\pingu at color@belt at knot} ([xshift=-1mm,yshift=-.7mm-1.66mm/2]\pingu at name @belt at center) rectangle ++(2mm,2mm);
+}
+% #endregion
+
+% #region fun-lib
+\pingu at create@extra{cakehat}{%
+  cake-hat/.code          = \pingu at set@extra{cakehat}{true}\pingu at color{cakehat}{#1},
+  cake-hat/.default       = pingu at white!92!\pingu at color@cakehat at top,
+  cake-hat top/.code      = \pingu at color{cakehat at top}{#1},
+  cake-hat shade/.code    = \pingu at color{cakehat at shade}{#1},
+  cake-hat candle/.code   = \pingu at color{cakehat at candle}{#1},
+  cake-hat candle fire/.code   = \pingu at color{cakehat at candle@fire}{#1},
+  cake-hat candle fire 2/.code   = \pingu at color{cakehat at candle@fire at b}{#1},
+  cake-hat candle fire 3/.code   = \pingu at color{cakehat at candle@fire at c}{#1},
+  cake-hat candle wick/.code   = \pingu at color{cakehat at candle@wick}{#1},
+  cake-hat candle shade/.code   = \pingu at color{cakehat at candle@shade}{#1},
+  cake-hat candle back/.code = \pingu at color{cakehat at candle@back}{#1},
+  cake-hat outline/.code  = \pingu at color{cakehat at outline}{#1},
+  cake-hat outline width/.code  = \def\pingu at x@cakehat at outline@w{#1},
+  cake-hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@cakehat at angle{#1}\def\pingu at x@cakehat at xshift{#2}\def\pingu at x@cakehat at yshift{#3}\def\pingu at x@cakehat at scale{#4}}
+}{cake-hat position={-9:(1mm,0mm)1},cake-hat outline=pingu at black!80!\pingu at color@cakehat,cake-hat outline width=.25pt,cake-hat top=pingu at purple,cake-hat candle=pingu at purple!60!pingu at black,cake-hat candle back=\pingu at color@cakehat at candle!85!black,cake-hat candle wick=pingu at black,cake-hat candle fire=pingu at red,cake-hat candle fire 2=\pingu at color@cakehat at candle@fire!50!yellow,cake-hat candle fire 3=\pingu at color@cakehat at candle@fire at b!50!white,cake-hat shade=gray,cake-hat candle shade=gray!80!\pingu at color@cakehat at candle@back}
+
+\def\pingu at p@cake at outline{(-6.25mm,-.25cm) to[bend left=2] (\pingu at name-cake-tl) arc (180:0:1.375cm/2+.01mm and 1.41mm) to[bend left=2] ++(0,-3.125mm*.97) to[bend left=20] (-6mm,-.26cm) -- cycle}
+\def\pingu at draw@ea at cakehat{%
+\scope[rotate around={\pingu at x@cakehat at angle:(\pingu at name-head-top)},%
+shift={(\pingu at name-head-top)},
+shift={(\pingu at x@cakehat at xshift,\pingu at x@cakehat at yshift)},
+scale=\pingu at x@cakehat at scale]
+  \pingu at block{\pingu at color@cakehat} [rounded corners=.2mm](-6.25mm,-.25cm) to[bend left=2] coordinate[pos=.97] (\pingu at name-cake-tl) ++(0,3.125mm) to[bend right=20]
+    ++(1.375cm,0) to[bend left=2] coordinate[pos=.03] (\pingu at name-cake-tr) ++(0,-3.125mm) to[bend left=20] (-6mm,-.26cm) -- cycle;
+  \pingu at block[fill opacity=.1]{\pingu at color@cakehat at shade} [rounded corners=.2mm](-6.25mm,-.25cm) to[bend right=20]
+    ++(1.375cm,0) to[bend right=2] ++(0,3.125mm) [sharp corners] to[bend left=20] (-6.25mm,-.225cm) [rounded corners=.2mm] -- cycle;
+  \path (\pingu at name-cake-tl) -- (\pingu at name-cake-tr) coordinate[pos=.5] (\pingu at name-cake-tc);
+  % cake side
+  \scope
+  \clip\pingu at p@cake at outline;
+  \path (\pingu at name-cake-tl) arc (180:360:1.375cm/2+.01mm and 1.41mm) foreach[count=\i] \a in {0,.19,.295,.375,.485,.625,.72,.85,1} {coordinate[pos=\a] (\pingu at name-cake-\i)};
+  \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-1) ellipse [x radius=.255mm,y radius=2mm];
+  \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-9) ellipse [x radius=.265mm,y radius=1.45mm];
+  \foreach \i in {2,...,9} {
+    \pgfmathsetmacro\@tmprand{rand}
+    \pingu at draw[opacity=.5]{gray} (\pingu at name-cake-\i)++(-.02mm,0) to[bend left=1] ++(+.145mm,{-1.075mm-(\@tmprand+.15)*.5125mm}) arc(370:300:.145mm);
+    \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\i)++(0,.1mm) -- ++(-.125mm,0) to[bend left=1] ++(0,{-1.2mm-(\@tmprand+.15)*.5125mm}) arc(170:370:.145mm) to[bend right=1] cycle;
+  }
+  \foreach \i in {2,...,9} {
+      \ifnum\i=2\relax
+        \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\the\numexpr\i-1\relax)++(-.05mm,-.5mm) to[bend left=8] ([xshift=-.05mm,yshift=-.25mm]\pingu at name-cake-\i) -- ++(0,.33mm) to[bend right=30] (\pingu at name-cake-\the\numexpr\i-1\relax);
+      \else\ifnum\i=9\relax
+        \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\the\numexpr\i-1\relax)++(-.05mm,-.25mm) to[bend left=8] ([xshift=-.05mm,yshift=-.5mm]\pingu at name-cake-\i) -- ++(0,.33mm) to[bend right=30] (\pingu at name-cake-\the\numexpr\i-1\relax);
+      \else
+      \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-\the\numexpr\i-1\relax)++(-.05mm,-.25mm) to[bend left=9.5+2*rand] ([xshift=-.05mm,yshift=-.25mm]\pingu at name-cake-\i) -- ++(0,.33mm) to[bend right=30] (\pingu at name-cake-\the\numexpr\i-1\relax);
+      \fi\fi
+  }
+  \endscope
+  \pingu at block{\pingu at color@cakehat at top} (\pingu at name-cake-tc) ellipse [x radius=1.375cm/2+.01mm, y radius=1.41mm];
+  % outline
+  \pingu at draw[line width=\pingu at x@cakehat at outline@w,rounded corners=.075mm]{\pingu at color@cakehat at outline} \pingu at p@cake at outline;
+% % 3d sides
+%   \pingu at block[rounded corners=.04mm]{\pingu at color@cakehat at top} ([xshift=.1mm,yshift=.125mm]\pingu at name-cake-tl) to[out=246,in=97] ++(-.11mm,-2.125mm) -- ++(.04mm,0) to[bend right=12] (\pingu at name-cake-ttl) -- cycle;
+%   \pingu at block[rounded corners=.09mm]{green} ([xshift=-.1mm]\pingu at name-cake-ttr) to[out=294,in=83] ++(.125mm,-2.125mm) to[bend left=12] ([xshift=-.11mm,yshift=.125mm]\pingu at name-cake-tr) -- cycle;
+  % candle
+  \pingu at block{\pingu at color@cakehat at candle@back} (\pingu at name-cake-tc)++(.8mm,2.66mm) to[bend right=7] ++(-1.1mm,-.1mm) to[bend right=30]++(1.1mm,0) -- cycle;
+  % wick
+  \pingu at draw[very thin]{\pingu at color@cakehat at candle@wick} (\pingu at name-cake-tc)++(.25mm,2mm) to[out=75,in=-95] coordinate[pos=.8] (\pingu at name-wick-1) ++(0,1mm) coordinate(\pingu at name-wick-top);
+  \pingu at block{\pingu at color@cakehat at candle@fire} (\pingu at name-wick-1)++(-.045mm,0) to[out=115,in=240] ++(0,1.5mm) to[out=300,in=65] ([xshift=.045mm]\pingu at name-wick-1) -- cycle;
+  \pingu at block{\pingu at color@cakehat at candle@fire at b} (\pingu at name-wick-1)++(-.045mm,0) to[out=105,in=240] ++(0,1.3mm) to[out=300,in=75] ([xshift=.045mm]\pingu at name-wick-1) -- cycle;
+  \pingu at block{\pingu at color@cakehat at candle@fire at c} (\pingu at name-wick-1)++(-.035mm,0) to[out=95,in=250] ++(0,1.1mm) to[out=290,in=85] ([xshift=.035mm]\pingu at name-wick-1) -- cycle;
+  % front
+  \pingu at block{\pingu at color@cakehat at candle} (\pingu at name-cake-tc)++(.25mm,0) ++(.55mm,0) to[bend left=0.5] ++(0,2.66mm) to[bend left=20] ++(-1.1mm,-.1mm) to[bend right=0.5] ++(0,-2.66mm) to[bend right=20] cycle;
+  \pingu at block[fill opacity=.125]{\pingu at color@cakehat at candle@shade} (\pingu at name-cake-tc)++(-.3mm,-.1mm) to[bend right=20] ++(1.1mm,0) to[bend left=.5] ++(0,2.66mm) to[bend left=15] ++(-1.1mm,-2.5mm) -- cycle;
+  \pingu at block[fill opacity=.225]{\pingu at color@cakehat at candle@shade} (\pingu at name-cake-tc)++(-.3mm,-.1mm) to[bend left=2] ++(1.1mm,-1.1mm) to[bend left=5] ++(1.1mm,0) to[bend left=2] ++(-1.1mm,1.2mm) to[bend left =15] cycle;
+  \pingu at block[fill opacity=.225]{\pingu at color@cakehat at candle@shade} (\pingu at name-cake-tc)++(1.35mm,-1.25mm) circle [radius=.1mm];
+\endscope
+}
+\pingu at create@extra{pumpkinhat}{%
+  pumpkin-hat/.code           = \pingu at set@extra{pumpkinhat}{true}\pingu at color{pumpkinhat}{#1},
+  pumpkin-hat/.default        = pingu at bronze!97!white,
+  pumpkin-hat stalk/.code     = \pingu at color{pumpkinhat at stalk}{#1},
+  pumpkin-hat stalk top/.code = \pingu at color{pumpkinhat at stalk@top}{#1},
+  pumpkin-hat stripe a/.code  = \pingu at color{pumpkinhat at stripe@a}{#1},
+  pumpkin-hat stripe b/.code  = \pingu at color{pumpkinhat at stripe@b}{#1},
+  pumpkin-hat stripe c/.code  = \pingu at color{pumpkinhat at stripe@c}{#1},
+  pumpkin-hat outline/.code   = \pingu at color{pumpkinhat at outline}{#1},
+  pumpkin-hat outline width/.code = \def\pingu at x@pumpkinhat at outline@w{#1},
+  pumpkin-hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@pumpkinhat at angle{#1}\def\pingu at x@pumpkinhat at xshift{#2}\def\pingu at x@pumpkinhat at yshift{#3}\def\pingu at x@pumpkinhat at scale{#4}}
+}{pumpkin-hat position={-9:(1.65mm,.25mm)1.05},pumpkin-hat stalk=pingu at green!95!\pingu at color@pumpkinhat!45!pingu at black,pumpkin-hat stalk top=\pingu at color@pumpkinhat at stalk!95!pingu at black,pumpkin-hat stripe a=pingu at black,pumpkin-hat stripe b=\pingu at color@pumpkinhat at stripe@a,pumpkin-hat stripe c=\pingu at color@pumpkinhat at stripe@b,pumpkin-hat outline=pingu at black,pumpkin-hat outline width=.7pt}
+
+\def\pingu at pumpkinhat@outerpath{(0,.125cm)++(-60:6.75mm and 5.5mm) arc(-60:86: 6.75mm and 5.5mm) to[bend left=3] ++(-1.75mm,0) arc(95:242:6.75mm and 5.5mm) to[bend left=5] cycle;}
+\def\pingu at draw@ea at pumpkinhat{%
+\scope[rotate around={\pingu at x@pumpkinhat at angle:(\pingu at name-head-top)},%
+shift={(\pingu at name-head-top)},
+shift={(\pingu at x@pumpkinhat at xshift,\pingu at x@pumpkinhat at yshift)},
+scale=\pingu at x@pumpkinhat at scale]
+  % give it a small cut
+  \pingu at block{\pingu at color@pumpkinhat} (0,.125cm)++(-60:6.75mm and 5.5mm) coordinate (@pkll) arc(-60:86: 6.75mm and 5.5mm) coordinate (@pkl) to[bend left=3] coordinate[pos=.5] (@pkuc) ++(-1.75mm,0) coordinate (@pkr) arc(95:242:6.75mm and 5.5mm) coordinate (@pklr) to[bend left=5] coordinate[pos=.5] (@pklc) cycle;
+  \pingu at draw[line join=round,line width=\pingu at x@pumpkinhat at outline@w]{\pingu at color@pumpkinhat at outline} \pingu at pumpkinhat@outerpath;
+\scope
+\clip (0,.125cm)++(-60:6.75mm and 5.5mm) coordinate (@pkll) arc(-60:86: 6.75mm and 5.5mm) coordinate (@pkl) to[bend left=3] ++(-1.75mm,0) coordinate (@pkr) arc(95:242:6.75mm and 5.5mm) coordinate (@pklr) to[bend left=5] cycle;
+  \pingu at draw[line cap=round,opacity=.3]{\pingu at color@pumpkinhat at stripe@a} (@pklr) to[bend left=55] (@pkr);
+  \pingu at draw[line cap=round,opacity=.3]{\pingu at color@pumpkinhat at stripe@c} (@pkll) to[bend right=55] (@pkl);
+  \pingu at draw[line cap=round,opacity=.3]{\pingu at color@pumpkinhat at stripe@b} (@pklc) to[bend right=5] (@pkuc);
+\endscope
+\pingu at block{\pingu at color@pumpkinhat at stalk} ([yshift=-.5*\pingu at x@pumpkinhat at outline@w]@pkl) to[bend left=3] ([yshift=-.5*\pingu at x@pumpkinhat at outline@w]@pkr) to[bend right=8] ++(.85mm,2mm) -- ++(.65mm,0) coordinate[pos=.5] (@pkc) to[bend right=3] cycle;
+\pingu at block{\pingu at color@pumpkinhat at stalk@top} (@pkc) ellipse[x radius=.65mm/2, y radius=.085mm];
+\endscope
+}
+
+\pingu at create@wing at extra{lollipop}{%
+  lollipop \@lr/.code         = {\pingu at set@extra{lollipop\@lr}{true}\pingu at color{lollipop\@lr}{##1}},
+  lollipop \@lr/.default      = pingu at green,
+  lollipop \@lr\space handle/.code = \pingu at color{lollipop\@lr @handle}{##1},%
+  lollipop \@lr\space second/.code = \pingu at color{lollipop\@lr @second}{##1}%
+}{lollipop \@lr\space handle=pingu at bronze,lollipop \@lr\space second={\csname pingu at color@lollipop\@lr\endcsname!86!white}}
+
+% #1 wing
+\def\pingu at draw@wi at lollipop#1{%
+    \pingu at setup@wing{lollipop}{#1}%
+    \pingu at draw[thick,rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@lollipop#1 at handle\endcsname}(\pingu at name-wing-#1)++(0,4.75mm) -- ++(0,-6.25mm);
+    \pingu at block[thick,rotate around={\@angle:(\pingu at name-wing-#1)}]{\@col}(\pingu at name-wing-#1)++(0,4.75mm) coordinate (\pingu at name-lollipop-#1-top) circle[radius=1.4mm];
+    \pingu at block[thick,rotate around={\@angle-1:(\pingu at name-lollipop-#1-top)}]{\csname pingu at color@lollipop#1 at second\endcsname} (\pingu at name-lollipop-#1-top) ellipse [x radius=1.57mm, y radius=1.5\p@];
+    \pingu at block[thick,rotate around={\@angle-1:(\pingu at name-lollipop-#1-top)}]{\@col} (\pingu at name-lollipop-#1-top)++(0,.5\p@) ellipse [x radius=1.4mm, y radius=\p@];
+}
+
+\pingu at create@extra{heart}{%
+  heart/.code       = {\pingu at set@extra{heart}{true}\pingu at color{heart}{#1}},
+  heart/.default    = lightgray
+}{}
+
+\def\pingu at draw@eb at heart{%
+    \pingu at block[sharp corners]{\pingu at color@heart}
+    ([yshift=1mm]\pingu at name-belly-center) arc(0:180:.13cm)
+    to[out=270,in=110] ++(.26cm,-.36cm) to[out=70,in=270] ++(.26cm,.36cm) arc (0:180:.13cm) -- cycle;
+}
+
+\pingu at create@extra{vampireteeth}{%
+  vampire teeth/.code       = {\pingu at set@extra{vampireteeth}{true}\pingu at color{vampireteeth}{#1}},
+  vampire teeth/.default    = pingu at yellow!10!pingu at black!70!lightgray
+}{}
+
+\def\pingu at draw@eb at vampireteeth{%
+    \pingu at block{\pingu at color@vampireteeth} (\pingu at name-bill) ++(-1.35mm,-2.5mm)
+    arc(180:0:1.35mm and 2.5mm)
+    arc(0:180:1.35mm and .95mm);
+}
+
+\pingu at create@wing at extra{broom}{%
+    broom \@lr/.code                    = {\pingu at set@extra{broom\@lr}{true}\pingu at color{broom\@lr}{##1}},
+    broom \@lr/.default                 = pingu at bronze,
+    broom \@lr\space length/.code       = \expandafter\def\csname pingu at broom@\@lr @length\endcsname{##1},
+    broom \@lr\space shift/.code        = \expandafter\def\csname pingu at broom@\@lr @shift\endcsname{##1},
+    broom \@lr\space band/.code          = \pingu at color{broom@\@lr @band}{##1},
+    broom \@lr\space bristles a/.code   = \pingu at color{broom@\@lr @bristles at a}{##1},
+    broom \@lr\space bristles b/.code   = \pingu at color{broom@\@lr @bristles at b}{##1},
+    broom \@lr\space bristles c/.code   = \pingu at color{broom@\@lr @bristles at c}{##1},
+}{broom \@lr\space length=22mm,broom \@lr\space shift=8mm, broom \@lr\space band=pingu at red!80!pingu at black!80!pingu at bronze, broom \@lr\space bristles a=pingu at bronze!16!pingu at yellow!41!pingu at white!80!brown!95!\csname pingu at color@broom\@lr\endcsname, broom \@lr\space bristles b=\csname pingu at color@broom@\@lr @bristles at a\endcsname!83!pingu at white, broom \@lr\space bristles c=\csname pingu at color@broom@\@lr @bristles at b\endcsname!83!pingu at white}
+\def\pingu at draw@wi at broom#1{%
+    \pingu at setup@wing{broom}{#1}%
+    % TODO: mirror on other wing?
+\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+    \pingu at block{\csname pingu at color@broom#1\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.2mm,-\csname pingu at broom@#1 at shift\endcsname) -- ++(0,\csname pingu at broom@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-broom-#1-top) -- ++(0,-\csname pingu at broom@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@a\endcsname} (\pingu at name-broom-#1-top)++(-1mm,-2mm) to[out=115,in=240] ++(1mm,10.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]\pingu at name-broom-#1-top) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]\pingu at name-broom-#1-top) -- cycle;
+    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@a\endcsname} (\pingu at name-broom-#1-top)++(-1mm,-2mm) to[out=115,in=240] ++(1.66mm,9.75mm) to[out=300,in=65] coordinate[pos=.81] (@l) coordinate[pos=.79] (@l2) ([xshift=.95mm,yshift=-2mm]\pingu at name-broom-#1-top) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]\pingu at name-broom-#1-top) -- cycle;
+    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@a\endcsname} (\pingu at name-broom-#1-top)++(-1mm,-2mm) to[out=115,in=240] coordinate[pos=.17] (@r) coordinate[pos=.19] (@r2)  ++(.25mm,10.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]\pingu at name-broom-#1-top) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]\pingu at name-broom-#1-top) -- cycle;
+    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@b\endcsname} (\pingu at name-broom-#1-top)++(-.75mm,-1.75mm) to[out=115,in=240] ++(1.35mm,9.25mm) to[out=300,in=65] ([xshift=.75mm,yshift=-1.75mm]\pingu at name-broom-#1-top) -- cycle;
+    \pingu at block[rounded corners=.44pt]{\csname pingu at color@broom@#1 at bristles@b\endcsname} (\pingu at name-broom-#1-top)++(-.75mm,-1.75mm) to[out=115,in=240] ++(0mm,9.65mm) to[out=300,in=65] ([xshift=.75mm,yshift=-1.75mm]\pingu at name-broom-#1-top) -- cycle;
+    \pingu at block{\csname pingu at color@broom@#1 at bristles@c\endcsname} (\pingu at name-broom-#1-top)++(-.5mm,-1.5mm) to[out=115,in=240] ++(.5mm,9.5mm) to[out=300,in=65] ([xshift=.5mm,yshift=-1.5mm]\pingu at name-broom-#1-top) -- cycle;
+    % TODO: broom cap color etc
+    \pingu at block{\csname pingu at color@broom@#1 at band\endcsname} (@r) to[bend right=10] (@l) -- (@l2) to[bend left=10] (@r2);
+\endscope
+}
+
+\tikzset{pingu at clip even odd rule/.code={\pgfseteorule}, % Credit to Andrew Stacey
+pingu at invclip/.style={
+    clip,insert path=
+        [pingu at clip even odd rule]{
+            [reset cm](-\maxdimen,-\maxdimen)rectangle(\maxdimen,\maxdimen)
+        }
+}}
+\pingu at create@extra{jackolantern}{%
+  jack o lantern/.code           = \pingu at set@extra{jackolantern}{true}\pingu at color{jackolantern}{#1},
+  jack o lantern/.default        = pingu at bronze!97!pingu at black,
+  jack o lantern helmet/.style   = {jack o lantern=#1,jack o lantern background=none,jack o lantern position={-2.15:(2.05mm,-11.35mm){1.5}},jack o lantern back stripe a=\@pingu at none, jack o lantern back stripe b=\@pingu at none,jack o lantern back stripe c=\@pingu at none,jack o lantern height=6.25mm,jack o lantern width=6.1mm,hair=\@pingu at none},
+  jack o lantern helmet/.default = pingu at bronze!97!pingu at black,
+  jack o lantern stalk/.code     = \pingu at color{jackolantern at stalk}{#1},
+  jack o lantern stalk top/.code = \pingu at color{jackolantern at stalk@top}{#1},
+  jack o lantern background/.code= \pingu at color{jackolantern at background}{#1},
+  jack o lantern stripe a/.code  = \pingu at color{jackolantern at stripe@a}{#1},
+  jack o lantern stripe b/.code  = \pingu at color{jackolantern at stripe@b}{#1},
+  jack o lantern stripe c/.code  = \pingu at color{jackolantern at stripe@c}{#1},
+  jack o lantern back stripe a/.code  = \pingu at color{jackolantern at backstripe@a}{#1},
+  jack o lantern back stripe b/.code  = \pingu at color{jackolantern at backstripe@b}{#1},
+  jack o lantern back stripe c/.code  = \pingu at color{jackolantern at backstripe@c}{#1},
+  jack o lantern outline/.code   = \pingu at color{jackolantern at outline}{#1},
+  jack o lantern outline width/.code = \def\pingu at x@jackolantern at outline@w{#1},
+  jack o lantern height/.code = \def\pingu at x@jackolantern at height{#1},
+  jack o lantern width/.code = \def\pingu at x@jackolantern at width{#1},
+  jack o lantern position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@jackolantern at angle{#1}\def\pingu at x@jackolantern at xshift{#2}\def\pingu at x@jackolantern at yshift{#3}\def\pingu at x@jackolantern at scale{#4}}
+}{jack o lantern position={-9:(3.15mm,.95mm){1.3}},jack o lantern stripe a=pingu at black,jack o lantern stripe b=\pingu at color@jackolantern at stripe@a,jack o lantern stripe c=\pingu at color@jackolantern at stripe@b,jack o lantern back stripe a=pingu at black,jack o lantern back stripe b=\pingu at color@jackolantern at stripe@a,jack o lantern back stripe c=\pingu at color@jackolantern at stripe@b,jack o lantern outline=pingu at black,jack o lantern outline width=.7pt,jack o lantern stalk=pingu at green!95!\pingu at color@jackolantern!45!pingu at black,jack o lantern stalk top=\pingu at color@jackolantern at stalk!95!pingu at black,jack o lantern background=\pingu at color@jackolantern!85!pingu at black,jack o lantern height=5.5mm,jack o lantern width=5.75mm}
+
+\def\pingu at jackolantern@outerpath{(0,.125cm)++(-60:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) arc(-60:86:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend right=3] ++(-3.75mm,0) arc(95:242:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend left=5] cycle;}
+\def\pingu at x@jackolantern{(-5.15mm,.6mm) to[bend right] ++(1.5mm,-.5mm) -- ++(.33mm,.33mm) to[bend right=10] ++(1.5mm,0) -- ++(.66mm,-.75mm) -- ++(.66mm,.75mm) to[bend right=10] ++(1.5mm,0) -- ++(.33mm,-.33mm) to[bend right] ++(1.5mm,.5mm) to[bend left] ++(-1.5mm,-2.15mm) to[bend left=10] ++(-.33mm,.33mm) to[bend left=10] ++(-1.5mm,0) -- ++(-.66mm,-.5mm) -- ++(-.66mm,.5mm) to[bend left=10] ++(-1.5mm,0) -- ++(-.33mm,-.33mm) to[bend left] cycle}
+
+\def\pingu at x@jackolantern at eye@left{(0.9mm,2mm) -- ++(2mm,-.15mm) to[bend right=40] ++(-.5mm,2mm) -- cycle}
+\def\pingu at x@jackolantern at eye@right{(-3mm,2mm) -- ++(-2mm,-.15mm) to[bend left=40] ++(.5mm,2mm) -- cycle}
+\def\pingu at x@jackolantern at nose{(0.965mm*0.5-3.225mm*0.5,1mm) -- ++(1mm,1.2mm) to[bend right=10] ++(-2mm,0) -- cycle}
+
+\def\pingu at draw@ea at jackolantern{%
+\scope[rotate around={\pingu at x@jackolantern at angle:(\pingu at name-head-top)},%
+shift={(\pingu at name-head-top)},
+shift={(\pingu at x@jackolantern at xshift,\pingu at x@jackolantern at yshift)},
+scale=\pingu at x@jackolantern at scale]
+\scope
+\pgfinterruptboundingbox
+\path[pingu at invclip]\pingu at x@jackolantern \pingu at x@jackolantern at eye@left \pingu at x@jackolantern at eye@right \pingu at x@jackolantern at nose;
+  % give it a small cut
+  \pingu at block{\pingu at color@jackolantern} (0,.125cm)++(-60:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) coordinate (@pkll) arc(-60:86: {\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) coordinate (@pkl) to[bend right=3] coordinate[pos=.5] (@pkuc) coordinate[pos=.225] (@pksl) coordinate[pos=.775] (@pksr) ++(-3.75mm,0) coordinate (@pkr) arc(95:242:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) coordinate (@pklr) to[bend left=5] coordinate[pos=.5] (@pklc) cycle;
+  \pingu at draw[line join=round,line width=\pingu at x@jackolantern at outline@w]{\pingu at color@jackolantern at outline} \pingu at jackolantern@outerpath;
+\endpgfinterruptboundingbox
+\scope
+\clip (0,.125cm)++(-60:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) arc(-60:86:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend right=3] ++(-3.75mm,0) arc(95:242:{\pingu at x@jackolantern at width} and \pingu at x@jackolantern at height) to[bend left=5] cycle;
+  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at stripe@a} (@pklr) to[bend left=42] (@pkr);
+  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at stripe@c} (@pkll) to[bend right=54] (@pkl);
+  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at stripe@b} (@pklc) to[bend right=6] (@pkuc);
+\endscope
+\endscope
+  \pingu at draw[fill=\pingu at color@jackolantern at background,rounded corners=.25pt]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern at eye@left;
+  \pingu at draw[fill=\pingu at color@jackolantern at background,rounded corners=.25pt]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern at eye@right;
+
+  \pingu at draw[fill=\pingu at color@jackolantern at background,rounded corners=.25pt]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern at nose;
+
+  \pingu at draw[fill=\pingu at color@jackolantern at background]{\pingu at color@jackolantern at outline} \pingu at x@jackolantern;
+  \scope
+  \clip\pingu at x@jackolantern \pingu at x@jackolantern at eye@left \pingu at x@jackolantern at eye@right \pingu at x@jackolantern at nose;
+  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at backstripe@a} ([xshift=1.6mm]@pklr) to[bend left=18] (@pkr);
+  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at backstripe@c} ([xshift=-1.6mm]@pkll) to[bend right=22] (@pkl);
+  \pingu at draw[line cap=round,opacity=.2]{\pingu at color@jackolantern at backstripe@b} (@pklc) to[bend right=1] (@pkuc);
+  \endscope
+  \pingu at block{\pingu at color@jackolantern at stalk} ([yshift=-.5*\pingu at x@jackolantern at outline@w]@pksl) to[bend left=3] ([yshift=-.5*\pingu at x@jackolantern at outline@w]@pksr) to[bend right=8] ++(.85mm,2mm) -- ++(.65mm,0) coordinate[pos=.5] (@pkc) to[bend right=3] cycle;
+\pingu at block{\pingu at color@jackolantern at stalk@top} (@pkc) ellipse[x radius=.65mm/2, y radius=.085mm];
+\endscope
+}
+
+\pingu at create@wing at extra{hammer}{%
+    hammer \@lr/.code              = {\pingu at set@extra{hammer\@lr}{true}\pingu at color{hammer\@lr}{##1}},
+    hammer \@lr/.default           = pingu at silver,
+    hammer \@lr\space handle length/.code = \expandafter\def\csname pingu at hammer@\@lr @length\endcsname{##1},
+    hammer \@lr\space handle shift/.code  = \expandafter\def\csname pingu at hammer@\@lr @shift\endcsname{##1},
+    hammer \@lr\space width/.code  = \expandafter\def\csname pingu at hammer@\@lr @width\endcsname{##1},
+    hammer \@lr\space height/.code  = \expandafter\def\csname pingu at hammer@\@lr @height\endcsname{##1},
+    hammer \@lr\space xshift/.code  = \expandafter\def\csname pingu at hammer@\@lr @xshift\endcsname{##1},
+    hammer \@lr\space yshift/.code  = \expandafter\def\csname pingu at hammer@\@lr @yshift\endcsname{##1},
+    hammer \@lr\space handle/.code = \pingu at color{hammer@\@lr @handle}{##1},%
+    hammer \@lr\space with knob/.style  = {hammer \@lr=##1, hammer \@lr\space handle length=\dimexpr9mm+\csname pingu at hammer@\@lr @height\endcsname+.5mm,hammer \@lr\space yshift=\dimexpr-.5mm-\csname pingu at hammer@\@lr @height\endcsname},
+    hammer \@lr\space with knob/.default = pingu at silver
+}{hammer \@lr\space handle length=9mm, hammer \@lr\space handle=pingu at bronze, hammer \@lr\space handle shift=-4mm, hammer \@lr\space width=7mm,hammer \@lr\space height=3.5mm, hammer \@lr\space xshift=-0.5*\csname pingu at hammer@\@lr @width\endcsname,hammer \@lr\space yshift=-1mm}
+\def\pingu at draw@wi at hammer#1{%
+    \pingu at setup@wing{hammer}{#1}%
+\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+% \csname pingu at color@hammer#1\endcsname
+    \pingu at block{\csname pingu at color@hammer@#1 at handle\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.2mm,\csname pingu at hammer@#1 at shift\endcsname) -- ++(0,\csname pingu at hammer@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-hammer-#1-top) -- ++(0,-\csname pingu at hammer@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+    \pingu at block[rounded corners=2pt]{\csname pingu at color@hammer#1\endcsname} (\pingu at name-hammer-#1-top)++(\csname pingu at hammer@#1 at xshift\endcsname,\csname pingu at hammer@#1 at yshift\endcsname) rectangle ++(\csname pingu at hammer@#1 at width\endcsname,\csname pingu at hammer@#1 at height\endcsname);
+\endscope
+}
+
+\pingu at create@wing at extra{plank}{%
+    plank \@lr/.code              = {\pingu at set@extra{plank\@lr}{true}\pingu at color{plank\@lr}{##1}},
+    plank \@lr/.default           = pingu at bronze!80!pingu at black,
+    plank \@lr\space width/.code  = \expandafter\def\csname pingu at plank@\@lr @width\endcsname{##1},
+    plank \@lr\space height/.code  = \expandafter\def\csname pingu at plank@\@lr @height\endcsname{##1},
+    plank \@lr\space xshift/.code  = \expandafter\def\csname pingu at plank@\@lr @xshift\endcsname{##1},
+    plank \@lr\space yshift/.code  = \expandafter\def\csname pingu at plank@\@lr @yshift\endcsname{##1}
+}{plank \@lr\space width=7mm,plank \@lr\space height=16.5mm, plank \@lr\space xshift=0mm,plank \@lr\space yshift=-1mm}
+\def\pingu at draw@wi at plank#1{%
+    \pingu at setup@wing{plank}{#1}%
+\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+\pingu at block[rounded corners=2pt]{\@col}([xshift=\csname pingu at plank@#1 at xshift\endcsname,yshift=\csname pingu at plank@#1 at yshift\endcsname]\pingu at name-wing-#1)++({-.5*(\csname pingu at plank@#1 at width\endcsname)},{-.5*(\csname pingu at plank@#1 at height\endcsname)}) rectangle ++({\csname pingu at plank@#1 at width\endcsname},{\csname pingu at plank@#1 at height\endcsname});
+\endscope
+}
+
+% \usetikzlibrary{spy}
+
+\pingu at create@wing at extra{magnifier}{%
+    magnifier \@lr/.code              = {\pingu at set@extra{magnifier\@lr}{true}\pingu at color{magnifier\@lr}{##1}}, % \noexpand\tikzset{/pingu/@pingu/.append style={spy scope={circle,draw,magnification=4,size=1cm}}}
+    magnifier \@lr/.default           = pingu at bronze,
+    magnifier \@lr\space handle length/.code = \expandafter\def\csname pingu at magnifier@\@lr @length\endcsname{##1},
+    magnifier \@lr\space handle shift/.code  = \expandafter\def\csname pingu at magnifier@\@lr @shift\endcsname{##1},
+    magnifier \@lr\space size/.code  = \expandafter\def\csname pingu at magnifier@\@lr @size\endcsname{##1},
+    magnifier \@lr\space glass/.code  = \pingu at color{magnifier@\@lr @glass}{##1},
+    magnifier \@lr\space opacity/.code  = \expandafter\def\csname pingu at magnifier@\@lr @opacity\endcsname{##1},
+    magnifier \@lr\space thick/.code  = \expandafter\def\csname pingu at magnifier@\@lr @thick\endcsname{##1},
+    magnifier \@lr\space xshift/.code  = \expandafter\def\csname pingu at magnifier@\@lr @xshift\endcsname{##1},
+    magnifier \@lr\space yshift/.code  = \expandafter\def\csname pingu at magnifier@\@lr @yshift\endcsname{##1},
+    magnifier \@lr\space handle/.code = \pingu at color{magnifier@\@lr @handle}{##1}%
+}{magnifier \@lr\space handle length=3.5mm, magnifier \@lr\space handle shift=-4mm, magnifier \@lr\space xshift=0mm,magnifier \@lr\space yshift=1mm,magnifier \@lr\space size=2.5mm,magnifier \@lr\space thick=.5mm,magnifier \@lr\space glass=pingu at blue!90!pingu at yellow,magnifier \@lr\space opacity=0.24}
+\def\pingu at draw@wi at magnifier#1{%
+    \pingu at setup@wing{magnifier}{#1}%
+  \scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+% \csname pingu at color@magnifier#1\endcsname
+  \path ([yshift=\csname pingu at magnifier@#1 at yshift\endcsname+\csname pingu at magnifier@#1 at size\endcsname,xshift=\csname pingu at magnifier@\@lr @xshift\endcsname]\pingu at name-wing-#1) coordinate (@);
+
+  % \spy[draw=green] on (@) in node at (@);
+% \pgfonlayer{foreground}
+  \pingu at block[even odd rule]{\@col} (@) circle[radius=\csname pingu at magnifier@#1 at size\endcsname] circle[radius=\csname pingu at magnifier@#1 at size\endcsname-\csname pingu at magnifier@#1 at thick\endcsname];
+
+    \pingu at block[opacity=\csname pingu at magnifier@#1 at opacity\endcsname]{\csname pingu at color@magnifier@#1 at glass\endcsname} (@) circle[radius=\csname pingu at magnifier@#1 at size\endcsname-\csname pingu at magnifier@#1 at thick\endcsname];
+
+    \pingu at block{\@col} % TODO: adapt size
+    (@) ([shift={(-70:2.5mm)}]@) to[out=230,in=90] ++(-.5mm,-\csname pingu at magnifier@#1 at length\endcsname) arc(360:180:.33mm) to[out=90,in=-50] ++(-.5mm,\csname pingu at magnifier@#1 at length\endcsname);%
+% \endpgfonlayer
+\endscope
+}
+% #endregion
+
+% #region glasses-lib
+\pingu at create@extra{glasses}{%
+    glasses/.code               = \pingu at set@extra{glasses}{true}\pingu at color{glasses}{#1},
+    glasses/.default            = pingu at black,
+    glasses left fill/.code     = \pingu at color{glasses at fill@l}{#1},
+    glasses right fill/.code    = \pingu at color{glasses at fill@r}{#1},
+    glasses left opacity/.code  = \def\pingu at x@glasses at op@l{#1},
+    glasses right opacity/.code = \def\pingu at x@glasses at op@r{#1},
+    glasses fill/.style         = {/pingu/glasses left fill=#1, /pingu/glasses right fill=#1},
+    glasses opacity/.style      = {/pingu/glasses left opacity=#1, /pingu/glasses right opacity=#1},
+    glasses line width/.code    = \def\pingu at x@glasses at lw{#1},
+    sunglasses/.forward to      = /pingu/sun glasses,
+    glasses bend left/.code     = \def\pingu at x@glasses at bend@l{#1},
+    glasses bend right/.code    = \def\pingu at x@glasses at bend@r{#1},
+    glasses bend/.style         = {/pingu/glasses bend left=#1,/pingu/glasses bend right=#1},
+    sun glasses/.style          = {/pingu/glasses, /pingu/glasses fill=#1},
+    sun glasses/.default        = pingu at black,
+}{glasses line width=1.125\p@,glasses fill=\@pingu at none,glasses opacity=.825,glasses bend left=32.5,glasses bend right=32.5}
+
+\def\pingu at draw@ea at glasses{% fact: 1.33; modified first shift and ht
+    \pingu at block[opacity=\pingu at x@glasses at op@l]{\pingu at color@glasses at fill@l} (\pingu at name-eye-left)++(-2.66mm,1.75mm) to[bend left=8] ++(5.586mm,0) to[out=-80,in=70] ++(-.266mm,-3.6mm) to[bend left=\pingu at x@glasses at bend@l] ++(-4.8545mm,\z@) to[out=135,in=-90] ++(-1.064mm,3.5mm) -- cycle;
+    \pingu at block[opacity=\pingu at x@glasses at op@r]{\pingu at color@glasses at fill@r} (\pingu at name-eye-right)++(2.66mm,1.75mm) to[bend right=8] ++(-5.586mm,0) to[out=-100,in=110] ++(.266mm,-3.6mm) to[bend right=\pingu at x@glasses at bend@r] ++(4.8545mm,\z@) to[out=45,in=-90] ++(1.064mm,3.5mm) -- cycle;
+    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} [rounded corners=.25mm](\pingu at name-eye-left)++(-2.66mm,1.75mm) coordinate (\pingu at name-glasses-left-mid) to[bend left=8] ++(5.586mm,0) coordinate (\pingu at name-glasses-left-outer) to[out=-80,in=70] ++(-.266mm,-3.6mm) to[bend left=\pingu at x@glasses at bend@l] ++(-4.8545mm,\z@) to[out=135,in=-90] coordinate[pos=.9] (\pingu at name-glasses-left-mid-b) ++(-1.064mm,3.5mm) -- cycle;
+    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} [rounded corners=.25mm] (\pingu at name-eye-right)++(2.66mm,1.75mm) coordinate (\pingu at name-glasses-right-mid) to[bend right=8] ++(-5.586mm,0) coordinate (\pingu at name-glasses-right-outer) to[out=-100,in=110] ++(.266mm,-3.6mm) to[bend right=\pingu at x@glasses at bend@r] ++(4.8545mm,\z@) to[out=45,in=-90] coordinate[pos=.9] (\pingu at name-glasses-right-mid-b) ++(1.064mm,3.5mm) -- cycle;
+    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} (\pingu at name-glasses-right-mid) to[bend right=10] (\pingu at name-glasses-left-mid);
+    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses} (\pingu at name-glasses-right-mid-b) to[bend left=20] (\pingu at name-glasses-left-mid-b);
+    \scope
+    \clip[use path=\pingu at upperpingu];
+    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses}
+    (\pingu at name-glasses-right-mid) to[bend right=8] ++(-5.586mm,0) -- ++(-5mm,.5mm);
+    \pingu at draw[line width=\pingu at x@glasses at lw]{\pingu at color@glasses}
+    (\pingu at name-glasses-left-mid) to[bend left=8] ++(5.586mm,0) -- ++(5mm,.5mm);
+    \endscope
+}
+\pingu at create@extra{glassesround}{%
+    glasses round/.code               = \pingu at set@extra{glassesround}{true}\pingu at color{glassesround}{#1},
+    glasses round/.default            = pingu at black,
+    glasses round left fill/.code     = \pingu at color{glassesround at fill@l}{#1},
+    glasses round right fill/.code    = \pingu at color{glassesround at fill@r}{#1},
+    glasses round fill/.style         = {/pingu/glasses round left fill=#1, /pingu/glasses round right fill=#1},
+    glasses round left opacity/.code  = \def\pingu at x@glassesround at op@l{#1},
+    glasses round right opacity/.code = \def\pingu at x@glassesround at op@r{#1},
+    glasses round opacity/.style      = {/pingu/glasses round left opacity=#1, /pingu/glasses round right opacity=#1},
+    glasses round left radius/.code  = \def\pingu at x@glassesround at r@l{#1},
+    glasses round right radius/.code = \def\pingu at x@glassesround at r@r{#1},
+    glasses round radius/.style      = {/pingu/glasses round left radius=#1, /pingu/glasses round right radius=#1},
+    glasses round line width/.code    = \def\pingu at x@glassesround at lw{#1},
+    sunglasses round/.forward to      = /pingu/sun glasses round,
+    sun glasses round/.style          = {/pingu/glasses round, /pingu/glasses round fill=#1},
+    sun glasses round/.default        = pingu at black,
+    % todo: width/radius allow for different
+}{glasses round line width=.75\p@,glasses round fill=\@pingu at none,glasses round opacity=.825,glasses round radius=3.15mm}
+\def\pingu at draw@ea at glassesround{% fact: 1.33; modified first shift and ht
+    \pingu at block[opacity=\pingu at x@glassesround at op@l]{\pingu at color@glassesround at fill@l} (\pingu at name-eye-left) circle [radius=\pingu at x@glassesround at r@l];
+    \pingu at block[opacity=\pingu at x@glassesround at op@r]{\pingu at color@glassesround at fill@r} (\pingu at name-eye-right) circle [radius=\pingu at x@glassesround at r@r];
+    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround} [rounded corners=.25mm](\pingu at name-eye-left) ++(150:\pingu at x@glassesround at r@l) coordinate (\pingu at name-glassesround-left-mid) arc (150:510:\pingu at x@glassesround at r@l);
+    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround} [rounded corners=.25mm] (\pingu at name-eye-right) ++(30:\pingu at x@glassesround at r@r) coordinate (\pingu at name-glassesround-right-mid) arc (30:390:\pingu at x@glassesround at r@r);
+    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround} (\pingu at name-glassesround-left-mid) to[bend right=30] (\pingu at name-glassesround-right-mid);
+    \scope
+    \clip[use path=\pingu at upperpingu];
+    \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround}
+     (\pingu at name-glassesround-right-mid) arc(30:150:\pingu at x@glassesround at r@l) -- ++(-5mm,.65mm);
+     \pingu at draw[line width=\pingu at x@glassesround at lw]{\pingu at color@glassesround}
+     (\pingu at name-glassesround-left-mid) arc(150:30:\pingu at x@glassesround at r@r) -- ++(5mm,.65mm);
+    \endscope
+}
+\pingu at create@extra{monocleleft}{%
+    monocle left/.code              = \pingu at set@extra{monocleleft}{true}\pingu at color{monocleleft}{#1},
+    monocle left/.default           = pingu at black,
+    monocle left glass/.code        = \pingu at color{monocleleft at glass}{#1},
+    monocle left fill/.forward to   = /pingu/monocle left glass,
+    monocle left opacity/.code      = \def\pingu at x@monocleleft at opacity{#1},
+    monocle left fill opacity/.forward to   = /pingu/monocle left opacity,
+    monocle left string/.code       = \pingu at color{monocleleft at string}{#1},
+    monocle left string length/.code= \def\pingu at x@monocleleft at string@l{#1},
+    monocle left blob/.code         = \pingu at color{monocleleft at blob}{#1},
+}{monocle left glass=pingu at blue,monocle left opacity=.155,monocle left string=\pingu at color@monocleleft,monocle left blob=\pingu at color@monocleleft,monocle left string length=5.55mm}
+
+\def\pingu at draw@eb at monocle@l{%
+    \pingu at block[/pingu/glow,opacity=\pingu at x@monocleleft at opacity]{\pingu at color@monocleleft at glass} (\pingu at name-eye-left) circle[radius=2mm];
+    \pingu at draw[thin]{\pingu at color@monocleleft at string} (\pingu at name-eye-left)++(2mm,0)
+    to[out=-75,in=100] ++(0,-\pingu at x@monocleleft at string@l);
+    \pingu at block{\pingu at color@monocleleft at blob} (\pingu at name-eye-left)++(2mm,-\pingu at x@monocleleft at string@l) circle [radius=.65\p@];
+    \pingu at draw[semithick]{\pingu at color@monocleleft} (\pingu at name-eye-left) circle[radius=2mm];
+}
+\pingu at create@extra{monocleright}{%
+    monocle right/.code              = \pingu at set@extra{monocleright}{true}\pingu at color{monocleright}{#1},
+    monocle right/.default           = pingu at black,
+    monocle right glass/.code        = \pingu at color{monocleright at glass}{#1},
+    monocle right fill/.forward to   = /pingu/monocle right glass,
+    monocle right opacity/.code      = \def\pingu at x@monocleright at opacity{#1},
+    monocle right fill opacity/.forward to   = /pingu/monocle right opacity,
+    monocle right string/.code       = \pingu at color{monocleright at string}{#1},
+    monocle right string length/.code= \def\pingu at x@monocleright at string@r{#1},
+    monocle right blob/.code         = \pingu at color{monocleright at blob}{#1},
+}{monocle right glass=pingu at blue,monocle right opacity=.155,monocle right string=\pingu at color@monocleright,monocle right blob=\pingu at color@monocleright,monocle right string length=5.55mm}
+\def\pingu at draw@eb at monocle@r{%
+    \pingu at block[/pingu/glow,opacity=\pingu at x@monocleright at opacity]{\pingu at color@monocleright at glass} (\pingu at name-eye-right) circle[radius=2mm];
+    \pingu at draw[thin]{\pingu at color@monocleright at string} (\pingu at name-eye-right)++(-2mm,0)
+    to[out=-105,in=80] ++(0,-\pingu at x@monocleright at string@r);
+    \pingu at block{\pingu at color@monocleright at blob} (\pingu at name-eye-right)++(-2mm,-\pingu at x@monocleright at string@r) circle [radius=.65\p@];
+    \pingu at draw[semithick]{\pingu at color@monocleright} (\pingu at name-eye-right) circle[radius=2mm];
+}
+% #endregion
+
+% #region hats-lib
+\pingu at create@extra{strawhat}{%
+  % extra strawhat (tikzducks basis)
+  straw hat/.forward to         = /pingu/strawhat,
+  strawhat/.default             = brown!50!white,
+  strawhat/.code                = \pingu at set@extra{strawhat}{true}\pingu at color{strawhat}{#1},
+  straw hat ribbon/.forward to  = /pingu/strawhat ribbon,
+  strawhat ribbon/.code         = \pingu at color{strawhat at ribbon}{#1},
+  straw hat position/.forward to= /pingu/strawhat position,
+  strawhat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@strawhat at angle{#1}\def\pingu at x@strawhat at xshift{#2}\def\pingu at x@strawhat at yshift{#3}\def\pingu at x@strawhat at scale{#4}},
+}{strawhat ribbon= gray!85!black,strawhat position={-26.5:(-.185cm,.14cm){1.375}}}
+
+\def\pingu at draw@ea at strawhat{%
+\scope[rotate around={\pingu at x@strawhat at angle:(\pingu at name-head)},shift={(\pingu at name-head)},shift={(\pingu at x@strawhat at xshift,\pingu at x@strawhat at yshift)},scale=\pingu at x@strawhat at scale]
+\pingu at block{\pingu at color@strawhat} (.34cm,0) ellipse[x radius=.75cm, y radius=\pingu at one];
+\pingu at block{\pingu at color@strawhat} (0,.5mm) rectangle (.68cm,5mm);
+\pingu at block{\pingu at color@strawhat} (.34cm,5mm) ellipse[x radius=.34cm, y radius=.8mm];
+\pingu at block{\pingu at color@strawhat} (-.3955cm,.2mm) -- (1.0755cm,.2mm) -- (.68cm,2mm) -- (0,2mm) -- cycle;
+\pingu at block{\pingu at color@strawhat at ribbon} (.34cm,2mm) ellipse[x radius=.34cm, y radius=.8mm];
+\pingu at block{\pingu at color@strawhat at ribbon} (0,2mm) rectangle (.68cm,3mm);
+\pingu at block{\pingu at color@strawhat} (.34cm,3mm) ellipse[x radius=.34cm, y radius=.8mm];
+\endscope}
+
+\pingu at create@extra{hat}{%
+  hat/.default   = pingu at black!90!black,
+  hat/.code      = \pingu at set@extra{hat}{true}\pingu at color{hat}{#1},
+  hat base/.code = \pingu at color{hat at base}{#1},
+  hat coronal/.code = \pingu at color{hat at coronal}{#1},
+  hat ribbon/.code = \pingu at color{hat at ribbon}{#1},
+  hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@hat at angle{#1}\def\pingu at x@hat at xshift{#2}\def\pingu at x@hat at yshift{#3}\def\pingu at x@hat at scale{#4}},
+}{hat position={-2:(.35mm,0)1},hat base=\pingu at color@hat,hat coronal=\pingu at color@hat!91!white,hat ribbon=\pingu at color@hat!87!white}
+
+\newdimen\pingu at hat@w at half \pingu at hat@w at half=.925cm
+\newdimen\pingu at hat@h \pingu at hat@h=.625cm
+\def\pingupathhatupper{[rounded corners=.25mm](-.65cm,-.25cm) to[out=90,in=200] ++(.35cm,\pingu at hat@h) to[bend left=11] ++(.25cm,0) to[bend right=2.5] ++(\pingu at one,0) to[bend left=11] ++(.25cm,0) to[out=-20,in=90] ++(.35cm,-\pingu at hat@h) to[bend left=12] (-.65cm,-.25cm) -- cycle}
+\def\pingu at draw@ea at hat{%
+\scope[rotate around={\pingu at x@hat at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@hat at xshift,\pingu at x@hat at yshift)},scale=\pingu at x@hat at scale]
+\pingu at block[/pingu/@draw=\pingu at color@hat at coronal,thick]{\pingu at color@hat at base} (0,-.25cm)++(180:\pingu at hat@w at half{} and .15cm) arc (180:360:\pingu at hat@w at half{} and .15cm) arc (0:180:\pingu at hat@w at half{} and .115cm) -- cycle;
+\pingu at block{\pingu at color@hat} \pingupathhatupper;
+\scope
+\clip\pingupathhatupper;
+\pingu at block{\pingu at color@hat at ribbon} (\z@,.2mm) ellipse [x radius=.95\pingu at hat@w at half, y radius=.13cm];
+\pingu at block{\pingu at color@hat} (\z@,.134cm) ellipse [x radius=.95\pingu at hat@w at half, y radius=.13cm];
+\endscope\endscope}
+
+% TODO: tassel
+\pingu at create@extra{graduate}{%
+  graduate cap/.forward to                  = /pingu/graduate,
+  graduate/.default                         = pingu at black!95!white,
+  graduate/.code                            = \pingu at set@extra{graduate}{true}\pingu at color{graduate}{#1},
+  graduate cap top/.forward to              = /pingu/graduate top,
+  graduate top/.code                        = \pingu at color{graduate at top}{#1},
+  graduate cap tilt/.forward to             = /pingu/graduate tilt,
+  graduate tilt/.code                       = \def\pingu at x@graduate at tilt{#1},
+  graduate cap tassel/.forward to           = /pingu/graduate tassel,
+  graduate tassel/.code                     = \pingu at color{graduate at tassel}{#1},
+  graduate tassel/.default                  = pingu at red!65!black,
+  graduate cap tassel drop/.forward to      = /pingu/graduate tassel drop,
+  graduate tassel drop/.code                = \pingu at color{graduate at tassel@drop}{#1},
+  graduate cap tassel start/.forward to     = /pingu/graduate tassel start,
+  graduate tassel start/.code               = \def\pingu at x@tassel at start{#1},
+  graduate cap tassel width/.forward to     = /pingu/graduate tassel width,
+  graduate tassel width/.code               = \def\pingu at x@tassel at width{#1},
+  graduate cap tassel length/.forward to    = /pingu/graduate length,
+  graduate tassel length/.code              = \def\pingu at x@tassel at length{#1},
+  graduate cap tassel drop size/.forward to = /pingu/graduate drop size,
+  graduate tassel drop size/.code           = \def\pingu at x@tassel at drop@size{#1},
+  graduate cap position/.forward to         = /pingu/graduate position,
+  graduate position/.code args              = {#1:(#2,#3)#4}{\def\pingu at x@graduate at angle{#1}\def\pingu at x@graduate at xshift{#2}\def\pingu at x@graduate at yshift{#3}\def\pingu at x@graduate at scale{#4}},
+}{graduate position={-27:(-.19cm,.14cm){1.375}}, graduate top=\pingu at color@graduate!95!white,graduate tilt=2.33mm,graduate tassel=\@pingu at none, graduate tassel width=.5mm, graduate tassel length=5.5mm,graduate tassel drop size=.75*\pingu at x@tassel at width,graduate tassel drop=\pingu at color@graduate at tassel,graduate cap tassel start={(.55cm,3.5mm-\pingu at x@graduate at tilt)}} % ; tassel color to hide
+
+\def\pingu at draw@ea at graduate{%
+\scope[rotate around={\pingu at x@graduate at angle:(\pingu at name-head)},shift={(\pingu at name-head)},shift={(\pingu at x@graduate at xshift,\pingu at x@graduate at yshift)},scale=\pingu at x@graduate at scale]
+\pingu at block{\pingu at color@graduate} (0,1mm) rectangle (.75cm,3.5mm);
+\pingu at block{\pingu at color@graduate} (.375cm,1mm) ellipse[x radius=.375cm, y radius=.8mm];
+\pingu at block[rounded corners=.33mm]{\pingu at color@graduate at top} (-3mm,3.5mm) 
+    % minor slant for visuals
+    -- ++(.675cm + .1mm,\pingu at x@graduate at tilt) -- (1.05cm,3.5mm) -- ++(-.675cm - .1mm,-\pingu at x@graduate at tilt) -- cycle;
+% counter rotation
+\scope[rotate around={-\pingu at x@graduate at angle:(\pingu at name-head)}]
+\pingu at draw[line width=\pingu at x@tassel at width]{\pingu at color@graduate at tassel} \pingu at x@tassel at start to[out=-45,in=90] ++(.2*\pingu at x@tassel at length,-\pingu at x@tassel at length) coordinate(@);
+\pingu at block{\pingu at color@graduate at tassel@drop} (@) circle[x radius=\pingu at x@tassel at drop@size, y radius=1.75*\pingu at x@tassel at drop@size];
+\endscope
+\endscope}
+
+\pingu at create@extra{cap}{%
+  cap/.default      = pingu at bronze,
+  cap/.code         = \pingu at set@extra{cap}{true}\pingu at color{cap}{#1},
+  cap padding/.code = {\def\pingu at x@cap at padding{#1}},
+  cap extra height/.code = {\def\pingu at x@cap at height{#1}},
+}{cap padding=.8mm, cap extra height=0pt}
+
+\def\pingu at draw@ea at cap{%
+\pingu at layer{foreground}[]
+\pingu at block[rounded corners=.7mm]{\pingu at color@cap} ([xshift=.25mm]\pingu at name-wing-left-start) to[bend left=4] ([xshift=-\pingu at x@cap at padding]\pingu at name-wings-side-left) to[bend right=3]
+([yshift=\pingu at x@cap at height]\pingu at name-head)
+to[bend right=3]
+([xshift=\pingu at x@cap at padding]\pingu at name-wings-side-right) [rounded corners=.15mm] to[bend left=4] ([xshift=-.25mm]\pingu at name-wing-right-start)
+to[bend left=8]
+([xshift=-\pingu at x@cap at padding]\pingu at name-wings-side-right)
+[rounded corners=.15mm]
+to[bend left=32] ++(\pingu at w@half+\pingu at x@cap at padding,\pingu at w@half+\pingu at one)
+to[bend left=32] ++(\pingu at w@half+\pingu at x@cap at padding,-\pingu at w@half-\pingu at one)
+to[bend left=8] cycle;
+\endpingu at layer
+}
+
+\pingu at create@extra{constructionhelmet}{%
+  construction helmet/.default      = pingu at yellow,
+  construction helmet/.code         = \pingu at set@extra{constructionhelmet}{true}\pingu at color{constructionhelmet}{#1},
+  construction helmet padding/.code = {\def\pingu at x@constructionhelmet at padding{#1}},
+  construction helmet extra height/.code = {\def\pingu at x@constructionhelmet at height{#1}},
+  construction helmet position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@constructionhelmet at angle{#1}\def\pingu at x@constructionhelmet at xshift{#2}\def\pingu at x@constructionhelmet at yshift{#3}\def\pingu at x@constructionhelmet at scale{#4}},
+}{construction helmet padding=.325cm, construction helmet extra height=0pt,construction helmet position={-.5:(.05mm,-1.25mm)1}}
+
+\newdimen\pingu at constructionhelmet@w at half \pingu at constructionhelmet@w at half=.85cm
+\def\pingu at draw@ea at constructionhelmet{%
+\scope[rotate around={\pingu at x@constructionhelmet at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@constructionhelmet at xshift,\pingu at x@constructionhelmet at yshift)},scale=\pingu at x@constructionhelmet at scale]
+\pingu at block{\pingu at color@constructionhelmet} (0,-.25cm)++(180:\pingu at constructionhelmet@w at half{} and \pingu at x@constructionhelmet at padding) arc (180:360:\pingu at constructionhelmet@w at half{} and \pingu at x@constructionhelmet at padding) arc (0:180:\pingu at constructionhelmet@w at half{} and .2cm) -- cycle;
+\scope
+\pingu at block{\pingu at color@constructionhelmet!93!pingu at black} (0,-.25cm)++(0:{.95\pingu at constructionhelmet@w at half} and .675cm) arc (0:180:{.95\pingu at constructionhelmet@w at half} and .675cm) coordinate[pos=.212] (@a) coordinate[pos=.256] (@aa) coordinate[pos=.788] (@b) coordinate[pos=.744] (@bb) arc (180:360:{.95\pingu at constructionhelmet@w at half} and .125cm) -- cycle;
+\clip  (0,-.25cm)++(0:{.95\pingu at constructionhelmet@w at half} and .675cm) arc (0:180:{.95\pingu at constructionhelmet@w at half} and .675cm) arc (180:360:{.95\pingu at constructionhelmet@w at half} and .125cm) -- cycle;
+\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (-.75mm,-.25cm-.125cm) to[bend left=1] ++ (0,.675cm+.125cm) -- ++(1.5mm,0) to[bend right=1] ++(0,-.675cm-.125cm) -- cycle;
+\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (-.95mm,-.25cm-.125cm) to[bend left=3] ++ (-8mm,.675cm+.125cm) -- ++(1.5mm,0) to[bend right=3] ++(8mm,-.675cm-.125cm) -- cycle;
+\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (-.55mm,-.25cm-.125cm) to[bend right=3] ++ (8mm,.675cm+.125cm) -- ++(1.5mm,0) to[bend left=3] ++(-8mm,-.675cm-.125cm) -- cycle;
+\endscope
+% get the 3d wobbles
+\pingu at block[rounded corners=.03mm]{\pingu at color@constructionhelmet!99!pingu at black} (-.75mm,-.25cm+.675cm-.25mm) -- ++(0,.3mm) -| ++(1.5mm,-.3mm) -- cycle;
+\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (@a) to[bend right=14] (@aa);
+\pingu at block{\pingu at color@constructionhelmet!99!pingu at black} (@bb) to[bend right=14] (@b);
+\endscope
+}
+
+\pingu at create@extra{conicalhat}{%
+  conical hat/.default      = pingu at bronze,
+  conical hat/.code         = \pingu at set@extra{conicalhat}{true}\pingu at color{conicalhat}{#1},
+  conical hat rounding/.code = {\def\pingu at x@conicalhat at rounding{#1}},
+  conical hat shade/.code = {\def\pingu at x@conicalhat at shade{#1}},
+  conical hat height/.code = {\def\pingu at x@conicalhat at height{#1}},
+  conical hat width/.code = {\def\pingu at x@conicalhat at width{#1}},
+  conical hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@conicalhat at angle{#1}\def\pingu at x@conicalhat at xshift{#2}\def\pingu at x@conicalhat at yshift{#3}\def\pingu at x@conicalhat at scale{#4}},
+}{conical hat position={-15:(2mm,-3mm)1}, conical hat height=8mm, conical hat width=2.25cm,conical hat shade=\pingu at color@conicalhat!80!pingu at black, conical hat rounding=.4pt}
+
+\def\pingu at draw@ea at conicalhat{%
+\scope[rotate around={\pingu at x@conicalhat at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@conicalhat at xshift,\pingu at x@conicalhat at yshift)},scale=\pingu at x@conicalhat at scale]
+
+\pingu at layer{background}[]
+\pingu at block[rounded corners=\pingu at x@conicalhat at rounding]{\pingu at x@conicalhat at shade} (0,-.22cm)++(180:{\pingu at x@conicalhat at width/2+.05mm} and 1mm) coordinate (@) arc (180:360:{\pingu at x@conicalhat at width/2+.05mm} and 1mm) -- ++(.15mm,.3mm) to[bend right=5] ++(-\pingu at x@conicalhat at width/2, \pingu at x@conicalhat at height-.025cm) to[bend right=5] ([xshift=-.15mm,yshift=.3mm]@) -- cycle;
+\endpingu at layer
+
+\pingu at block[rounded corners=\pingu at x@conicalhat at rounding]{\pingu at color@conicalhat} (0,-.25cm)++(180:\pingu at x@conicalhat at width/2 and 1mm) coordinate (@) arc (180:0:\pingu at x@conicalhat at width/2 and 1mm) -- ++(.225mm,.6mm) to[bend right=5] ++(-\pingu at x@conicalhat at width/2, \pingu at x@conicalhat at height) to[bend right=5] ([xshift=-.225mm,yshift=.6mm]@) -- cycle;
+\endscope
+}
+
+\pingu at create@extra{spacehelmet}{%
+  space helmet/.default   = pingu at black!45!white,
+  space helmet/.code      = \pingu at set@extra{spacehelmet}{true}\pingu at color{spacehelmet}{#1},
+  space helmet glass/.code= \pingu at color{spacehelmet at glass}{#1},
+  space helmet glass opacity/.code = \def\pingu at x@spacehelmet at glass@opacity{#1},
+  space helmet position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@spacehelmet at angle{#1}\def\pingu at x@spacehelmet at xshift{#2}\def\pingu at x@spacehelmet at yshift{#3}\def\pingu at x@spacehelmet at scale{#4}},
+}{space helmet position={-2:(.35mm,0)1},space helmet glass=pingu at blue!40!pingu at yellow!50!white,space helmet glass opacity=.33}
+
+\newdimen\pingu at spacehelmet@w at half \pingu at spacehelmet@w at half=.935cm
+\newdimen\pingu at spacehelmet@h \pingu at spacehelmet@h=1.125cm
+\def\pingu at draw@ea at spacehelmet{%
+\scope[rotate around={\pingu at x@spacehelmet at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@spacehelmet at xshift,\pingu at x@spacehelmet at yshift)},scale=\pingu at x@spacehelmet at scale]
+\pingu at block[opacity=\pingu at x@spacehelmet at glass@opacity]{\pingu at color@spacehelmet at glass} (\pingu at name-head-center) ellipse [x radius=.9\pingu at spacehelmet@w at half, y radius=.45\pingu at spacehelmet@h];
+
+\pingu at block[/pingu/@draw=\pingu at color@spacehelmet,thick, even odd rule]{\pingu at color@spacehelmet} 
+    ([yshift=-1mm]\pingu at name-wings-side-right) to[bend right=57] ([yshift=-1mm]\pingu at name-wings-side-left)
+    arc (0:180:\pingu at spacehelmet@w at half{} and \pingu at spacehelmet@h) -- cycle
+    (\pingu at name-head-center) ellipse [x radius=.9\pingu at spacehelmet@w at half, y radius=.45\pingu at spacehelmet@h];
+\endscope}
+
+\pingu at create@extra{witchhat}{%
+  witch hat/.code      = \pingu at set@extra{witchhat}{true}\pingu at color{witchhat}{#1},
+  witch hat/.default   = pingu at purple!40!black,
+  witch hat base/.code = \pingu at color{witchhat at base}{#1},
+  witch hat coronal/.code = \pingu at color{witchhat at coronal}{#1},
+  witch hat ribbon/.code = \pingu at color{witchhat at ribbon}{#1},
+  witch hat band/.code = \pingu at color{witchhat at band}{#1},
+  witch hat position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@witchhat at angle{#1}\def\pingu at x@witchhat at xshift{#2}\def\pingu at x@witchhat at yshift{#3}\def\pingu at x@witchhat at scale{#4}},
+}{witch hat position={-7:(.625mm,.45mm){1.15}},witch hat base=\pingu at color@witchhat,witch hat coronal=\pingu at color@witchhat!91!white,witch hat ribbon=\pingu at color@witchhat!87!white,witch hat band=!hide}
+
+\newdimen\pingu at witchhat@w at half \pingu at witchhat@w at half=1.125cm
+\newdimen\pingu at witchhat@h \pingu at witchhat@h=1.3cm
+\def\pingupathwitchhatupper{[rounded corners=.65mm](-.625cm,-.25cm) -- ++(.8cm,\pingu at witchhat@h-4.5mm) -- ++(6.5mm,4.5mm) -- ++(-1.5mm,-4.5mm) -- ++(-1.25mm,-\pingu at witchhat@h+4.5mm)}
+\def\pingu at draw@ea at witchhat{%
+\scope[rotate around={\pingu at x@witchhat at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@witchhat at xshift,\pingu at x@witchhat at yshift)},scale=\pingu at x@witchhat at scale]
+\pingu at draw[semithick]{\pingu at color@witchhat at band} (-.615cm,-.25cm) to[out=-100,in=180] ++(.5cm,-1.1cm) to[bend right=5] ++(3.5mm,.1mm) to[out=0,in=-78] ++(.433cm,1.1cm);
+\pingu at block[/pingu/@draw=\pingu at color@witchhat at coronal,thick]{\pingu at color@witchhat at base} (0,-.25cm)++(180:\pingu at witchhat@w at half{} and .15cm) arc (180:360:\pingu at witchhat@w at half{} and .15cm) arc (0:180:\pingu at witchhat@w at half{} and .115cm) -- cycle;
+\pingu at block{\pingu at color@witchhat} \pingupathwitchhatupper;
+\clip\pingupathwitchhatupper;
+\pingu at block{\pingu at color@witchhat at ribbon} (\z@,.2mm) ellipse [x radius=.95\pingu at witchhat@w at half, y radius=.12cm];
+\pingu at block{\pingu at color@witchhat} (\z@,.134cm) ellipse [x radius=.95\pingu at witchhat@w at half, y radius=.12cm];
+\endscope
+}
+
+
+\pingu at create@extra{mitra}{%
+  mitra/.default     = pingu at red!67!pingu at black,%pingu at black!90!black,
+  mitra/.code        = \pingu at set@extra{mitra}{true}\pingu at color{mitra}{#1},
+  mitra height/.code = {\def\pingu at x@mitra at height{#1}},
+  mitra background/.code = \pingu at color{mitra at background}{#1},
+  mitra overset/.code = {\def\pingu at x@mitra at overset{#1}},
+  mitra lower angle/.code = {\def\pingu at x@mitra at lowerangle{#1}},
+  mitra upper angle/.code = {\def\pingu at x@mitra at upperangle{#1}},
+  mitra lower band/.code = \pingu at color{mitra at lower@band}{#1},
+  mitra lower band height/.code = {\def\pingu at x@mitra at lowerband@height{#1}},
+  mitra upper band/.code = \pingu at color{mitra at upper@band}{#1},
+  mitra upper band height/.code = {\def\pingu at x@mitra at upperband@height{#1}},
+  mitra center band/.code = \pingu at color{mitra at center@band}{#1},
+  mitra center band width/.code = {\def\pingu at x@mitra at centerband@width{#1}},
+  mitra position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@mitra at angle{#1}\def\pingu at x@mitra at xshift{#2}\def\pingu at x@mitra at yshift{#3}\def\pingu at x@mitra at scale{#4}},
+}{mitra position={0:(0,0)1},mitra height=1.125cm,mitra overset=1.25mm,mitra lower angle=125,mitra upper angle=-35,mitra lower band=pingu at yellow!75!pingu at black,mitra center band=\pingu at color@mitra at lower@band,mitra lower band height=.2,mitra center band width={2*\pingu at x@mitra at lowerband@height},mitra upper band=\pingu at color@mitra at lower@band,mitra upper band height={1.5*\pingu at x@mitra at lowerband@height},mitra background=\pingu at color@mitra!80!pingu at black}
+
+\newdimen\pingu at mitra@w at half \pingu at mitra@w at half=.625cm
+\def\pingu at x@mitra at path{(0,-.2185cm)++(180:\pingu at mitra@w at half{} and .035cm) arc (180:360:\pingu at mitra@w at half{} and .035cm) [rounded corners=1pt] -- ++(\pingu at x@mitra at overset,.3*\pingu at x@mitra at height) to[out=\pingu at x@mitra at lowerangle,in=\pingu at x@mitra at upperangle] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half,.7*\pingu at x@mitra at height)
+to[out=180-\pingu at x@mitra at upperangle,in=180-\pingu at x@mitra at lowerangle] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half,-.7*\pingu at x@mitra at height) [sharp corners]  -- cycle}
+\def\pingu at draw@ea at mitra{%
+\scope[rotate around={\pingu at x@mitra at angle:(\pingu at name-head-top)},shift={(\pingu at name-head-top)},shift={(\pingu at x@mitra at xshift,\pingu at x@mitra at yshift)},scale=\pingu at x@mitra at scale]
+\pingu at block{\pingu at color@mitra at background} (0,-.2185cm)++(180:\pingu at mitra@w at half{} and .035cm) arc (180:360:\pingu at mitra@w at half{} and .035cm) [rounded corners=1pt] -- ++(\pingu at x@mitra at overset,.3*\pingu at x@mitra at height) to[out=\pingu at x@mitra at lowerangle,in=\pingu at x@mitra at upperangle] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half-.66mm,.7*\pingu at x@mitra at height-.1mm)
+to[out=180-\pingu at x@mitra at upperangle+2,in=180-\pingu at x@mitra at lowerangle-2] ++(-\pingu at x@mitra at overset-\pingu at mitra@w at half+.66mm,-.7*\pingu at x@mitra at height+.1mm) [sharp corners]  -- cycle;
+\pingu at block{\pingu at color@mitra} \pingu at x@mitra at path;
+% \pingu at block{\pingu at color@mitra} \pingupathmitraupper;
+\scope\clip\pingu at x@mitra at path;
+% TODO: switch to factors non relative to \pingu at x@mitra at overset
+\pingu at block{\pingu at color@mitra at lower@band} (0,-.2185cm)++(180:\pingu at mitra@w at half{} and .035cm) arc (180:360:\pingu at mitra@w at half{} and .035cm) -- ++(\pingu at x@mitra at lowerband@height*\pingu at x@mitra at overset,\pingu at x@mitra at lowerband@height*.3*\pingu at x@mitra at height) arc (0:-180:{\pingu at x@mitra at lowerband@height*\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm)  -- cycle;
+\pingu at block{\pingu at color@mitra at center@band} (\pingu at x@mitra at centerband@width*\pingu at x@mitra at overset+.1mm,-.2185cm) to[bend right=4] ++(0,\pingu at x@mitra at height) to[bend right] ++(-2*\pingu at x@mitra at centerband@width*\pingu at x@mitra at overset-.1mm,0) to[bend left=4] ++(0,-\pingu at x@mitra at height) -- cycle;
+\pingu at block{\pingu at color@mitra at upper@band} (0,.3*\pingu at x@mitra at height-.2185cm-0.5*\pingu at x@mitra at upperband@height*.3*\pingu at x@mitra at height)++(180:{\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm) arc (180:360:{\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm) -- ++(0,\pingu at x@mitra at upperband@height*.3*\pingu at x@mitra at height) arc (0:-180:{\pingu at x@mitra at overset+\pingu at mitra@w at half} and .035cm)  -- cycle;
+\endscope\endscope}
+% #endregion
+
+% #region horse-lib
+\colorlet{base at a}{lightgray!95!black}
+\colorlet{base at b}{lightgray!79!black}
+
+\colorlet{a}{lightgray!63!black}
+\colorlet{b}{lightgray!81!black}
+\def\basew{12}
+\def\pingu@@horse at scale{.1}
+
+\def\pingu@@horse@@main{(1.275,.55) -- ++(\if at pingu@@horse@@donkey at .05\else.1\fi,.2) -- ++(\if at pingu@@horse@@donkey at -.2\else-.25\fi,.25) to[bend right=4] ++(-.425,1.75) to[bend left=15] ++(.05,.2) to[bend right=30] ++(-.1,1.9) to[bend left=30] ++(0,1.65) coordinate(@back) to[bend left=30] ++(2,.625) to[bend right=18,looseness=.8] ++(3.25,-.1) [rounded corners=2*\pingu@@horse at scale] coordinate(@hair) to[out=34,in=185] ++(3,1.3) to[bend left=19] coordinate[pos=.5](@ear) ++(.85,-.4) to[bend left=5] ++(.24,-.45) to[bend right=20] ++(\if at pingu@@horse@@donkey at .25\else0\fi,\if at pingu@@horse@@donkey at -1.2\else-.7\fi) to[bend left=2] ++(.1,-.55) to[out=-85,in=-60,looseness=.75] ++(\if at pingu@@horse@@donkey at -.55\else-.475\fi,\if at pingu@@horse@@donkey at -.45\else-.35\fi) coordinate(@mouth) to[out=-135,in=-120] ++(\if at pingu@@horse@@donkey at -.4\else-.37\fi,\if at pingu@@horse@@donkey at .2\else.25\fi) -- ++(0,.1)
+to[out=125,in=-68] ++(-.58,.615) coordinate (@mouth-low)
+to[out=215,in=80] ++(-1.25,-2) to[bend left=24] ++(-.65,-1) to[out=258,in=86] ++(-.42,-1.25)  to[bend left=3] ++(-.2,-.6) to[bend right=10] ++(-.14,-1.15) to[bend left=2] coordinate[pos=.62] (@hooffront) ++(.355,-.565) to[bend left=15] ++(-.4,-.075) to[bend left=10] ++(-.28,.1) to[bend left=9] ++(.06,.3) to[bend right=9] ++(-.2,.4) to[out=80,in=-80] ++(.138,1.4) to[out=70,in=-103] ++(.2,1.3) to[bend right=10] ++(-.225,.44) coordinate (@frontleg) to[out=196,in=\if at pingu@@horse@@donkey at -65\else-25\fi] ++(-3.3,\if at pingu@@horse@@donkey at .4\else.575\fi) coordinate (@backleg) to[bend right=\if at pingu@@horse@@donkey at 16\else10\fi] ++(-.8,\if at pingu@@horse@@donkey at -1.375\else-1.5\fi) to[bend right=\if at pingu@@horse@@donkey at 9\else20\fi] ++(.1,-2.35) -- ++(\if at pingu@@horse@@donkey at .1\else.2\fi,-.25)
+coordinate (@hoofback) to[bend right=\if at pingu@@horse@@donkey at 9\else8\fi] ++(.15,-.26) to[bend left=10] ++(\if at pingu@@horse@@donkey at -.66\else-.55\fi,\if at pingu@@horse@@donkey at -.15\else-.05\fi) -- cycle}
+
+% #1 is the wing for the color and key assignments
+\def\pingu@@drawer at horse#1{
+% this ensures all coordinates are set in place
+% i know this i inefficient, but atm this is of no greater
+% concern -- i can not use layers as they would clash with that
+% of the penguin and who wants that... no one does!
+% penguins deserve freedom!
+\path \pingu@@horse@@main;
+
+% no we draw "behind" the horse:
+
+% Sockel
+\csname if at pingu@x at horse@#1 at base@\endcsname
+\pingu at block[draw=\csname pingu at color@horse#1 at base@shade at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at base@shade\endcsname} (4.35-\basew/2,.433) -- ++(0,-.5) arc(180:360:\basew/2 and 1) -- ++(0,.5) arc(360:180:\basew/2 and 1);
+\pingu at block[draw=\csname pingu at color@horse#1 at base@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at base\endcsname} (4.35,.433) ellipse[x radius=\basew/2,y radius=1];
+\fi
+% background front leg
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1\endcsname} [rounded corners=1*\pingu@@horse at scale](@frontleg) to[out=266,in=85] ++(.09,-.5) to[bend left=10] ++(-.15,-.8)
+to[bend right=7] ++(-.05,-.2) to[bend left=13] ++(-.2,-1.15) to[bend right=13] ++(.15,-.2) to[bend left=10] ++(-.07,-.3)  to[bend right=100] ++(.45,-.1) to[bend right=10] coordinate[pos=0.08](@hooffront@) ([yshift=5mm,xshift=3mm]@frontleg) -- cycle;
+\pingu at block[draw=\csname pingu at color@horse#1 at fr@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale,rounded corners=.12]{\csname pingu at color@horse#1 at fr@hoof\endcsname} (@hooffront@) to[bend left=2] ++(0,-.565*.665) to[bend left=59] ++(-.225,-.08) -- ++(-.02,.03) to[bend left=20] ++(-.315,.11) to[bend right=6] ++(.092,.2) to[bend right=25] cycle;
+% background back le0
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1\endcsname} [rounded corners=1*\pingu@@horse at scale](@backleg) to[out=-115,in=\if at pingu@@horse@@donkey at 120\else130\fi] ++(-.3,-3.5) -- ++(.2,-.3) coordinate(@hoofback@) to[bend left] ++(-.5,-.1)
+-- ++(\if at pingu@@horse@@donkey at -.2\else-.05\fi,.15) -- ++(0,.15) to[bend left=\if at pingu@@horse@@donkey at 45\else60\fi] cycle;
+\pingu at block[draw=\csname pingu at color@horse#1 at br@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale]{\csname pingu at color@horse#1 at br@hoof\endcsname} (@hoofback@) to[bend right=\if at pingu@@horse@@donkey at 9\else9\fi] ++(.206,-.265) to[bend left=10] ++(\if at pingu@@horse@@donkey at -.66\else-.55\fi,\if at pingu@@horse@@donkey at -.15\else-.05\fi) -- ++(-1.73mm,2.42mm) to[bend right=6] cycle;
+
+\if at pingu@@horse@@donkey@
+\pingu at block[draw=\csname pingu at color@horse#1 at tail@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at tail\endcsname} [rounded corners=1*\pingu@@horse at scale](@back) to[out=215,in=95] ++(-.1,-2) to[out=270,in=92] ++(0,-.75) [sharp corners] to[bend right=20] coordinate[pos=.5] (@) ++(.15,0) to[bend right=10] cycle;
+% TODO: hide support
+%\node[draw=\csname pingu at color@horse#1 at tail@draw\endcsname,fill=\csname pingu at color@horse#1 at tail\endcsname,cloud,cloud puffs=30,cloud ignores aspect,scale=1.33*\pingu@@horse at scale,yshift=16mm,rotate=-5,line width=\@pingu@@horse at lw*\pingu@@horse at scale] at (@) {\rotatebox{90}{\phantom{A}\hskip7.5em}};
+\scope[rotate around={180:(@)}] % adapted from the broom
+\pingu at block[rounded corners=.44pt,draw=\csname pingu at color@horse#1 at tail@draw\endcsname]{\csname pingu at color@horse#1 at tail\endcsname} (@)++(-1mm,-2mm) to[out=115,in=240] ++(3mm,12.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]@) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]@) -- cycle;
+\pingu at block[rounded corners=.44pt,draw=\csname pingu at color@horse#1 at tail@draw\endcsname]{\csname pingu at color@horse#1 at tail\endcsname} (@)++(-1mm,-2mm) to[out=115,in=240] coordinate[pos=.17] (@r) coordinate[pos=.19] (@r2)  ++(-.75mm,10.5mm) to[out=300,in=65] ([xshift=.95mm,yshift=-2mm]@) to[bend right=4] ([xshift=-.75mm,yshift=-2mm]@) -- cycle;
+\pingu at block[rounded corners=.44pt,draw=\csname pingu at color@horse#1 at tail@draw\endcsname]{\csname pingu at color@horse#1 at tail\endcsname}(@)++(-.5mm,-1.5mm) to[out=115,in=240] ++(.5mm,12mm) to[out=300,in=65] ([xshift=.5mm,yshift=-1.5mm]@) -- cycle;
+\endscope
+\else
+\pingu at block[draw=\csname pingu at color@horse#1 at tail@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at tail\endcsname} [rounded corners=1*\pingu@@horse at scale](@back) to[out=215,in=90] ++(-.4,-2.5) to[out=270,in=92] ++(0,-2.8) [sharp corners] to[bend right=20] ++(.6,0) to[bend right=10] cycle;
+\fi
+
+% back ear
+\if at pingu@@horse@@donkey@
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=.2mm,yshift=-1.5mm]@ear) to[bend left=20] ++(.373,1.465) coordinate(@) to[bend left=10] ++(-.15,-1.5);
+\else
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=.2mm,yshift=-1.5mm]@ear) to[bend left=20] ++(.373,.565) coordinate(@) to[bend left=10] ++(-.15,-.75);
+\fi
+% and here comes the wheeee (imagine-horse-sound)
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1\endcsname} [rounded corners=1*\pingu@@horse at scale] \pingu@@horse@@main;
+
+\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at draw\endcsname} ([yshift=-.1mm]@mouth-low) to[bend left=12] ++(.06,.65);
+\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at mouth\endcsname} ([yshift=-.115mm]@mouth) -- ++(-.035,.225);
+
+\edef\pingu at tmp{\if at pingu@@horse@@donkey at 4.5mm\else3.85mm\fi}%
+\edef\pingu at tmpb{\if at pingu@@horse@@donkey at 3.65mm\else2.45mm\fi}%
+\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale,line join=round]{\csname pingu at color@horse#1 at nose\endcsname} ([xshift=\pingu at tmp,yshift=\pingu at tmpb]@mouth) to[out=140,in=10] ++(-.17,-.074) to[bend right=49] cycle;
+
+\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at draw\endcsname} ([yshift=-.35mm]@frontleg) to[bend left=12] ++(.01,.325);
+\pingu at draw[line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at draw\endcsname} ([yshift=-.2mm]@backleg) to[bend right=13] ++(.25,.425);
+
+\if at pingu@@horse@@donkey@
+\pingu at block[draw=\csname pingu at color@horse#1 at mane@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at mane\endcsname} [rounded corners=1*\pingu@@horse at scale](@hair) to[out=34,in=185] ++(3,1.3) to[bend left=10] ++(.415,-.1) -- ++(-.1,-.25) to[out=186,in=35] ([yshift=-4mm,xshift=1.5mm]@hair) -- cycle;
+
+\pingu at block[draw=\csname pingu at color@horse#1 at thatch@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at thatch\endcsname} [rounded corners=1*\pingu@@horse at scale]([xshift=2.1mm,yshift=-1.05mm]@ear) -- ++(-.1,-.2) to[bend left=4] ++(.45,-.275) to[bend right=9] cycle;
+\else
+\pingu at block[draw=\csname pingu at color@horse#1 at mane@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at mane\endcsname} [rounded corners=1*\pingu@@horse at scale](@hair) to[out=34,in=185] ++(3,1.3) to[bend left=10] ++(.415,-.1) -- ++(-.1,-.4) to[out=194,in=30] ([yshift=-11.5mm,xshift=1.5mm]@hair) -- cycle;
+
+\pingu at block[draw=\csname pingu at color@horse#1 at thatch@draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at thatch\endcsname} [rounded corners=1*\pingu@@horse at scale]([xshift=2mm,yshift=-1mm]@ear) -- ++(-.1,-.3275) to[bend left=4] ++(.455,-.175) to[bend right=9] cycle;
+\fi
+
+% ear
+\if at pingu@@horse@@donkey@
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=-1mm,yshift=-1mm]@ear) to[bend left=15] ++(.393,1.685) coordinate(@) to[bend right=17] ++(-.15,-1.8);
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} (@) to[bend right=17] ++(-.15,-1.8) to[bend right=14] cycle;
+\else
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} ([xshift=-.75mm,yshift=-1mm]@ear) to[bend left=20] ++(.393,.585) coordinate(@) to[bend right=10] ++(-.15,-.7);
+\pingu at block[draw=\csname pingu at color@horse#1 at draw\endcsname,line width=\@pingu@@horse at lw*\pingu@@horse at scale]{\csname pingu at color@horse#1 at ears\endcsname} (@) to[bend right=7] ++(-.15,-.7) to[bend right=14] cycle;
+\fi
+
+% the eye; this is no error it has draw as fill
+\pingu at block{\csname pingu at color@horse#1 at eyes\endcsname} [rounded corners=.25*\pingu@@horse at scale] ([xshift=3mm,yshift=-7.5mm]@ear) to[bend right=20] ++(.125,-.2) to[bend right=50] ++(.1,.125) to[bend left=15] cycle;
+
+\pingu at block[draw=\csname pingu at color@horse#1 at fl@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale]{\csname pingu at color@horse#1 at fl@hoof\endcsname} (@hooffront) to[bend left=2] ++(.355*.49,-.545*.49) to[bend left=11] ++(-.45-.295,-.05+0.033)to[bend right=2] ++(.046,.29) to[bend right=10] cycle;
+\pingu at block[draw=\csname pingu at color@horse#1 at bl@hoof\endcsname!80!pingu at black,line width=2pt*\pingu@@horse at scale]{\csname pingu at color@horse#1 at bl@hoof\endcsname} (@hoofback) to[bend right=\if at pingu@@horse@@donkey at 9\else8\fi] ++(.15,-.26) to[bend left=10] ++(\if at pingu@@horse@@donkey at -.66\else-.55\fi,\if at pingu@@horse@@donkey at -.15\else-.05\fi) -- ++(-1.73mm,2.42mm) to[bend right=6] cycle; %to[bend left=2] ++(.355*.65,-.565*.65) to[bend left=15] ++(-.395,-.075) to[bend left=10] ++(-.293,.105) to[bend left=9] ++(.06,.3) to[bend left=5] cycle;
+}
+
+% universal switch for all three positions
+\newif\if at pingu@@horse@@donkey@
+
+\newif\if at pingu@x at horse@left at flip@
+\newif\if at pingu@x at horse@right at flip@
+\newif\if at pingu@x at horse@left at base@
+\newif\if at pingu@x at horse@right at base@
+\newif\if at pingu@x at horse@left at donkey@
+\newif\if at pingu@x at horse@right at donkey@
+\pingu at create@wing at extra{horse}{%
+    horse \@lr/.code                       = {\pingu at set@extra{horse\@lr}{true}\pingu at color{horse\@lr}{##1}},
+    horse \@lr/.default                    = pingu at bronze!80!pingu at black,
+    horse \@lr\space flip/.is if           = @pingu at x@horse@\@lr @flip@,
+    horse \@lr\space donkey/.is if         = @pingu at x@horse@\@lr @donkey@,
+    horse \@lr\space has base/.is if       = @pingu at x@horse@\@lr @base@,
+    horse \@lr\space draw/.code            = \pingu at color{horse\@lr @draw}{##1},%
+    horse \@lr\space line width/.code      = \@namedef{pingu at horse\@lr @x at line@width}{##1},%
+    horse \@lr\space mane/.code            = \pingu at color{horse\@lr @mane}{##1},%
+    horse \@lr\space mane draw/.code       = \pingu at color{horse\@lr @mane at draw}{##1},%
+    horse \@lr\space thatch/.code          = \pingu at color{horse\@lr @thatch}{##1},%
+    horse \@lr\space thatch draw/.code     = \pingu at color{horse\@lr @thatch at draw}{##1},%
+    horse \@lr\space tail/.code            = \pingu at color{horse\@lr @tail}{##1},%
+    horse \@lr\space tail draw/.code       = \pingu at color{horse\@lr @tail at draw}{##1},%
+    horse \@lr\space eyes/.code            = \pingu at color{horse\@lr @eyes}{##1},%
+    horse \@lr\space eye/.forward to       = /pingu/horse \@lr\space eyes,%
+    horse \@lr\space mouth/.code           = \pingu at color{horse\@lr @mouth}{##1},%
+    horse \@lr\space nose/.code            = \pingu at color{horse\@lr @nose}{##1},%
+    horse \@lr\space ears/.code            = \pingu at color{horse\@lr @ears}{##1},%
+    horse \@lr\space base/.code            = \pingu at color{horse\@lr @base}{##1},%
+    horse \@lr\space base draw/.code       = \pingu at color{horse\@lr @base at draw}{##1},%
+    horse \@lr\space base shade/.code      = \pingu at color{horse\@lr @base at shade}{##1},%
+    horse \@lr\space base shade draw/.code = \pingu at color{horse\@lr @base at shade@draw}{##1},%
+    horse \@lr\space front left hoof/.code = \pingu at color{horse\@lr @fl at hoof}{##1},%
+    horse \@lr\space front right hoof/.code= \pingu at color{horse\@lr @fr at hoof}{##1},%
+    horse \@lr\space back left hoof/.code  = \pingu at color{horse\@lr @bl at hoof}{##1},%
+    horse \@lr\space back right hoof/.code = \pingu at color{horse\@lr @br at hoof}{##1},%
+    horse \@lr\space front hoofs/.style    = {/pingu/horse \@lr\space front left hoof=##1,/pingu/horse \@lr\space front right hoof=##1},
+    horse \@lr\space back hoofs/.style     = {/pingu/horse \@lr\space back left hoof=##1,/pingu/horse \@lr\space back right hoof=##1},
+    horse \@lr\space hoofs/.style          = {/pingu/horse \@lr\space front hoofs=##1,/pingu/horse \@lr\space back hoofs=##1},
+    horse \@lr\space hoofs/.default        = gray!80!white,
+    % TODO: allow colors to be styles?
+    horse \@lr\space xshift/.code          = \@namedef{pingu at x@horse\@lr @xshift}{##1},
+    horse \@lr\space yshift/.code          = \@namedef{pingu at x@horse\@lr @yshift}{##1},
+    horse \@lr\space on base/.style        ={/pingu/horse \@lr\space yshift=4cm},
+}{horse \@lr\space draw=\csname pingu at color@horse\@lr\endcsname!80!pingu at black,horse \@lr\space mane=\csname pingu at color@horse\@lr\endcsname!86!pingu at white,horse \@lr\space mane draw=\csname pingu at color@horse\@lr @mane\endcsname!80!pingu at black,horse \@lr\space eyes=\csname pingu at color@horse\@lr @draw\endcsname,horse \@lr\space mouth=\csname pingu at color@horse\@lr @draw\endcsname,horse \@lr\space nose=\csname pingu at color@horse\@lr @draw\endcsname,horse \@lr\space ears=\csname pingu at color@horse\@lr\endcsname,horse \@lr\space thatch=\csname pingu at color@horse\@lr @mane\endcsname,horse \@lr\space thatch draw=\csname pingu at color@horse\@lr @thatch\endcsname!80!pingu at black,horse \@lr\space tail=\csname pingu at color@horse\@lr @mane\endcsname,horse \@lr\space tail draw=\csname pingu at color@horse\@lr @tail\endcsname!80!pingu at black,horse \@lr\space has base=false,horse \@lr\space base=lightgray!90!black,horse \@lr\space base draw=\csname pingu at color@horse\@lr @base\endcsname!91!pingu at black,horse \@lr\space base shade=lightgray!80!black,horse \@lr\space base shade draw=\csname pingu at color@horse\@lr @base at shade\endcsname!91!pingu at black,horse \@lr\space xshift=0pt,horse \@lr\space yshift=0pt,horse \@lr\space flip=\ifx\@lr\pingu at str@wing at left true\else false\fi,horse \@lr\space donkey=false,horse \@lr\space line width=1.75pt,horse \@lr\space hoofs=\@pingu at none}
+
+\def\pingu at draw@wi at horse#1{%
+    \pingu at setup@wing{horse}{#1}%
+\scope[scale=\pingu@@horse at scale,every path/.append style={line cap=round, line join=round},shift=(\pingu at name-wing-#1),rotate around={\@angle-5:(\pingu at name-wing-#1)}]
+\csname if at pingu@x at horse@#1 at flip@\endcsname
+\scope[xshift=-4cm-\csname pingu at x@horse#1 at xshift\endcsname,yshift=-42mm+\csname pingu at x@horse#1 at yshift\endcsname]
+\else
+\scope[xshift=4cm+\csname pingu at x@horse#1 at xshift\endcsname,yshift=-42mm+\csname pingu at x@horse#1 at yshift\endcsname,xscale=-1]
+\fi
+\csname if at pingu@x at horse@#1 at donkey@\endcsname
+    \@pingu@@horse@@donkey at true
+\fi
+    \edef\@pingu@@horse at lw{\csname pingu at horse#1 at x@line at width\endcsname}
+    \pingu@@drawer at horse{#1}
+    % TODO-SET: hoof
+\endscope\endscope
+}
+% todo: make statue extra
+% todo: make horse hat
+
+% to get on horse we create some kind of third wing item: 'on'
+% that will be used to initialize all of the colors and keys
+\newif\if at pingu@x at horse@on at flip@
+\newif\if at pingu@x at horse@on at base@
+\newif\if at pingu@x at horse@on at boundingbox@
+\newif\if at pingu@x at horse@on at donkey@
+% TODO: select keys
+% TODO: option so it does not affect the bounding box (default!)
+\pingu at create@extra{horseon}{%
+    on horse/.code                  = {\pingu at set@extra{horseon}{true}\pingu at color{horseon}{#1}},
+    on horse/.default               = pingu at bronze!80!pingu at black,
+    horse behind/.style             = {on horse=#1, on horse scale=.325, on horse yshift=6.15cm},
+    horse behind/.default           = pingu at bronze!80!pingu at black,
+    on horse flip/.is if            = @pingu at x@horse at on@flip@,
+    on horse donkey/.is if          = @pingu at x@horse at on@donkey@,
+    on horse has base/.is if        = @pingu at x@horse at on@base@,
+    on horse has bounding box/.is if = @pingu at x@horse at on@boundingbox@,
+    on horse draw/.code             = \pingu at color{horseon at draw}{#1},%
+    on horse line width/.code       = \@namedef{pingu at horseon@x at line@width}{#1},%
+    on horse mane/.code             = \pingu at color{horseon at mane}{#1},%
+    on horse mane draw/.code        = \pingu at color{horseon at mane@draw}{#1},%
+    on horse thatch/.code           = \pingu at color{horseon at thatch}{#1},%
+    on horse thatch draw/.code      = \pingu at color{horseon at thatch@draw}{#1},%
+    on horse tail/.code             = \pingu at color{horseon at tail}{#1},%
+    on horse tail draw/.code        = \pingu at color{horseon at tail@draw}{#1},%
+    on horse eyes/.code             = \pingu at color{horseon at eyes}{#1},%
+    on horse eye/.forward to        = /pingu/on horse eyes,%
+    on horse mouth/.code            = \pingu at color{horseon at mouth}{#1},%
+    on horse nose/.code             = \pingu at color{horseon at nose}{#1},%
+    on horse ears/.code             = \pingu at color{horseon at ears}{#1},%
+    on horse base/.code             = \pingu at color{horseon at base}{#1},%
+    on horse base draw/.code        = \pingu at color{horseon at base@draw}{#1},%
+    on horse base shade/.code       = \pingu at color{horseon at base@shade}{#1},%
+    on horse base shade draw/.code  = \pingu at color{horseon at base@shade at draw}{#1},%
+    on horse front left hoof/.code  = \pingu at color{horseon at fl@hoof}{#1},%
+    on horse front right hoof/.code = \pingu at color{horseon at fr@hoof}{#1},%
+    on horse back left hoof/.code   = \pingu at color{horseon at bl@hoof}{#1},%
+    on horse back right hoof/.code  = \pingu at color{horseon at br@hoof}{#1},%
+    on horse front hoofs/.style     = {/pingu/on horse front left hoof=#1,/pingu/on horse front right hoof=#1},
+    on horse back hoofs/.style      = {/pingu/on horse back left hoof=#1,/pingu/on horse back right hoof=#1},
+    on horse hoofs/.style           = {/pingu/on horse front hoofs=#1,/pingu/on horse back hoofs=#1},
+    on horse hoofs/.default         = gray!80!white,
+    on horse xshift/.code           = \@namedef{pingu at x@horseon at xshift}{#1},
+    on horse yshift/.code           = \@namedef{pingu at x@horseon at yshift}{#1},
+    on horse scale/.code            = \@namedef{pingu at x@horseon at scale}{#1}
+}{on horse draw=\pingu at color@horseon!80!pingu at black,on horse mane=\pingu at color@horseon!86!pingu at white,on horse mane draw=\pingu at color@horseon at mane!80!pingu at black,on horse eyes=\pingu at color@horseon at draw,on horse mouth=\pingu at color@horseon at draw,on horse nose=\pingu at color@horseon at draw,on horse ears=\pingu at color@horseon,on horse thatch=\pingu at color@horseon at mane,on horse thatch draw=\pingu at color@horseon at thatch!80!pingu at black,on horse tail=\pingu at color@horseon at mane,on horse tail draw=\pingu at color@horseon at tail!80!pingu at black,on horse has base=false,on horse base=lightgray!90!black,on horse base draw=\pingu at color@horseon at base!91!pingu at black,on horse base shade=lightgray!80!black,on horse base shade draw=\pingu at color@horseon at base@shade!91!pingu at black,on horse xshift=0pt,on horse yshift=0pt,on horse flip=false,on horse scale=0.75,on horse has bounding box=false,on horse donkey=false,on horse line width=1.75pt,on horse hoofs=\@pingu at none}
+
+
+\def\pingu at draw@eb at horseon{%
+\pingu at layer{background}[scale=\pingu at x@horseon at scale,every path/.append style={line cap=round, line join=round},shift=(\pingu at name-bottom-center)]
+\if at pingu@x at horse@on at donkey@
+    \@pingu@@horse@@donkey at true
+\fi
+\if at pingu@x at horse@on at flip@
+ \scope[xshift=-45mm-\pingu at x@horseon at xshift,yshift=-67mm+\pingu at x@horseon at yshift,xscale=\if at pingu@x at horse@on at donkey@ 1.1\else1\fi,yscale=\if at pingu@@horse@@donkey at .9\else1\fi]
+ \else
+ \scope[xshift=45mm+\pingu at x@horseon at xshift,yshift=-67mm+\pingu at x@horseon at yshift,xscale=\if at pingu@x at horse@on at donkey@-1.1\else-1\fi,yscale=\if at pingu@@horse@@donkey at .9\else1\fi]
+ \fi
+\edef\@pingu@@horse at lw{\pingu at horseon@x at line@width}
+\if at pingu@x at horse@on at boundingbox@\else\pgfinterruptboundingbox\fi
+    \pingu@@drawer at horse{on}
+\if at pingu@x at horse@on at boundingbox@\else\endpgfinterruptboundingbox\fi
+\endscope\endpingu at layer
+}
+% #endregion
+
+% #region magic-lib
+\pingu at create@wing at extra{handcast}{%
+  handcast \@lr/.forward to    = /pingu/hand cast \@lr,
+  hand cast \@lr/.code         = {\pingu at set@extra{handcast\@lr}{true}\@namedef{pingu at handcast@\@lr}{##1}},
+  hand cast \@lr/.default      = {X},
+  handcast \@lr\space color/.forward to    = /pingu/hand cast \@lr\space color,
+  hand cast \@lr\space color/.code = \pingu at color{handcast@\@lr @color}{##1},%
+}{hand cast \@lr\space color=pingu at purple}
+\def\pingu at draw@wi at handcast#1{%
+    \pingu at setup@wing{handcast}{#1}%
+    \path[rotate around={\@angle:(\pingu at name-wing-#1)}] (\pingu at name-wing-#1)++(0,5mm) node[\csname pingu at color@handcast@#1 at color\endcsname] {\@nameuse{pingu at handcast@#1}};
+}
+% #endregion
+
+% #region medieval-lib
+\newif\if at pingu@x at rook@draw at hatch@
+\pingu at create@extra{rook}{%
+    rook/.code          = \pingu at set@extra{rook}{true}\pingu at color{rook}{#1},
+    rook/.default       = pingu at silver,
+    rook back/.code     = \pingu at color{rook at back}{#1},
+    rook hatch/.is if   = @pingu at x@rook at draw@hatch@,
+    rook hatch/.default = true,
+    rook shade/.code    = \pingu at color{rook at shade}{#1},
+}{rook back=\pingu at color@rook!85!black,rook shade=\pingu at color@rook!92!black,rook hatch}
+\def\pingu at draw@ea at rook{%
+\if at pingu@do at back@\else\if at pingu@x at rook@draw at hatch@\else\pingu at layer{foreground}[]\fi\fi
+    \pingu at block[even odd rule]{\pingu at color@rook} ([xshift=-.2mm]\pingu at name-wings-side-right|-\pingu at name-foot-right) [rounded corners=\p@] to[bend right=9] coordinate[pos=.15] (@tmpe) ([xshift=.2mm]\pingu at name-wings-side-left|-\pingu at name-foot-left) [sharp corners] to[bend right=1.5*\pingu at bend] (\pingu at name-wings-side-left|-\pingu at name-head-top) coordinate (@tmp) to[bend left=3] coordinate[pos=.3] (@tmpc) coordinate[pos=.7] (@tmpd) (\pingu at name-wings-side-right|-\pingu at name-head-top) [rounded corners=\p@] coordinate (@tmpb) to[bend right=1.5*\pingu at bend] cycle \if at pingu@x at rook@draw at hatch@ (\pingu at name-head-center) ellipse[x radius=.8\pingu at w@half, y radius=.45\pingu at w@half]\fi;
+    \pingu at block{\pingu at color@rook} (@tmp) to[bend right=2] ++(0,2mm) [rounded corners=.25mm] to[bend left=1] ++(-2mm,-.1mm) -- ++(0,-2.25mm);
+    \pingu at block{\pingu at color@rook} (@tmpb) to[bend left=2] ++(0,2mm) [rounded corners=.25mm] to[bend right=1] ++(2mm,-.1mm) -- ++(0,-2.25mm);
+
+    \pingu at block{\pingu at color@rook} (@tmpc)++(-2mm,-.25mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend right=1] ++(4mm,.05mm) -- ++(0,-2.25mm);
+    \pingu at block{\pingu at color@rook} (@tmpd)++(2mm,-.25mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend left=1] ++(-4mm,-.05mm) -- ++(0,-2.25mm);
+
+    % custom shade boi (or gurl, wateva)
+    \scope
+        \clip ([xshift=-.2mm]\pingu at name-wings-side-right|-\pingu at name-foot-right) [rounded corners=\p@] to[bend right=5] ([xshift=.2mm]\pingu at name-wings-side-left|-\pingu at name-foot-left) [sharp corners] to[bend right=1.5*\pingu at bend] (\pingu at name-wings-side-left|-\pingu at name-head-top) -- ++(0,2mm) to[bend left=3] (\pingu at name-wings-side-right|-\pingu at name-head-top) to[bend right=1.5*\pingu at bend] cycle;
+        \if at pingu@x at rook@draw at hatch@
+        \clip[/pingu/@invclip] (\pingu at name-head-center) ellipse[x radius=.8\pingu at w@half, y radius=.45\pingu at w@half];
+        \fi
+        \pingu at block{\pingu at color@rook at shade} (@tmpe) to[bend right=5] ([xshift=.2mm]@tmpe-|@tmp) to[bend right=1.5*\pingu at bend] ([yshift=2mm]@tmp) to[bend left=10] cycle;
+    \endscope
+    \if at pingu@do at back@\else\if at pingu@x at rook@draw at hatch@\else\endpingu at layer\fi\fi
+
+    \pingu at layer{background}[]
+        \pingu at block{\pingu at color@rook at back} (@tmp) to[bend right=3] coordinate[pos=.3] (@tmpc) coordinate[pos=.7] (@tmpd) (@tmpb) to[bend right=30] cycle;
+        \pingu at block{\pingu at color@rook at back} (@tmpb) to[bend left=2] ++(0,2mm) [rounded corners=.25mm] to[bend left=1] ++(2mm,.1mm) -- ++(0,-2.25mm);
+        \pingu at block{\pingu at color@rook at back} (@tmp) to[bend right=2] ++(0,2mm) [rounded corners=.25mm] to[bend right=1] ++(-2mm,.1mm) -- ++(0,-2.25mm);
+
+        \pingu at block{\pingu at color@rook at back} (@tmpc)++(-2mm,-.49mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend right=1] ++(4mm,.05mm) -- ++(0,-2.25mm);
+        \pingu at block{\pingu at color@rook at back} (@tmpd)++(2mm,-.49mm) [rounded corners=.25mm] to[bend left=2] ++(0,2.25mm) to[bend left=1] ++(-4mm,-.05mm) -- ++(0,-2.25mm);
+    \endpingu at layer
+}
+
+\newif\if at pingu@x at crown@ddd@ % 3d
+\newif\if at pingu@x at crown@shade@ % 3d
+\pingu at create@extra{crown}{%
+  crown/.code             = \pingu at set@extra{crown}{true}\pingu at color{crown}{#1},
+  crown/.default          = pingu at yellow,
+  crown 3d/.is if         = @pingu at x@crown at ddd@, crown 3d/.default = true,
+  crown 2d/.style         = {crown=#1, crown 3d=false},
+  crown 2d/.default       = pingu at yellow,
+  crown back/.code        = \pingu at color{crown at back}{#1},
+  crown front bend/.code  = \def\pingu at x@crown at f@bend{#1},
+  crown back bend/.code   = \def\pingu at x@crown at b@bend{#1},
+  crown gem shade/.is if  = @pingu at x@crown at shade@, crown gem shade/.default = true,
+  crown gem colors/.code n args = 7{\pingu at color{crown at gem@a}{#1}\pingu at color{crown at gem@b}{#2}\pingu at color{crown at gem@c}{#3}\pingu at color{crown at gem@d}{#4}\pingu at color{crown at gem@e}{#5}\pingu at color{crown at gem@f}{#6}\pingu at color{crown at gem@g}{#7}},
+  crown gem ring/.code   = \pingu at color{crown at gem@ring}{#1},
+  crown position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@crown at angle{#1}\def\pingu at x@crown at xshift{#2}\def\pingu at x@crown at yshift{#3}\def\pingu at x@crown at scale{#4}},
+}{crown position={-9:(1mm,0mm)1},crown front bend=16,crown back bend=9,crown back=\pingu at color@crown!93!black,crown 3d,crown gem colors={pingu at purple}{pingu at blue}{pingu at green}{pingu at purple}{pingu at green}{pingu at blue}{pingu at purple},crown gem ring=\pingu at color@crown!85!white,crown gem shade}
+
+% color | bend1 | bend1
+\def\pingu at draw@ea at crown@s#1#2#3{
+\pingu at block{#1} [rounded corners=.2mm](-6.25mm,-.25cm) to[bend left=2] ++(0,3.125mm) to[bend #2=\pingu at x@crown at f@bend]
+    coordinate[pos=0] (r2)  coordinate[pos=.07] (r1)
+    coordinate[pos=.14-.07] (a1)  coordinate[pos=.14] (a2) coordinate[pos=.14+.07] (a3)
+    coordinate[pos=.30-.08] (b1)  coordinate[pos=.30] (b2) coordinate[pos=.30+.08] (b3)
+    coordinate[pos=.50- .1] (c1)  coordinate[pos=.50] (x2) coordinate[pos=.50+ .1] (c3)
+    coordinate[pos=.69-.08] (d1)  coordinate[pos=.69] (d2) coordinate[pos=.69+.08] (d3)
+    coordinate[pos=.85-.07] (e1)  coordinate[pos=.85] (e2) coordinate[pos=.85+.07] (e3)
+    coordinate[pos=1] (l2)  coordinate[pos=.93] (l1)
+    ++(1.375cm,0) to[bend left=2] ++(0,-3.125mm) to[bend #3=\pingu at x@crown at f@bend] (-6mm,-.25cm) -- cycle;
+\path (x2)++(0,.9mm) coordinate (c2);
+\@for\a:={a,b,c,d,e}\do{
+    \pingu at block{#1} ([yshift=-.1mm]\a1) to[bend right=\pingu at x@crown at f@bend] ([yshift=-.1mm]\a3) to[bend right=2] ([yshift=1.85mm]\a2) to[bend right=2] ([yshift=-.1mm]\a1) -- cycle;
+}
+\pingu at block{#1} (l2)++(0,-.2mm) to[bend right=2] ++(0,1.95mm) -- (l1) -- cycle;
+\pingu at block{#1} (r2)++(0,-.2mm) to[bend left=2] ++(0,1.95mm) -- (r1) -- cycle;
+}
+
+% color | at | shift | scale
+\def\pingu at draw@ea at crown@g#1#2#3#4{
+\scope[shift={(#22)},shift={(#3,-.33mm)}]
+    \pingu at block{\pingu at color@crown at gem@ring}  ellipse [x radius=.715mm*#4, y radius=.925mm*#4];
+    \pingu at block{#1}  ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
+    \protected at edef\@tmp{#1}\ifx\@tmp\@pingu at none\else
+    \if at pingu@x at crown@shade@
+    \shade[ball color=#1,fill opacity=.45,shading angle=-95]  ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
+    \else
+    \pingu at block[rotate around={7:(42:.3mm*#4 and .4mm*#4)}]{#1!45!pingu at white} (42:.3mm*#4 and .4mm*#4) ellipse[x radius=.17mm*#4, y radius=.24mm*#4];
+    \pingu at block[rotate around={7:(232:.275mm*#4 and .35mm*#4)}]{#1!45!pingu at white} (232:.275mm*#4 and .35mm*#4) ellipse[x radius=.06mm*#4, y radius=.085mm*#4];
+    \fi\fi
+\endscope
+}
+\def\pingu at draw@ea at crown{%
+\scope[rotate around={\pingu at x@crown at angle:(\pingu at name-head-top)},%
+       shift={(\pingu at name-head-top)},
+       shift={(\pingu at x@crown at xshift,\pingu at x@crown at yshift)},
+       scale=\pingu at x@crown at scale]
+% draw front
+\if at pingu@x at crown@ddd@
+    \pingu at draw@ea at crown@s{\pingu at color@crown}{right}{left}
+    \def\@tmpa{.05mm}\def\@tmpb{.025mm}
+\else
+    \pingu at draw@ea at crown@s{\pingu at color@crown}{left}{right}
+    \def\@tmpa{-.015mm}\def\@tmpb{-.035mm}
+\fi
+% draw the emeralds
+\pingu at draw@ea at crown@g{\pingu at color@crown at gem@b}{a}{-\@tmpa}1
+\pingu at draw@ea at crown@g{\pingu at color@crown at gem@c}{b}{-\@tmpb}1
+\pingu at draw@ea at crown@g{\pingu at color@crown at gem@d}{x}{\z@}{1.35}
+\pingu at draw@ea at crown@g{\pingu at color@crown at gem@e}{d}{\@tmpb}1
+\pingu at draw@ea at crown@g{\pingu at color@crown at gem@f}{e}{\@tmpa}1
+\pingu at layer{background}[]
+\pingu at block{\pingu at color@crown at gem@a} (r2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
+\pingu at block{\pingu at color@crown at gem@ring} (r2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
+\pingu at block{\pingu at color@crown at gem@g} (l2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
+\pingu at block{\pingu at color@crown at gem@ring} (l2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
+% draw back if 3d
+\if at pingu@x at crown@ddd@
+    \pingu at draw@ea at crown@s{\pingu at color@crown at back}{left}{right}
+\fi
+\endpingu at layer
+\endscope
+}
+
+\newif\if at pingu@x at princesscrown@ddd@
+\newif\if at pingu@x at princesscrown@shade@
+\newif\if at pingu@x at princesscrown@bobbles@
+\pingu at create@extra{princesscrown}{%
+  princess crown/.code    = \pingu at set@extra{princesscrown}{true}\pingu at color{princesscrown}{#1},
+  princess crown/.default = pingu at yellow,
+  princess crown 3d/.is if= @pingu at x@princesscrown at ddd@, princess crown 3d/.default = true,
+  princess crown 2d/.style   = {princess crown=#1, princess crown 3d=false},
+  princess crown 2d/.default = pingu at yellow,
+  princess crown back/.code  = \pingu at color{princesscrown at back}{#1},
+  princess crown front bend/.code  = \def\pingu at x@princesscrown at f@bend{#1},
+  princess crown back bend/.code   = \def\pingu at x@princesscrown at b@bend{#1},
+  princess crown gem shade/.is if  = @pingu at x@princesscrown at shade@,
+  princess crown bobbles/.is if = @pingu at x@princesscrown at bobbles@,
+  princess crown gem shade/.default = true,
+  princess crown gem colors/.code n args = 5{\pingu at color{princesscrown at gem@a}{#1}\pingu at color{princesscrown at gem@b}{#2}\pingu at color{princesscrown at gem@c}{#3}\pingu at color{princesscrown at gem@d}{#4}\pingu at color{princesscrown at gem@e}{#5}},
+  princess crown gem ring/.code   = \pingu at color{princesscrown at gem@ring}{#1},
+  princess crown position/.code args  = {#1:(#2,#3)#4}{\def\pingu at x@princesscrown at angle{#1}\def\pingu at x@princesscrown at xshift{#2}\def\pingu at x@princesscrown at yshift{#3}\def\pingu at x@princesscrown at scale{#4}},
+}{princess crown position={-9:(1mm,0mm)1},princess crown front bend=12,princess crown back bend=7,princess crown back=\pingu at color@princesscrown!93!black,princess crown 3d,princess crown gem colors={pingu at purple}{pingu at blue}{pingu at green}{pingu at blue}{pingu at purple},princess crown gem ring=\pingu at color@princesscrown!85!white,princess crown gem shade,princess crown bobbles}
+
+% color | bend1 | bend2
+\def\pingu at draw@ea at princesscrown@s#1#2#3{
+\pingu at block{#1} [rounded corners=.2mm](-3.25mm,-.15cm) to[bend left=2] ++(0,2.32mm) to[bend #2=\pingu at x@princesscrown at f@bend]
+    coordinate[pos=0] (r2)  coordinate[pos=.065] (r1)
+    coordinate[pos=.11] (a1) coordinate[pos=.2] (a2) coordinate[pos=.29] (a3)
+    coordinate[pos=.35] (b1) coordinate[pos=.50] (x2) coordinate[pos=.65] (b3)
+    coordinate[pos=.71] (c1) coordinate[pos=.8] (c2) coordinate[pos=.89] (c3)
+    coordinate[pos=1] (l2)  coordinate[pos=.93] (l1)
+    ++(8mm,0) to[bend left=2] ++(0,-2.32mm) to[bend #3=\pingu at x@princesscrown at f@bend] (-3mm,-.15cm) -- cycle;
+\path (x2)++(0,.9mm) coordinate (b2);
+\@for\a:={a,b,c}\do{
+    \pingu at block{#1} ([yshift=-.1mm]\a1) to[bend right=\pingu at x@princesscrown at f@bend] ([yshift=-.1mm]\a3) to[bend left=2] ([yshift=2.15mm]\a2) to[bend left=2] ([yshift=-.1mm]\a1) -- cycle;
+    \if at pingu@x at princesscrown@bobbles@\pingu at block{#1} ([yshift=2.15mm]\a2) circle [radius=.45\p@];\fi
+}
+\pingu at block{#1} (l2)++(0,-.2mm) to[bend left=2] ++(0,2.25mm) -- (l1) -- cycle;
+\pingu at block{#1} (r2)++(0,-.2mm) to[bend right=2] ++(0,2.25mm) -- (r1) -- cycle;
+\if at pingu@x at princesscrown@bobbles@\pingu at block{#1} (l2)++(0,2.05mm) circle [radius=.45\p@];
+\pingu at block{#1} (r2)++(0,2.05mm) circle [radius=.45\p@];\fi
+}
+
+% draw single gem; color | at | shift | scale
+\def\pingu at draw@ea at princesscrown@g#1#2#3#4{
+\scope[shift={(#22)},shift={(#3,-.33mm)}]
+    \pingu at block{\pingu at color@princesscrown at gem@ring} ellipse [x radius=.715mm*#4, y radius=.925mm*#4];
+    \pingu at block{#1} ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
+    \protected at edef\@tmp{#1}\ifx\@tmp\@pingu at none\else
+    \if at pingu@x at princesscrown@shade@
+    \shade[ball color=#1,fill opacity=.45,shading angle=-95] ellipse [x radius=.633mm*#4, y radius=.85mm*#4];
+    \else
+    \pingu at block[rotate around={7:(42:.3mm*#4 and .4mm*#4)}]{#1!45!pingu at white} (42:.3mm*#4 and .4mm*#4) ellipse[x radius=.17mm*#4, y radius=.24mm*#4];
+    \pingu at block[rotate around={7:(232:.275mm*#4 and .35mm*#4)}]{#1!45!pingu at white} (232:.275mm*#4 and .35mm*#4) ellipse[x radius=.06mm*#4, y radius=.085mm*#4];
+    \fi\fi
+\endscope}
+\def\pingu at draw@ea at princesscrown{%
+\scope[rotate around={\pingu at x@princesscrown at angle:(\pingu at name-head-top)},%
+       shift={(\pingu at name-head-top)},
+       shift={(\pingu at x@princesscrown at xshift,\pingu at x@princesscrown at yshift)},
+       scale=\pingu at x@princesscrown at scale]
+% draw front
+\if at pingu@x at princesscrown@ddd@
+    \pingu at draw@ea at princesscrown@s{\pingu at color@princesscrown}{right}{left}
+    \def\@tmpa{.05mm}
+\else
+    \pingu at draw@ea at princesscrown@s{\pingu at color@princesscrown}{left}{right}
+    \def\@tmpa{-.015mm}
+\fi
+% draw the emaralds
+\pingu at draw@ea at princesscrown@g{\pingu at color@princesscrown at gem@b}{a}{-\@tmpa}{.95}
+\pingu at draw@ea at princesscrown@g{\pingu at color@princesscrown at gem@c}{x}{\z@}{1.3}
+\pingu at draw@ea at princesscrown@g{\pingu at color@princesscrown at gem@d}{c}{\@tmpa}{.95}
+\pingu at layer{background}[]
+\pingu at block{\pingu at color@princesscrown at gem@a} (r2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
+\pingu at block{\pingu at color@princesscrown at gem@ring} (r2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
+\pingu at block{\pingu at color@princesscrown at gem@e} (l2)++(0,-.33mm) ellipse [x radius=.3mm, y radius=.8mm];
+\pingu at block{\pingu at color@princesscrown at gem@ring} (l2)++(0,-.33mm) ellipse [x radius=.1mm, y radius=.885mm];
+% draw back if 3d
+\if at pingu@x at princesscrown@ddd@
+    \pingu at draw@ea at princesscrown@s{\pingu at color@princesscrown at back}{left}{right}
+\fi
+\endpingu at layer
+\endscope
+}
+% #endregion
+
+% #region movement-lib
+\pingu at bodytype@add{tilt-right}{%
+\pingu at block[save path=\pingu at lowerpingu]{\pingu at color@body at main} (0,\pingu at outer@off)
+% left side
+to[bend right=\pingu at bend] coordinate[pos=.775] (\pingu at name-waist-right) ++(0,-\pingu at side@h at half-\pingu at outer@off)
+% feety stuff
+arc (180:270:\pingu at foot@outer at w{}-1mm and \pingu at foot@outer at h) coordinate[yshift=-.2mm] (\pingu at name-foot-right)
+arc (270:332:\pingu at foot@inner at w{}+1mm and 2.5*\pingu at foot@inner at h)
+coordinate (\pingu at name-bottom-center)
+arc (208:270:\pingu at foot@inner at w{} and 1.25*\pingu at foot@inner at h) coordinate[yshift=-.4mm] (\pingu at name-foot-left)
+arc (270:360:\pingu at foot@outer at w{} and 1.125*\pingu at foot@outer at h)%
+% right side
+to[bend right=\pingu at bend] coordinate[pos=.225] (\pingu at name-waist-left) ++(0,\pingu at side@h at half+\pingu at outer@off)
+% coordinate
+coordinate (\pingu at name-wings-side-left)
+-- (0,\pingu at outer@off) coordinate (\pingu at name-wings-side-right) coordinate[pos=.5] (\pingu at name-head-center) -- cycle;
+
+\pingu at block[save path=\pingu at upperpingu]{\pingu at color@body at head} (\pingu at name-head-center)
+++(0,\pingu at head@h at half) coordinate (\pingu at name-head-top)
+arc(90:450:\pingu at w@half{} and \pingu at head@h at half)
+coordinate[pos=\pinguanglehr] (\pingu at name-head-right)
+coordinate[pos=\pinguanglehl] (\pingu at name-head-left);
+
+\coordinate (\pingu at name-belly-back) at (\pingu at w@half,-1cm);
+\coordinate (\pingu at name-belly-center) at (\pingu at w@half,-.68\pingu at side@h at half);
+\pingu at block[save path=\pingu at whitepingu]{\pingu at color@body at front} (\pingu at name-belly-back)++(-\pingu at w@half+\pingu at one,\pingu at lower@off) to[bend right=.8\pingu at bend] ++(-.05mm,1.05cm-\pingu at side@h at half-\pingu at lower@off) arc (180:270:3.7mm and 2mm) arc (270:331:5mm and 3*.85mm) arc (207:270:5.3mm and 1.125*.85mm) arc (270:360:4.025mm and 1.25*2mm) to[bend right=.8\pingu at bend] ++(0,\pingu at side@h at half-1.05cm+\pingu at lower@off) arc (0:180:\pingu at w@half-.96mm and \pingu at w@half-\pingu at one) -- cycle;
+
+\coordinate (\pingu at name-eye-back-right) at ([xshift=-.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
+\coordinate (\pingu at name-eye-back-left) at ([xshift=.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
+
+\coordinate (\pingu at name-head-back-con-right) at ([xshift=-\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-right);
+\coordinate (\pingu at name-head-back-con-left) at ([xshift=\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-left);
+
+\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-right)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
+\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-left)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
+}
+
+
+\pingu at bodytype@add{tilt-left}{%
+\pingu at block[save path=\pingu at lowerpingu]{\pingu at color@body at main} (0,\pingu at outer@off)
+% left side
+to[bend right=\pingu at bend] coordinate[pos=.775] (\pingu at name-waist-right) ++(0,-\pingu at side@h at half-\pingu at outer@off)
+% feety stuff
+arc (180:270:\pingu at foot@outer at w{}-1mm and 1.25*\pingu at foot@outer at h) coordinate[yshift=-.2mm] (\pingu at name-foot-right)
+arc (270:332:\pingu at foot@inner at w{}+1mm and 1.125*\pingu at foot@inner at h)
+coordinate (\pingu at name-bottom-center)
+arc (208:270:\pingu at foot@inner at w{} and 2.5*\pingu at foot@inner at h) coordinate[yshift=-.4mm] (\pingu at name-foot-left)
+arc (270:360:\pingu at foot@outer at w{} and \pingu at foot@outer at h)%
+% right side
+to[bend right=\pingu at bend] coordinate[pos=.225] (\pingu at name-waist-left) ++(0,\pingu at side@h at half+\pingu at outer@off)
+% coordinate
+coordinate (\pingu at name-wings-side-left)
+-- (0,\pingu at outer@off) coordinate (\pingu at name-wings-side-right) coordinate[pos=.5] (\pingu at name-head-center) -- cycle;
+
+\pingu at block[save path=\pingu at upperpingu]{\pingu at color@body at head} (\pingu at name-head-center)
+++(0,\pingu at head@h at half) coordinate (\pingu at name-head-top)
+arc(90:450:\pingu at w@half{} and \pingu at head@h at half)
+coordinate[pos=\pinguanglehr] (\pingu at name-head-right)
+coordinate[pos=\pinguanglehl] (\pingu at name-head-left);
+
+\coordinate (\pingu at name-belly-back) at (\pingu at w@half,-1cm);
+\coordinate (\pingu at name-belly-center) at (\pingu at w@half,-.68\pingu at side@h at half);
+\pingu at block[save path=\pingu at whitepingu]{\pingu at color@body at front} (\pingu at name-belly-back)++(-\pingu at w@half+\pingu at one,\pingu at lower@off) to[bend right=.8\pingu at bend] ++(-.05mm,1.05cm-\pingu at side@h at half-\pingu at lower@off) arc (180:270:4.025mm and 1.25*2mm) arc (270:331:5.25mm and 1.125*.85mm) arc (207:270:5mm and 3*.85mm) arc (270:360:3.75mm and 2mm) to[bend right=.8\pingu at bend] ++(0,\pingu at side@h at half-1.05cm+\pingu at lower@off) arc (0:180:\pingu at w@half-.96mm and \pingu at w@half-\pingu at one) -- cycle;
+
+\coordinate (\pingu at name-eye-back-right) at ([xshift=-.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
+\coordinate (\pingu at name-eye-back-left) at ([xshift=.275cm,yshift=.25cm-\pingu at outer@off]\pingu at name-head-center);
+
+\coordinate (\pingu at name-head-back-con-right) at ([xshift=-\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-right);
+\coordinate (\pingu at name-head-back-con-left) at ([xshift=\pingu at headcon@x,yshift=-\pingu at headcon@y]\pingu at name-eye-back-left);
+
+\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-right)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
+\pingu at block{\pingu at color@body at front} (\pingu at name-eye-back-left)++(0,-.25mm) ellipse [x radius=.525cm,y radius=.625cm];
+}
+% #endregion
+
+% #region safe-lib
+\pingu at create@extra{mask}{%
+    mask/.code    	       = {\pingu at set@extra{mask}{true}\pingu at color{mask}{#1}},
+    mask/.default          = pingu at white!61!gray,%
+    mask band/.code        = \pingu at color{mask at band}{#1},%
+    mask line width/.code  = \def\pingu at x@mask at line@width{#1},%
+    mask band inner/.code  = \pingu at color{mask at band@inner}{#1},%
+    mask band outer/.code  = \pingu at color{mask at band@outer}{#1}%
+}{mask band=\pingu at color@body at main, mask band inner=\pingu at color@mask at band!60!\pingu at color@mask, mask band outer=\pingu at color@mask at band!82!\pingu at color@mask,mask line width=.565pt}
+
+\def\pingu at draw@ea at mask{%
+\pingu at block{\pingu at color@mask} [rounded corners=.8mm] ([xshift=-5mm,yshift=.75mm]\pingu at name-bill) coordinate (@ul) [rounded corners=.1mm]-- ++(3.5mm,.55mm) to[bend left=3] ++(3mm,0) -- ++(3.5mm,-.55mm) coordinate (@ur) -- ++(0,-4.25mm)[rounded corners=.8mm] coordinate (@lr)  -- ++(-3.5mm,-.45mm) to[bend left=3] ++(-3mm,0) [rounded corners=.1mm] -- ++(-3.5mm,.45mm) coordinate (@ll) -- cycle;
+\scope
+\clip[use path=\pingu at upperpingu];
+\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=-.1mm,xshift=.2mm]@ul) to[bend left=3] ([yshift=-1.1mm]\pingu at name-wings-side-right);
+\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=-.1mm,xshift=-.2mm]@ur) to[bend right=3]  ([yshift=-1.1mm]\pingu at name-wings-side-left);
+\endscope\scope
+\clip[use path=\pingu at lowerpingu];
+\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=.01mm,xshift=.2mm]@ll) to[bend left=3]  ([yshift=2mm]\pingu at name-wing-right-start);
+\pingu at draw[line width=\pingu at x@mask at line@width]{\pingu at color@mask at band} ([yshift=.01mm,xshift=-.2mm]@lr) to[bend right=3] ([yshift=2mm]\pingu at name-wing-left-start);
+\endscope
+% TODO: fix this sloppy overwrite
+\pingu at block{\pingu at color@mask} [rounded corners=.8mm] ([xshift=-5mm,yshift=.75mm]\pingu at name-bill) coordinate (@ul) [rounded corners=.1mm]-- ++(3.5mm,.55mm) to[bend left=3] ++(3mm,0) -- ++(3.5mm,-.55mm) coordinate (@ur) -- ++(0,-4.25mm)[rounded corners=.8mm] coordinate (@lr)  -- ++(-3.5mm,-.45mm) to[bend left=3] ++(-3mm,0) [rounded corners=.1mm] -- ++(-3.5mm,.45mm) coordinate (@ll) -- cycle;
+\pingu at draw[very thin]{\pingu at color@mask at band@inner} ([xshift=-5mm,yshift=.75mm-4.25mm/2]\pingu at name-bill) to[bend right=1] ++(10mm,0);
+\foreach \i/\b/\c in {1.6mm/very thin/\pingu at color@mask at band@inner,.8mm/very thin/\pingu at color@mask at band@inner,0mm//\pingu at color@mask at band@outer} {
+\pingu at draw[\b]{\c} [rounded corners=.8mm] ([xshift=-5mm,yshift=.75mm-\i]\pingu at name-bill) [rounded corners=.1mm]-- ++(3.5mm,.55mm) to[bend left=3] ++(3mm,0) -- ++(3.5mm,-.55mm) -- ++(0,-4.25mm+2*\i)[rounded corners=.8mm]  -- ++(-3.5mm,-.45mm) to[bend left=3] ++(-3mm,0) [rounded corners=.1mm] -- ++(-3.5mm,.45mm) -- cycle;
+}
+}
+% #endregion
+
+% #region science-fiction
+\newif\if at pingu@x at lightsaber@glow at left
+\newif\if at pingu@x at lightsaber@glow at right
+\newif\if at pingu@x at lightsaber@double at left
+\newif\if at pingu@x at lightsaber@double at right
+\def\pingu at x@saberglow at w@half{.9mm}
+\def\pingulightsaberfactor{.013}
+\pingu at create@wing at extra{lightsaber}{%
+  lightsaber \@lr/.code                = {\pingu at set@extra{lightsaber\@lr}{true}\pingu at color{lightsaber\@lr}{##1}},
+  lightsaber \@lr/.default             = pingu at blue,
+  lightsaber \@lr\space handle/.code   = \pingu at color{lightsaber\@lr @handle}{##1},%
+  lightsaber \@lr\space deco/.code     = \pingu at color{lightsaber\@lr @deco}{##1},%
+  lightsaber \@lr\space ribbs/.code    = \pingu at color{lightsaber\@lr @ribbs}{##1},%
+  lightsaber \@lr\space button/.code   = \pingu at color{lightsaber\@lr @button}{##1},%
+  lightsaber \@lr\space button b/.code   = \pingu at color{lightsaber\@lr @button at b}{##1},%
+  lightsaber \@lr\space color b/.code   = \pingu at color{lightsaber\@lr @color at b}{##1},%
+  lightsaber \@lr\space length/.code   = {\@namedef{pingu at x@lightsaber at length@\@lr}{##1}},%
+  lightsaber \@lr\space length b/.code   = {\@namedef{pingu at x@lightsaber at length@b@\@lr}{##1}},%
+  lightsaber \@lr\space yshift/.code   = {\@namedef{pingu at x@lightsaber at yshift@\@lr}{##1}},%
+  lightsaber \@lr\space glow/.is if    = @pingu at x@lightsaber at glow@\@lr,%
+  lightsaber \@lr\space double/.is if  = @pingu at x@lightsaber at double@\@lr,%
+  lightsaber \@lr\space glow core/.code   = \pingu at color{lightsaber\@lr @glow at core}{##1},%
+  lightsaber \@lr\space solid/.style = {/pingu/lightsaber \@lr\space glow=false},
+  lightsaber \@lr\space disabled/.style = {/pingu/lightsaber \@lr\space solid,/pingu/lightsaber \@lr=\@pingu at none},
+  lightsaber \@lr\space outer glow factor/.code  = {\@namedef{pingu at x@lightsaber at ogf@\@lr}{##1}}%
+}{lightsaber \@lr\space handle=pingu at silver, lightsaber \@lr\space deco=pingu at silver!12!pingu at black, lightsaber \@lr\space button=pingu at red!85!pingu at black,lightsaber \@lr\space button b=pingu at red!85!pingu at black, lightsaber \@lr\space ribbs=pingu at silver!50!pingu at black,lightsaber \@lr\space length=2cm,lightsaber \@lr\space glow=\ifpengu at setup@glows@ true\else false\fi,lightsaber \@lr\space glow core=white,lightsaber \@lr\space outer glow factor=\pingulightsaberfactor,lightsaber \@lr\space yshift=0pt,lightsaber \@lr\space length b=\csname pingu at x@lightsaber at length@\@lr\endcsname,lightsaber \@lr\space color b=\noexpand\@col}
+
+% #region lightsaber base
+\def\pingu at draw@wi at lightsaber@base#1{%
+% deco-elements
+    % base
+    \pingu at block{\csname pingu at color@lightsaber#1 at deco\endcsname}(\pingu at name-wing-#1)++(-.4mm,2.65mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) -- ++(0,-5mm) -- ++(.8mm,0) |- cycle;
+    \if at pingu@wing at item@side at left@
+    % ribbs; single path saves memory :D
+    \pingu at block{\csname pingu at color@lightsaber#1 at ribbs\endcsname}(\pingu at name-wing-#1)++(-.40mm,2.225mm+\csname pingu at x@lightsaber at yshift@#1\endcsname)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -| ++(.8mm,-.165mm) -- ++(-.8mm,0)
+    arc(90:270:.075mm) -- ++(.8mm,0) |- cycle;
+    % button
+    \pingu at block{\csname pingu at color@lightsaber#1 at button@b\endcsname}(\pingu at name-wing-#1)++(.49mm,-1.75mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
+    \pingu at block{\csname pingu at color@lightsaber#1 at button\endcsname}(\pingu at name-wing-#1)++(.49mm,1.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
+    % cover
+    \pingu at block{\csname pingu at color@lightsaber#1 at handle\endcsname}(\pingu at name-wing-#1)++(-.5mm,2.65mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) arc(180:90:.15mm) -- ++(.7mm,0) arc(90:0:.16mm) -- ++(0,-5mm) arc(360:270:.15mm) -- ++(-.7mm,0) arc (270:180:.15mm) -- ++(0,.25mm) arc(270:360:.33mm and .2mm) -- ++(0,4.1mm) arc(0:90:.33mm and .2mm) -- ++(0,.25mm) -- cycle;
+    \else
+    % ribbs; single path saves memory :D (the second)
+    \pingu at block{\csname pingu at color@lightsaber#1 at ribbs\endcsname}(\pingu at name-wing-#1)++(.40mm,2.225mm+\csname pingu at x@lightsaber at yshift@#1\endcsname)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -| ++(-.8mm,-.165mm) -- ++(.8mm,0)
+        arc(90:-90:.075mm) -- ++(-.8mm,0) |- cycle;
+    % buttons
+    \pingu at block{\csname pingu at color@lightsaber#1 at button@b\endcsname}(\pingu at name-wing-#1)++(-.49mm,-1.75mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
+    \pingu at block{\csname pingu at color@lightsaber#1 at button\endcsname}(\pingu at name-wing-#1)++(-.49mm,1.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) ellipse [x radius=.1mm, y radius=.3mm];
+    % cover
+    \pingu at block{\csname pingu at color@lightsaber#1 at handle\endcsname}(\pingu at name-wing-#1)++(.5mm,2.65mm+\csname pingu at x@lightsaber at yshift@#1\endcsname) arc(0:90:.15mm) -- ++(-.7mm,0) arc(90:180:.16mm) -- ++(0,-5mm) arc(180:270:.15mm) -- ++(.7mm,0) arc (270:360:.15mm) -- ++(0,.25mm) arc(270:180:.33mm and .2mm) -- ++(0,4.1mm) arc(180:90:.33mm and .2mm) -- ++(0,.25mm) -- cycle;
+    \fi
+}
+% #endregion
+% #1 wing, #2 yshift, #3 angle, #4 length, #5 color
+\def\pingu at draw@wi at lightsaber@pre#1#2#3#4#5{
+    \scope[rotate around={#3:(\pingu at name-wing-#1)}]
+    \csname if at pingu@x at lightsaber@glow@#1\endcsname
+    \@for\i:={0,2,4,6,7,8,9,10,11,12,13,14,15,16,17}\do{
+        \pingu at block[fill opacity=\ifnum\i>14 .225\else.1\fi*\i/20]{#5} (\pingu at name-wing-#1)++(-\pingu at x@saberglow at w@half+\i*\i mm/440,#2) -- ++(.05mm,#4) arc(180:0:\pingu at x@saberglow at w@half-.05mm-\i*\i mm/440 and \ifnum\i>14 .85mm\else\pingu at one\fi-\i mm/30) -- ++(.05mm,-#4) arc (0:-180:\pingu at x@saberglow at w@half-\i*\i mm/440 and .35mm);
+    }
+    \else % draw solid
+        \pingu at block{#5} (\pingu at name-wing-#1)++(-.425mm,#2-.1mm) -- ++(.05mm,#4) arc(180:0:.375mm and .375mm) -- ++(.05mm,-#4) arc (0:-180:.425mm and .05mm);
+    \fi
+    \endscope
+}
+
+% #1 wing, #2 yshift, #3 angle, #4 length, #5 color
+\def\pingu at draw@wi at lightsaber@post#1#2#3#4#5{
+    \scope[rotate around={#3:(\pingu at name-wing-#1)}]
+    \csname if at pingu@x at lightsaber@glow@#1\endcsname
+    \ifdim\csname pingu at x@lightsaber at ogf@#1\endcsname pt>\z@
+    \pingu at layer{foreground}[]
+    \pgfinterruptboundingbox
+    \path[clip,/pingu/@invclip] (\pingu at name-wing-#1)++(-.275mm,#2-.1mm) -- ++(.1mm,#4) arc(180:0:.175mm and .25mm) -- ++(.1mm,-#4) arc (0:-180:.275mm and .065mm);
+    \@for\i:={1,1.1,1.2,1.3,1.4}\do{
+        \pingu at block[fill opacity=\csname pingu at x@lightsaber at ogf@#1\endcsname/\i]{#5} (\pingu at name-wing-#1) ++(.05mm,#2+#4/2) circle[radius=\i*#4];
+    }
+    \endpgfinterruptboundingbox
+    \endpingu at layer
+    \fi
+        % fadings had a rotation angle bug
+        \@for\i:={1,2}\do{
+            \pingu at block[fill opacity=.125*\i/10]{#5} (\pingu at name-wing-#1)++(-\pingu at x@saberglow at w@half+\i*\i mm/440,#2) -- ++(.05mm,#4) arc(180:0:\pingu at x@saberglow at w@half-.05mm-\i*\i mm/440 and \pingu at one-\i mm/30) -- ++(.05mm,-#4) arc (0:-180:\pingu at x@saberglow at w@half-\i*\i mm/440 and .35mm);
+        }
+        \pingu at block{\csname pingu at color@lightsaber#1 at glow@core\endcsname} (\pingu at name-wing-#1)++(-.275mm,#2-.1mm) -- ++(.1mm,#4) arc(180:0:.175mm and .25mm) -- ++(.1mm,-#4) arc (0:-180:.275mm and .065mm);
+    \fi
+    \endscope
+}
+
+% #1 wing
+\def\pingu at draw@wi at lightsaber#1{%
+    \pingu at setup@wing{lightsaber}{#1}%
+    \scope[rotate around={\@angle:([yshift=+\csname pingu at x@lightsaber at yshift@#1\endcsname]\pingu at name-wing-#1)},xscale=1.2]
+    \pingu at draw@wi at lightsaber@pre{#1}{2.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname}{0}{\csname pingu at x@lightsaber at length@#1\endcsname}{\@col}
+    \csname if at pingu@x at lightsaber@double@#1\endcsname
+    \pingu at draw@wi at lightsaber@pre{#1}{2.65mm-\csname pingu at x@lightsaber at yshift@#1\endcsname}{180}{\csname pingu at x@lightsaber at length@b@#1\endcsname}{\csname pingu at color@lightsaber#1 at color@b\endcsname}
+    \fi
+    \pingu at draw@wi at lightsaber@base{#1}
+    % afterglow (whuile watching everglow :D)
+    \pingu at draw@wi at lightsaber@post{#1}{2.9mm+\csname pingu at x@lightsaber at yshift@#1\endcsname}{0}{\csname pingu at x@lightsaber at length@#1\endcsname}{\@col}
+    \csname if at pingu@x at lightsaber@double@#1\endcsname
+    \pingu at draw@wi at lightsaber@post{#1}{2.65mm-\csname pingu at x@lightsaber at yshift@#1\endcsname}{180}{\csname pingu at x@lightsaber at length@b@#1\endcsname}{\csname pingu at color@lightsaber#1 at color@b\endcsname}
+    \fi
+    \endscope
+}
+
+
+\newif\if at pingu@x at lightstaff@glow at left
+\newif\if at pingu@x at lightstaff@glow at right
+\pingu at create@wing at extra{lightstaff}{%
+    light-staff \@lr/.code         = {\pingu at set@extra{lightstaff\@lr}{true}\pingu at color{lightstaff\@lr}{##1}},
+    light-staff \@lr/.default      = pingu at green,
+    light-staff \@lr\space length/.code =\expandafter\def\csname pingu at lightstaff@\@lr @length\endcsname{##1},
+    light-staff \@lr\space glow length/.code =\expandafter\def\csname pingu at lightstaff@\@lr @glow at length\endcsname{##1},
+    light-staff \@lr\space head/.code = \pingu at color{lightstaff\@lr}{##1},%
+    light-staff \@lr\space staff/.code = \pingu at color{lightstaff@\@lr @staff}{##1},%
+    light-staff \@lr\space core/.code = \pingu at color{lightstaff@\@lr @head at core}{##1},%
+    light-staff \@lr\space core width/.code = \expandafter\def\csname pingu at lightstaff@\@lr @core at width\endcsname{##1},%
+    light-staff \@lr\space glow/.is if    = @pingu at x@lightstaff at glow@\@lr,%
+    light-staff \@lr\space outer glow factor/.code  = {\@namedef{pingu at x@lightstaff at ogf@\@lr}{##1}},%
+}{light-staff \@lr\space length=28mm,light-staff \@lr\space staff=pingu at bronze,light-staff \@lr\space head=pingu at green,light-staff \@lr\space core=pingu at white,light-staff \@lr\space glow=\ifpengu at setup@glows@ true\else false\fi,light-staff \@lr\space outer glow factor=.022,light-staff \@lr\space glow length=13mm,light-staff \@lr\space core width=.44mm}
+\def\pingu at draw@wi at lightstaff#1{%
+    \pingu at setup@wing{lightstaff}{#1}%
+\scope[rotate around={\@angle:(\pingu at name-wing-#1)}]
+    \pingu at block{\csname pingu at color@lightstaff@#1 at staff\endcsname}(\pingu at name-wing-#1)++(\@sidesign*-.2mm,-11mm) -- ++(0,\csname pingu at lightstaff@#1 at length\endcsname) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-lightstaff-#1-top) -- ++(0,-\csname pingu at lightstaff@#1 at length\endcsname) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+    \pingu at draw@wi at lightstaff@pre{#1}{[yshift=-1.1mm]\pingu at name-lightstaff-#1-top}{\@col}
+    \pingu at block{\csname pingu at color@lightstaff@#1 at head@core\endcsname} ([yshift=-1.1mm]\pingu at name-lightstaff-#1-top) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(0,2mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,-1mm) -- ++(0,-2mm) -- cycle;
+    \pingu at draw@wi at lightstaff@post{#1}{[yshift=-1.1mm]\pingu at name-lightstaff-#1-top}{\@col}
+\endscope
+}
+
+% #1 wing, #2 start, #3 color
+\def\pingu at draw@wi at lightstaff@pre#1#2#3{
+\csname if at pingu@x at lightstaff@glow@#1\endcsname
+\@for\i:={0,1,2,3,6,7,9,10,13}\do{
+    \pingu at block[fill opacity=\ifnum\i>14 .225\else.1\fi*\i/20]{#3} (#2)++(0,-\i mm/15) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname-\i mm/30,1mm+\i mm/30) -- ++(0,2mm+\i mm/15) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,1mm+\i mm/30) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,-1mm-\i mm/30) -- ++(0,-2mm-\i mm/15) -- cycle;
+    %  -- ++(.05mm,#4) arc(180:0:\pingu at x@saberglow at w@half-.05mm-\i*\i mm/440 and \ifnum\i>14 .85mm\else\pingu at one\fi-\i mm/30) -- ++(.05mm,-#4) arc (0:-180:\pingu at x@saberglow at w@half-\i*\i mm/440 and .35mm);
+}
+\else % draw solid
+    \pingu at block{#3} (#2) -- ++(-.55mm,1mm) -- ++(0,2mm) -- ++(.55mm,1mm) -- ++(.55mm,-1mm) -- ++(0,-2mm) -- cycle;
+\fi
+}
+
+\def\pingu at draw@wi at lightstaff@post#1#2#3{
+\csname if at pingu@x at lightstaff@glow@#1\endcsname
+\ifdim\csname pingu at x@lightstaff at ogf@#1\endcsname pt>\z@
+\pingu at layer{foreground}[]
+\pgfinterruptboundingbox
+\@for\i:={1,1.1,1.2,1.3,1.4}\do{
+    \pingu at block[fill opacity=\csname pingu at x@lightstaff at ogf@#1\endcsname/\i]{#3} (#2)++(0,2mm) circle[radius=\i*\csname pingu at lightstaff@#1 at glow@length\endcsname];
+}
+\endpgfinterruptboundingbox
+\pingu at block[opacity=.65]{\csname pingu at color@lightstaff@#1 at head@core\endcsname} (#2)++(0,.5mm) -- ++(-.20mm,.75mm) -- ++(0,1.5mm) -- ++(.20mm,.75mm) -- ++(.20mm,-.75mm) -- ++(0,-1.5mm) -- cycle;
+\endpingu at layer
+\fi
+% fadings hat a rotation angle bug
+\@for\i:={1,2}\do{
+    \pingu at block[fill opacity=.125*\i/10]{#3} (#2)++(0,-\i mm/15+2mm) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname-\i mm/30,1mm+\i mm/30) -- ++(0,2mm+\i mm/15) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,1mm+\i mm/30) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname+\i mm/30,-1mm-\i mm/30) -- ++(0,-2mm-\i mm/15) -- cycle;
+}
+\pingu at block{\csname pingu at color@lightstaff@#1 at head@core\endcsname} (#2) -- ++(-\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(0,2mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,1mm) -- ++(\csname pingu at lightstaff@#1 at core@width\endcsname,-1mm) -- ++(0,-2mm) -- cycle;
+\fi
+}
+% #endregion
+
+% #region shirts-lib
+\newif\if at pingu@shirt at above
+\pingu at create@extra{shirt}{%
+    shirt/.code              = \pingu at set@extra{shirt}{true}\pingu at color{shirt}{#1},
+    shirt/.default           = pingu at bronze,
+    shirt above/.is if       = @pingu at shirt@above,
+    shirt raise/.code        = \def\pingu at shirt@raise{#1},
+    shirt padding/.code      = \def\pingu at shirt@padding{#1},
+    shirt button top/.code   = \pingu at color{shirt at button@top}{#1},
+    shirt button middle/.code      = \pingu at color{shirt at button@middle}{#1},
+    shirt button bottom/.code      = \pingu at color{shirt at button@bottom}{#1},
+    shirt buttons/.style           = {/pingu/shirt button top={#1}, /pingu/shirt button middle={#1}, /pingu/shirt button bottom={#1}},
+    shirt button top shade/.code  = \pingu at color{shirt at button@top at shade}{#1},
+    shirt button middle shade/.code = \pingu at color{shirt at button@middle at shade}{#1},
+    shirt button bottom shade/.code = \pingu at color{shirt at button@bottom at shade}{#1},
+    shirt buttons shade/.style     = {/pingu/shirt button top shade={#1}, /pingu/shirt button middle shade={#1}, /pingu/shirt button bottom shade={#1}},
+    shirt without buttons/.forward to=/pingu/shirt no buttons,
+    shirt no buttons/.style        = {/pingu/shirt buttons=\@pingu at none, /pingu/shirt buttons shade=\@pingu at none},
+}{shirt buttons=pingu at black,shirt padding=0mm,shirt button top shade=\pingu at color@shirt at button@top!70!\pingu at color@shirt!70!white,shirt button middle shade=\pingu at color@shirt at button@middle!70!\pingu at color@shirt!70!white,shirt button bottom shade=\pingu at color@shirt at button@bottom!70!\pingu at color@shirt!70!white,shirt raise=2.25mm,shirt above=false}
+\def\pingu at draw@cloth at shirt@behind{}
+
+\def\pingu at draw@cloth at shirt@middle{\if at pingu@shirt at above\else\pingu at draw@cloth at shirt@main\fi}
+
+\def\pingu at draw@cloth at shirt@main{%
+\coordinate (\pingu at name-shirt-low) at ([yshift=\pingu at shirt@raise]\pingu at name-belly-center);
+\pingu at block{\pingu at color@shirt} [rounded corners=.131mm] ([xshift=.2mm,yshift=.18mm]\pingu at name-head-back-con-right) -- (\pingu at name-shirt-low) -- ([xshift=-.1mm,yshift=.24mm]\pingu at name-head-back-con-left) to[bend left=12] (\pingu at name-waist-left) to[bend left=3] ([xshift=\pingu at shirt@padding]\pingu at name-bottom-center-|\pingu at name-waist-left) to[bend left=10] ([yshift=-1.1\pingu at one]\pingu at name-bottom-center) to[bend left=10] ([xshift=-\pingu at shirt@padding]\pingu at name-bottom-center-|\pingu at name-waist-right) to[bend left=3] (\pingu at name-waist-right) to[bend left=12] (\pingu at name-head-back-con-right) -- cycle;
+
+\coordinate (\pingu at name-shirt-bt) at ([yshift=-\pingu at one]\pingu at name-shirt-low);
+\pingu at block{\pingu at color@shirt at button@top}(\pingu at name-shirt-bt) circle[radius=.4mm];
+\pingu at block{\pingu at color@shirt at button@middle}(\pingu at name-shirt-bt)++(0,-1.35mm)circle[radius=.4mm];
+\pingu at block{\pingu at color@shirt at button@bottom}(\pingu at name-shirt-bt)++(0,2*-1.35mm)circle[radius=.4mm];
+\pingu at block[even odd rule]{\pingu at color@shirt at button@top at shade}(\pingu at name-shirt-bt) circle[radius=.4mm] circle[radius=.465mm];
+\pingu at block[even odd rule]{\pingu at color@shirt at button@middle at shade}(\pingu at name-shirt-bt)++(0,-1.35mm)circle[radius=.4mm] circle[radius=.465mm];
+\pingu at block[even odd rule]{\pingu at color@shirt at button@bottom at shade}(\pingu at name-shirt-bt)++(0,2*-1.35mm)circle[radius=.4mm] circle[radius=.465mm];
+\@for\i:={0,90,180,270}\do{
+    \pingu at block{\pingu at color@shirt at button@top at shade} (\pingu at name-shirt-bt)++(\i:.
+    25mm) circle[radius=.065mm];
+    \pingu at block{\pingu at color@shirt at button@middle at shade} (\pingu at name-shirt-bt)++(0,-1.35mm)++(\i:.25mm) circle[radius=.065mm];
+    \pingu at block{\pingu at color@shirt at button@bottom at shade} (\pingu at name-shirt-bt)++(0,2*-1.35mm)++(\i:.25mm) circle[radius=.065mm];
+}}
+
+% TODO: if flags to draw parts
+\def\pingu at draw@cloth at shirt{\if at pingu@shirt at above\pingu at draw@cloth at shirt@main\fi}
+
+\pingu at create@extra{secondshirt}{%
+    second shirt/.code        = \pingu at set@extra{secondshirt}{true}\pingu at color{secondshirt}{#1},
+    second shirt raise/.code  = \def\pingu at secondshirt@raise{#1},
+    second shirt neck/.code   = \pingu at color{secondshirt at neck}{#1},
+    second shirt/.default     = purple,
+}{second shirt raise=3.35mm,second shirt neck=\pingu at color@secondshirt!32!pingu at white}
+\def\pingu at draw@cloth at secondshirt@behind{}
+
+\def\pingu at draw@cloth at secondshirt@middle{%
+\coordinate (\pingu at name-secondshirt-low) at ([yshift=\pingu at secondshirt@raise]\pingu at name-belly-center);
+\pingu at block{\pingu at color@secondshirt} [rounded corners=.131mm] ([xshift=.2mm,yshift=.05mm]\pingu at name-head-back-con-right) -- (\pingu at name-secondshirt-low) -- ([xshift=-.16mm,yshift=.09mm]\pingu at name-head-back-con-left) to[bend left=12] (\pingu at name-waist-left) to[bend left=3] ([xshift=-.22mm]\pingu at name-bottom-center-|\pingu at name-waist-left) to[bend left=10] ([yshift=-1\pingu at one]\pingu at name-bottom-center) to[bend left=10] ([xshift=.22mm]\pingu at name-bottom-center-|\pingu at name-waist-right) to[bend left=3] (\pingu at name-waist-right) to[bend left=12] (\pingu at name-head-back-con-right) -- cycle;
+\pingu at draw{\pingu at color@secondshirt at neck} [rounded corners=.131mm] ([xshift=.025mm,yshift=-.09mm]\pingu at name-head-back-con-right) -- ([xshift=.2mm,yshift=.05mm]\pingu at name-head-back-con-right) -- (\pingu at name-secondshirt-low) -- ([xshift=-.19mm,yshift=.09mm]\pingu at name-head-back-con-left) -- ([xshift=-.02mm,yshift=-.02mm]\pingu at name-head-back-con-left);
+}
+
+% TODO: if flags to draw parts
+\def\pingu at draw@cloth at secondshirt{%
+}
+% #endregion
+
+% #region signs-lib
+\pingu at create@wing at extra{signpost}{%
+  signpost \@lr/.forward to    = /pingu/sign post \@lr,
+  sign post \@lr/.code         = {\pingu at set@extra{signpost\@lr}{true}\@namedef{pingu at signpost@\@lr}{##1}},
+  sign post \@lr/.default      = {},
+  signpost \@lr\space color/.forward to    = /pingu/sign post \@lr\space color,
+  sign post \@lr\space color/.code = \pingu at color{signpost\@lr}{##1},
+  signpost \@lr\space fontcolor/.forward to    = /pingu/sign post \@lr\space font color,
+  sign post \@lr\space font color/.code = \pingu at color{signpost\@lr @font}{##1},
+}{sign post \@lr\space color=brown!70!black, sign post \@lr\space font color=white!90!brown}
+\def\pingu at draw@wi at signpost#1{%
+    \pingu at setup@wing{signpost}{#1}%
+    \def\@rot{\if at pingu@wing at item@side at left@-5\else+5\fi}%
+\scope[rotate around={\@angle+\@rot:(\pingu at name-wing-#1)}]
+    \pingu at block[thick]{\@col}(\pingu at name-wing-#1)++(\@sidesign*-.225mm,-2mm) -- ++(0,15mm) arc(180:0:\@sidesign*.45mm and .375mm) -- ++(0,-15mm) arc(360:180:\@sidesign*.45mm and .375mm) -- cycle;
+    \path (\pingu at name-wing-#1)++(\@sidesign*.225mm,13mm) node[fill=\@col,rounded corners=2\p@,minimum width=14mm,minimum height=8mm,align=center,rotate=\@angle+\@rot,text=\csname pingu at color@signpost#1 at font\endcsname] {\csname pingu at signpost@#1\endcsname};
+\endscope
+}
+
+\pingu at create@extra{banner}{%
+    banner/.code             = \pingu at set@extra{banner}{true}\@namedef{pingu at banner}{#1},
+    banner/.default          = Bannertext,
+    banner band/.code        = \pingu at color{banner at band}{#1},
+    banner text color/.code  = \pingu at color{banner at text@color}{#1},
+    banner sticks color/.style={/pingu/banner stick left color=#1,/pingu/banner stick right color=#1},
+    banner stick left color/.code  = \pingu at color{banner at stick@left}{#1},
+    banner stick right color/.code = \pingu at color{banner at stick@right}{#1},
+    banner sticks length/.style={/pingu/banner stick left length=#1,/pingu/banner stick right length=#1},
+    banner stick left length/.code  = \@namedef{pingu at banner@stick at left@l}{#1},
+    banner stick right length/.code  = \@namedef{pingu at banner@stick at right@l}{#1},
+    banner raise/.code  = \@namedef{pingu at banner@raise}{#1},
+    banner height/.code  = \@namedef{pingu at banner@height}{#1},
+    banner font/.code  = \@namedef{pingu at banner@font}{#1},
+    banner bent/.code  = \@namedef{pingu at banner@bent}{#1}
+}{banner band=pingu at white!91!pingu at black,banner text color=pingu at black,banner sticks  color=pingu at bronze,banner stick left length=20mm, banner stick right length=20mm,banner bent=30,banner raise=-1mm,banner height=4mm,banner font=\bfseries}
+
+\usetikzlibrary{decorations.text}
+\def\pingu at draw@ea at banner{%
+\pingu at setup@wing{staff}{left}% we do not need the staff color, but we will use it
+\scope[rotate around={\@angle:(\pingu at name-wing-left)}]
+    \pingu at block{\pingu at color@banner at stick@left}(\pingu at name-wing-left)++(\@sidesign*-.2mm,-7mm) -- ++(0,\pingu at banner@stick at left@l) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-s-left) -- ++(0,-\pingu at banner@stick at left@l) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+    \path (\pingu at name-s-left)++(.5mm,\pingu at banner@height) coordinate (\pingu at name-s-left-top) ++(0,-2*\pingu at banner@height) coordinate (\pingu at name-s-left-bot);
+\endscope
+\pingu at setup@wing{staff}{right}% we do not need the staff color, but we will use it
+\scope[rotate around={\@angle:(\pingu at name-wing-right)}]
+    \pingu at block{\pingu at color@banner at stick@right}(\pingu at name-wing-right)++(\@sidesign*-.2mm,-7mm) -- ++(0,\pingu at banner@stick at right@l) arc(180:0:\@sidesign*.4mm and .3mm) coordinate[pos=.5] (\pingu at name-s-right) -- ++(0,-\pingu at banner@stick at right@l) arc(360:180:\@sidesign*.4mm and .3mm) -- cycle;
+    \path (\pingu at name-s-right)++(-.5mm,\pingu at banner@height) coordinate (\pingu at name-s-right-top) ++(0,-2*\pingu at banner@height) coordinate (\pingu at name-s-right-bot);
+\endscope
+\pingu at block[rounded corners=.3mm]{\pingu at color@banner at band} (\pingu at name-s-left-top) to[bend right=\pingu at banner@bent] (\pingu at name-s-right-top) -- (\pingu at name-s-right-bot) to[bend left=\pingu at banner@bent] (\pingu at name-s-left-bot) -- cycle;
+\path[postaction={decorate},decoration={text color=\pingu at color@banner at text@color,text along path, raise=\pingu at banner@raise, text={|\pingu at banner@font|\pingu at banner},text align={center,left indent=1mm,right indent=1mm}}] (\pingu at name-s-right) to[bend left=\pingu at banner@bent+3] (\pingu at name-s-left);
+}
+% #endregion
+
+% #region sport-lib
+\pingu at create@extra{medal}{%
+    medal/.code    	  = {\pingu at set@extra{medal}{true}\pingu at color{medal}{#1}},
+    medal/.default    = pingu at yellow,%
+    gold medal/.style = {medal, medal text=#1}, gold medal/.default={1},
+    silver medal/.style = {medal=pingu at silver, medal text=#1}, silver medal/.default={2},
+    bronze medal/.style = {medal=pingu at bronze, medal text=#1}, bronze medal/.default={3},
+    medal band/.code  = \pingu at color{medal at band}{#1},%
+    medal shade/.code  = \pingu at color{medal at shade}{#1},%
+    medal shade width/.code  = \def\pingu at medal@shade at w{#1},%
+    medal text/.code  = \def\pingu at x@medal at text{#1},%
+    medal text style/.style = {\pingu at color@medal!65!pingu at white},
+}{medal band=pingu at red,medal text={},medal shade={\pingu at color@medal!65!pingu at white},medal shade width=.75\p@}
+
+\def\pingu at draw@eb at medal{%
+\coordinate (\pingu at name-medal-center) at ([yshift=1.25mm]\pingu at name-belly-center);
+\pingu at block{\pingu at color@medal at band} [rounded corners=.15mm] (\pingu at name-head-back-con-right) -- (\pingu at name-medal-center) -- (\pingu at name-head-back-con-left) to[bend left=11] ++(-1.35mm,-.5mm) -- ([yshift=.7mm]\pingu at name-medal-center) -- ([xshift=1.35mm,yshift=-.5mm]\pingu at name-head-back-con-right) to[bend left=11] (\pingu at name-head-back-con-right) -- cycle;
+\pingu at block{\pingu at color@medal} (\pingu at name-medal-center) circle [radius=2.35mm];
+\pingu at draw[line width=\pingu at medal@shade at w]{\pingu at color@medal at shade} (\pingu at name-medal-center) circle [radius=2.35mm];
+\node[/pingu/@text,/pingu/medal text style] at (\pingu at name-medal-center) {\pingu at x@medal at text};
+}
+\newif\if at pingu@x at headband@knot@
+\newif\if at pingu@x at headband@bands@
+\pingu at create@extra{headband}{%
+    headband/.forward to  = /pingu/head band,
+    head-band/.forward to = /pingu/head band,
+    head band/.code       = \pingu at set@extra{headband}{true}\pingu at color{headband}{#1},
+    head band/.default    = pingu at red,
+    headband bend/.forward to  = /pingu/head band bend,
+    head-band bend/.forward to = /pingu/head band bend,
+    head band bend/.code  = \def\pingu at x@headband at bend{#1},
+    headband angle/.forward to  = /pingu/head band angle,
+    head-band angle/.forward to = /pingu/head band angle,
+    head band angle/.code  = \def\pingu at x@headband at angle{#1},
+    headband upper angle/.forward to  = /pingu/head band upper angle,
+    head-band upper angle/.forward to = /pingu/head band upper angle,
+    head band upper angle/.code  = \def\pingu at x@headband at upangle{#1},
+    % knot
+    headband knot/.forward to  = /pingu/head band knot,
+    head-band knot/.forward to = /pingu/head band knot,
+    head band knot/.is if = @pingu at x@headband at knot@,
+    headband knot color/.forward to  = /pingu/head band knot color,
+    head-band knot color/.forward to = /pingu/head band knot color,
+    head band knot color/.code  = \pingu at color{headband at knot}{#1},
+    headband knot a color/.forward to  = /pingu/head band knot a color,
+    head-band knot a color/.forward to = /pingu/head band knot a color,
+    head band knot a color/.code  = \pingu at color{headband at knot@a}{#1},
+    headband knot b color/.forward to  = /pingu/head band knot b color,
+    head-band knot b color/.forward to = /pingu/head band knot b color,
+    head band knot b color/.code  = \pingu at color{headband at knot@b}{#1},
+    headband bands/.forward to  = /pingu/head band bands,
+    head-band bands/.forward to = /pingu/head band bands,
+    head band bands/.is if = @pingu at x@headband at bands@,
+    headband bands a color/.forward to  = /pingu/head band bands a color,
+    head-band bands a color/.forward to = /pingu/head band bands a color,
+    head band bands a color/.code  = \pingu at color{headband at bands@a}{#1},
+    headband bands b color/.forward to  = /pingu/head band bands b color,
+    head-band bands b color/.forward to = /pingu/head band bands b color,
+    head band bands b color/.code  = \pingu at color{headband at bands@b}{#1},
+}{head band bend=9, head band angle=17,head band upper angle=50, head band knot color=\pingu at color@headband!78!black,head band knot a color=\pingu at color@headband at knot!90!black,head band knot b color=\pingu at color@headband at knot@a,head band bands,head band bands a color=\pingu at color@headband!78!black,head band bands b color=\pingu at color@headband}
+
+\def\pingu at draw@ea at headband@wh{1.25mm}
+\def\pingu at draw@ea at headband{%
+    \path (\pingu at name-head-center)+(\pingu at x@headband at upangle-\pingu at x@headband at angle:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-head-band-lower);
+    \path (\pingu at name-head-center)+(\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) coordinate (\pingu at name-head-band-upper);
+    \if at pingu@x at headband@bands@
+    \pingu at block{\pingu at color@headband at bands@a} (\pingu at name-head-band-lower) to[out=-50,in=75] ++(2.75mm,-4mm) to[bend right] ++(.6mm,0) to[out=80,in=-5] (\pingu at name-head-band-upper) -- cycle;
+    \pingu at block{\pingu at color@headband at bands@b} (\pingu at name-head-band-lower) to[out=-80,in=80] ++(1.75mm,-3.35mm) to[bend right] ++(.45mm,0) to[out=80,in=-8] (\pingu at name-head-band-upper) -- cycle;
+    \fi
+    \pingu at block{\pingu at color@headband} (\pingu at name-head-center)+(\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) to[bend left=\pingu at x@headband at bend] coordinate[pos=.5] (\pingu at name-headband-center-a) +(180-\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) arc(180-\pingu at x@headband at upangle:180-\pingu at x@headband at upangle+\pingu at x@headband at angle:\pingu at w@half{} and \pingu at head@h at half) to[bend right=\pingu at x@headband at bend] coordinate[pos=.5] (\pingu at name-headband-center-b) (\pingu at name-head-band-lower) arc(\pingu at x@headband at upangle-\pingu at x@headband at angle:\pingu at x@headband at upangle:\pingu at w@half{} and \pingu at head@h at half) -- cycle;
+    \path (\pingu at name-headband-center-a) -- (\pingu at name-headband-center-b) coordinate[pos=.5] (\pingu at name-headband-center);
+    \if at pingu@x at headband@knot@
+    \pingu at block[rounded corners=.25mm]{\pingu at color@headband at knot@a} (\pingu at name-headband-center-a)++(-.15mm,-.6mm) to[out=155,in=-5] ++(-3mm,\pingu at one) to[bend right=15] ([xshift=-3mm,yshift=-.2mm]\pingu at name-headband-center-b) to[in=-155,out=5] ++(.285cm,.8mm) -- cycle;
+    \pingu at block[rounded corners=.25mm]{\pingu at color@headband at knot@b} (\pingu at name-headband-center-a)++(.15mm,-.6mm) to[out=25,in=-175] ++(3mm,\pingu at one) to[bend left=15] ([xshift=3mm,yshift=-.2mm]\pingu at name-headband-center-b) to[in=-25,out=175] ++(-.285cm,.8mm) -- cycle;
+    \pingu at block[rounded corners=.25mm]{\pingu at color@headband at knot} (\pingu at name-headband-center-a)++(-\pingu at draw@ea at headband@wh,.12mm) to[bend right=9] ++(2*\pingu at draw@ea at headband@wh,0) -- ([xshift=\pingu at draw@ea at headband@wh,yshift=-.12mm]\pingu at name-headband-center-b) to[bend right=9] ++(-2*\pingu at draw@ea at headband@wh, 0) -- cycle;
+    \fi
+}
+% #endregion
+
+% #region technology-lib
+\pingu at create@extra{vrheadset}{%
+    vr-headset/.code             = \pingu at set@extra{vrheadset}{true}\pingu at color{vrheadset}{#1},
+    vr-headset/.default          = pingu at black!92!gray,
+    vr-headset band/.code        = \pingu at color{vrheadset at band}{#1},
+    vr-headset band top/.code    = \pingu at color{vrheadset at band@top}{#1},
+    vr-headset text/.code        = \def\pingu at x@vrheadset at text{#1},
+    vr-headset text color/.code  = \pingu at color{vrheadset at text@color}{#1},
+    vr-headset hair/.style       = {/pingu/hair 2=!hide,/pingu/hair 3=!hide,/pingu/hair 4=!hide}
+}{vr-headset band=\pingu at color@vrheadset!92!gray,vr-headset text={\textit{\textsf{VR\thinspace\texttrademark}}},vr-headset text color=pingu at white,vr-headset band top=\pingu at color@vrheadset!96!gray}
+
+\def\pingu at draw@ea at vrheadset{%
+\pingu at layer{middle}[]
+    \pingu at block{\pingu at color@vrheadset} [rounded corners=1.25mm]([yshift=3.45mm]\pingu at name-waist-right|-\pingu at name-eye-right) to[bend left=2] coordinate[pos=.5] (@) ([yshift=3.45mm]\pingu at name-waist-left|-\pingu at name-eye-left) to[bend left=3] coordinate (\pingu at name-vrh-ol) ++(0,-6.25mm) to[bend left=13] ([yshift=-1mm]\pingu at name-head-center) to[bend left=13] ([yshift=3.45mm-6.25mm]\pingu at name-waist-right|-\pingu at name-eye-right) -- cycle;
+    \path (\pingu at name-vrh-ol)++(-2.25mm,2mm) node[text=\pingu at color@vrheadset at text@color,scale=.25] {\pingu at x@vrheadset at text};
+\endpingu at layer
+\if at pingu@do at back@\else
+    % top band
+    \pingu at block[rounded corners=1pt]{\pingu at color@vrheadset at band@top} (@)++(-1.05mm+.15mm,0) to[bend right=2] ([xshift=-.85mm+.3mm,yshift=.3mm]\pingu at name-head-top) to[bend left=2] ++(1.6mm,0) to[bend left=2] ([xshift=1.25mm+.15mm]@);
+\fi
+    % we draw a band for the background
+\pingu at layer{background}[]
+\pingu at block[line cap=round]{\pingu at color@vrheadset at band} ([yshift=1mm]\pingu at name-waist-right|-\pingu at name-eye-right) to[bend left=3] coordinate[pos=.5] (@b) ([yshift=1mm]\pingu at name-waist-left|-\pingu at name-eye-left) arc(90:-90:.25mm and 1mm) to[bend right=3] ([yshift=-1mm]\pingu at name-waist-right|-\pingu at name-eye-right) arc (270:90:.25mm and 1mm);
+\pingu at block[rounded corners=1pt]{\pingu at color@vrheadset at band@top} (@b)++(-1.25mm+.2mm,-1.25mm) to[bend right=2] ([xshift=-.85mm+.3mm,yshift=.3mm]\pingu at name-head-top) to[bend right=2] ++(1.6mm,0) to[bend right=2] ([xshift=1.15mm+.2mm,yshift=-1.25mm]@b) -- cycle;
+\endpingu at layer
+}
+\pingu at create@extra{headphone}{%
+    headphones/.forward to      = /pingu/headphone,
+    headphone/.code             = \pingu at set@extra{headphone}{true}\pingu at color{headphone}{#1},
+    headphone/.default          = pingu at blue!80!pingu at black,
+    headphone left/.code        = \pingu at color{headphone at left}{#1},
+    headphone right/.code       = \pingu at color{headphone at right}{#1},
+    headphones outer/.forward to  = /pingu/headphone outer,
+    headphone outer/.style        = {/pingu/headphone left outer=#1,/pingu/headphone right outer=#1}, headphone outer/.default      = pingu at black,
+    headphone left outer/.code    = \pingu at color{headphone at left@p}{#1}, headphone left outer/.default  =pingu at black,
+    headphone right outer/.code   = \pingu at color{headphone at right@p}{#1}, headphone right outer/.default=pingu at black,
+    headphones inner/.forward to  = /pingu/headphone inner,
+    headphone inner/.style        = {/pingu/headphone left inner=#1,/pingu/headphone right inner=#1}, headphone inner/.default      = pingu at black,
+    headphone left inner/.code    = \pingu at color{headphone at left@i}{#1}, headphone left inner/.default = pingu at black,
+    headphone right inner/.code   = \pingu at color{headphone at right@i}{#1}, headphone right inner/.default=pingu at black,
+}{headphone left=\pingu at color@headphone!65!pingu at black,headphone right=\pingu at color@headphone at left,headphone left outer=\@pingu at none,
+,headphone right outer=\@pingu at none,,headphone left inner=\@pingu at none,
+,headphone right inner=\@pingu at none}
+
+\def\pingu at draw@ea at headphone{%
+\if at pingu@do at back@ \pingu at layer{background}[] \fi
+    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at right@p} ([xshift=-\pingu at one,yshift=3.22mm]\pingu at name-wings-side-right|-\pingu at name-eye-right) arc (93:273:.565mm and 2.11mm) -- ++(.8mm,.075mm) -- ++(0,4.075mm);
+    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at right@i} ([xshift=\pingu at one-.366mm,yshift=3.22mm]\pingu at name-wings-side-right|-\pingu at name-eye-right) arc (87:-93:.565mm and 2.14mm) -- ++(-.8mm,.075mm) -- ++(0,4.075mm) -- cycle;
+    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at right} ([xshift=-\pingu at one+.2mm,yshift=3.22mm]\pingu at name-wings-side-right|-\pingu at name-eye-right) arc (92:272:.565mm and 2.1mm) -- ++(.8mm,-.05mm) arc (270:450:.425mm and 2.1mm) -- cycle;
+    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at left@p} ([xshift=\pingu at one,yshift=3.22mm]\pingu at name-wings-side-left|-\pingu at name-eye-left) arc (87:-93:.565mm and 2.11mm) -- ++(-.8mm,.075mm) -- ++(0,4.075mm) -- cycle;
+    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at left@i} ([xshift=-\pingu at one+.366mm,yshift=3.22mm]\pingu at name-wings-side-left|-\pingu at name-eye-left) arc (93:273:.565mm and 2.14mm) -- ++(.8mm,.075mm) -- ++(0,4.075mm);
+    \pingu at block[rounded corners=.1mm]{\pingu at color@headphone at left} ([xshift=\pingu at one-.2mm,yshift=3.22mm]\pingu at name-wings-side-left|-\pingu at name-eye-left) arc (88:-92:.565mm and 2.1mm) -- ++(-.8mm,-.05mm) arc (270:90:.425mm and 2.1mm) -- cycle;
+    \pingu at block{\pingu at color@headphone} ([xshift=-\pingu at one,yshift=1.75\pingu at one]\pingu at name-wings-side-right|-\pingu at name-eye-right)
+    arc(180:0:{\pingu at one+\pingu at w@half} and {\pingu at head@h at half-1.3\pingu at one}) arc(0:-180:.6mm and .33mm)
+    arc(0:180:{\pingu at one+\pingu at w@half-2*.6mm} and {\pingu at head@h at half+.33\pingu at one-2*.6mm-1.8\pingu at one})
+    arc(0:-180:.6mm and .33mm) -- cycle;
+\if at pingu@do at back@ \endpingu at layer \fi
+}
+
+\pingu at create@wing at extra{vrcontroller}{%
+vr-controller \@lr/.code         = {\pingu at set@extra{vrcontroller\@lr}{true}\pingu at color{vrcontroller\@lr}{##1}},
+vr-controller \@lr/.default      = pingu at green,
+vr-controller \@lr\space handle/.code = \pingu at color{vrcontroller\@lr @handle}{##1},%
+vr-controller \@lr\space second/.code = \pingu at color{vrcontroller\@lr @second}{##1},%
+vr-controller \@lr\space second shade/.code = \pingu at color{vrcontroller\@lr @second at shade}{##1}%
+}{vr-controller \@lr\space handle={\csname pingu at color@vrcontroller\@lr\endcsname!76!pingu at black},vr-controller \@lr\space second={\csname pingu at color@vrcontroller\@lr\endcsname!56!pingu at black},vr-controller \@lr\space second shade={\csname pingu at color@vrcontroller\@lr\endcsname!96!pingu at black}}
+
+% #1 wing
+\def\pingu at draw@wi at vrcontroller#1{%
+    \pingu at setup@wing{vrcontroller}{#1}%
+    \pingu at block[rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@vrcontroller#1 at handle\endcsname}(\pingu at name-wing-#1)++(.5mm,5mm) to[bend right=1] ++(-.25mm,-5.5mm) arc (0:-180:.325mm and .1mm) to[bend right=1] ++(-.7mm,5.5mm) -- cycle coordinate[pos=.5] (@);
+    \def\@y{2.06mm} \def\@@y{.78mm}
+    \pingu at block[rotate around={\@angle:(\pingu at name-wing-#1)},even odd rule]{\csname pingu at color@vrcontroller#1 at second\endcsname}([yshift=.1mm]@) arc (90:450:{\@y} and 1mm) coordinate[pos=.25] (@r) coordinate[pos=.75] (@l) ([yshift=-.6mm]@) arc (90:0:{\@@y} and .25mm) arc (0:-180:{\@@y} and .35mm) arc (180:90:{\@@y} and .25mm);
+    % \pingu at draw[rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@vrcontroller#1 at second@shade\endcsname} ([yshift=-.9mm]@)++(180:{\@@y} and .3mm) arc (180:0:{\@@y} and .3mm);
+    \def\@toruslow{(@l) to[bend left=7] ++(-.2mm,-.875mm) to[bend left=15] coordinate[pos=.95] (@c) ++(-2*\@y+.4mm,0) [sharp corners] to[bend left=7] ++(-.2mm,.875mm) to[bend right=30] cycle}
+    \pingu at block[rounded corners=.1mm,rotate around={\@angle:(\pingu at name-wing-#1)}]{\csname pingu at color@vrcontroller#1 at second\endcsname} \@toruslow;
+    \scope[rounded corners=.1mm,rotate around={\@angle:(\pingu at name-wing-#1)}]
+    \clip \@toruslow;
+    \pingu at block[opacity=.1]{black} (@l) to[bend left=14] (@c) -- ++(0,-2mm) -| cycle;
+    \endscope
+}
+
+
+\pingu at create@wing at extra{laptop}{%
+  laptop \@lr/.code                  = {\pingu at set@extra{laptop\@lr}{true}\pingu at color{laptop\@lr}{##1}},
+  laptop \@lr/.default               = gray!80!pingu at white,
+  laptop \@lr\space bracket/.code    = \pingu at color{laptop\@lr @bracket}{##1},
+  laptop \@lr\space lower/.code      = \pingu at color{laptop\@lr @lower}{##1},
+  laptop \@lr\space key/.code        = \pingu at color{laptop\@lr @key}{##1},
+  laptop \@lr\space display/.code    = \pingu at color{laptop\@lr @display}{##1},
+  laptop \@lr\space content/.code    = \@namedef{pingu at x@laptop\@lr @content}{##1}, % tikz content
+  laptop \@lr\space mid/.code        = \@namedef{pingu at x@laptop\@lr @mid}{##1}, % tikz content
+}{laptop \@lr\space bracket=pingu at black!80!\csname pingu at color@laptop\@lr\endcsname,laptop \@lr\space lower=\csname pingu at color@laptop\@lr\endcsname!95!pingu at black,laptop \@lr\space key=\csname pingu at color@laptop\@lr\endcsname!92!pingu at white,laptop \@lr\space display=\csname pingu at color@laptop\@lr\endcsname!32!pingu at white,laptop \@lr\space content={},laptop \@lr\space mid={}}
+
+% #1 wing
+\def\pingu at draw@wi at laptop#1{%
+    \pingu at setup@wing{laptop}{#1}%
+    \scope[rotate around={\@angle+5:(\pingu at name-wing-#1)},shift={(\pingu at name-wing-#1)}]
+        \pingu at block[rounded corners=1pt]{\csname pingu at color@laptop#1 at lower\endcsname}(-6.9mm,0) -- ++(-.1mm,-4.75mm) -- ++(14mm,0) -- ++(-.1mm,4.75mm) -- cycle;
+        \pingu at block[rounded corners=1pt]{\@col}(-6.9mm,0) -- ++(0,7mm) -- ++(13.8mm,0) -- ++(0,-7mm) -- cycle;
+        \pingu at block[rounded corners=.125mm]{\csname pingu at color@laptop#1 at bracket\endcsname}(-6.4mm,.125mm) -- ++(0,-.25mm) -- ++(12.8mm,0) -- ++(0,.25mm) -- cycle;
+        % keys
+        \foreach[count=\y from 0,evaluate=\y as \extpadding using 0.005*\y,evaluate=\y as \rextpadding using 0.05*\y] \row in {
+            % manually account for padding
+                {0,1,1,1,1,1,1,1,1,1,1,1,1,1},
+                {.63,1.5,1,1,1,1,1,1,1,1,1,1,1},
+                {0,1,1,1,1,1,1,1,1,1,1,1,1,1},
+                {0,1,1,1,1,1,4.62,1,1,1,1},
+            } {
+            \def\lengthincr{-\rextpadding mm}
+            \foreach[count=\i from 0,evaluate=\len as \l using 0.85*\len] \len in \row {
+                \ifnum\i=0 \else % first one is silent:
+                \pingu at block[rounded corners=.125mm]{\csname pingu at color@laptop#1 at key\endcsname}(\lengthincr-6.4mm,-\y mm-.5mm) rectangle ++(\l mm,-.75mm) node[midway,centered,text=\@col,scale=.3] {\textbullet};
+                \fi
+                \xdef\lengthincr{\the\dimexpr\lengthincr+\l mm+.13mm+\extpadding mm}
+            }
+        }
+        % display, we modify the lower shift to adjust height offset
+        \pingu at block[rounded corners=1pt]{\csname pingu at color@laptop#1 at display\endcsname}(-6.7mm,.25mm+.05mm) rectangle ++(13.4mm,6.45mm) node[midway,centered,rotate=\@angle+5,text width=13.2mm,align=center,minimum height=6.2mm] {\csname pingu at x@laptop#1 at mid\endcsname};
+        \scope[shift={(-6.7mm,.25mm+.05mm)}]
+            \csname pingu at x@laptop#1 at content\endcsname
+        \endscope
+    \endscope
+}
+% #endregion
 \endinput



More information about the tex-live-commits mailing list.