feat(icons): Item-Icons fuer alle sechs Items
Lint / Lint Resource (push) Has been cancelled

128x128 PNG mit transparentem Hintergrund, aus SVG-Quellen per ImageMagick
(librsvg) erzeugt und damit reproduzierbar statt handgemalt.

- Tauchmaske, quer liegende Pressluft-Kartusche mit Manometer, drei
  Einzelflaschen und die Doppelflasche fuer XL
- Laufzeit als Zahl auf dem Farbband: ohne die waren die Einzelflaschen bei
  Slot-Groesse nur noch an der Bandfarbe zu unterscheiden, im 56px-Test gar
  nicht mehr
- Kartusche bewusst liegend statt hochkant, damit sie sich von den Flaschen
  abhebt - die erste Fassung las sich wie eine Flasche mit Download-Pfeil
- client.image faellt weg: ox_inventory laedt <imagepath>/<itemname>.png, und
  die Dateien heissen genau wie die Items

gen-icons.mjs schreibt zusaetzlich ein Kontrollblatt (Schachbrett, Slot-Groesse,
klein), mit dem die Icons gegengeprueft wurden.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 00:25:39 +02:00
co-authored by Claude Opus 5
parent ce0f693266
commit 6432550f68
20 changed files with 372 additions and 23 deletions
+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
<defs>
<linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#64748b"/>
<stop offset="28%" stop-color="#cbd5e1"/>
<stop offset="55%" stop-color="#94a3b8"/>
<stop offset="100%" stop-color="#64748b"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0.7" y2="1">
<stop offset="0%" stop-color="#38bdf8"/>
<stop offset="100%" stop-color="#0284c7"/>
</linearGradient>
</defs>
<rect x="18" y="44" width="86" height="44" rx="22" fill="url(#steel)" stroke="#0f172a" stroke-width="2.5"/>
<rect x="30" y="52" width="44" height="7" rx="3.5" fill="#cbd5e1" opacity="0.8"/>
<rect x="24" y="44" width="9" height="44" fill="#38bdf8" opacity="0.85"/>
<rect x="88" y="44" width="9" height="44" fill="#38bdf8" opacity="0.85"/>
<rect x="99" y="58" width="14" height="16" rx="4" fill="#334155"/>
<rect x="110" y="62" width="9" height="8" rx="3" fill="#1e293b"/>
<circle cx="62" cy="66" r="17" fill="#1e293b" stroke="#0f172a" stroke-width="2.5"/>
<circle cx="62" cy="66" r="12" fill="#cbd5e1"/>
<path d="M62 66 l8 -7" fill="none" stroke="#0f172a" stroke-width="3" stroke-linecap="round"/>
<circle cx="62" cy="66" r="2.5" fill="#0f172a"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
<defs>
<linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#64748b"/>
<stop offset="28%" stop-color="#cbd5e1"/>
<stop offset="55%" stop-color="#94a3b8"/>
<stop offset="100%" stop-color="#64748b"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0.7" y2="1">
<stop offset="0%" stop-color="#38bdf8"/>
<stop offset="100%" stop-color="#0284c7"/>
</linearGradient>
</defs>
<path d="M18 62 L30 52 L30 78 L18 72 Z" fill="#1e293b"/>
<path d="M110 62 L98 52 L98 78 L110 72 Z" fill="#1e293b"/>
<rect x="22" y="60" width="84" height="9" rx="4.5" fill="#1e293b"/>
<path d="M34 40 h60 a12 12 0 0 1 12 12 v22 a16 16 0 0 1 -16 16 h-8 l-8 -7 h-12 l-8 7 h-8 a16 16 0 0 1 -16 -16 v-22 a12 12 0 0 1 12 -12 z"
fill="#1e293b" stroke="#0f172a" stroke-width="2.5"/>
<path d="M42 50 h44 a7 7 0 0 1 7 7 v14 a10 10 0 0 1 -10 10 h-6 l-7 -6 h-12 l-7 6 h-6 a10 10 0 0 1 -10 -10 v-14 a7 7 0 0 1 7 -7 z"
fill="url(#glass)"/>
<path d="M48 55 h13 l-11 22 h-6 a5 5 0 0 1 -5 -5 v-9 z" fill="#ffffff" opacity="0.32"/>
<rect x="58" y="88" width="12" height="16" rx="4" fill="#334155"/>
<circle cx="64" cy="104" r="9" fill="#1e293b" stroke="#0f172a" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+23
View File
@@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
<defs>
<linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#64748b"/>
<stop offset="28%" stop-color="#cbd5e1"/>
<stop offset="55%" stop-color="#94a3b8"/>
<stop offset="100%" stop-color="#64748b"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0.7" y2="1">
<stop offset="0%" stop-color="#38bdf8"/>
<stop offset="100%" stop-color="#0284c7"/>
</linearGradient>
</defs>
<g>
<rect x="54" y="12" width="20" height="17" rx="3" fill="#334155"/>
<circle cx="64" cy="9" r="8" fill="none" stroke="#1e293b" stroke-width="4.5"/>
<rect x="39" y="26" width="50" height="92" rx="20.833333333333336" fill="url(#steel)" stroke="#0f172a" stroke-width="2.5"/>
<rect x="46.5" y="33.36" width="6.5" height="46" rx="3.25" fill="#cbd5e1" opacity="0.75"/>
<rect x="39" y="57.28" width="50" height="22" fill="#fbbf24"/>
<text x="64" y="73.28" text-anchor="middle" font-family="sans-serif"
font-size="16" font-weight="700" fill="#0f172a">15</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+23
View File
@@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
<defs>
<linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#64748b"/>
<stop offset="28%" stop-color="#cbd5e1"/>
<stop offset="55%" stop-color="#94a3b8"/>
<stop offset="100%" stop-color="#64748b"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0.7" y2="1">
<stop offset="0%" stop-color="#38bdf8"/>
<stop offset="100%" stop-color="#0284c7"/>
</linearGradient>
</defs>
<g>
<rect x="54.8" y="22" width="18.400000000000002" height="17" rx="3" fill="#334155"/>
<circle cx="64" cy="19" r="8" fill="none" stroke="#1e293b" stroke-width="4.5"/>
<rect x="41" y="36" width="46" height="80" rx="19.166666666666668" fill="url(#steel)" stroke="#0f172a" stroke-width="2.5"/>
<rect x="47.9" y="42.4" width="5.98" height="40" rx="2.99" fill="#cbd5e1" opacity="0.75"/>
<rect x="41" y="63.2" width="46" height="22" fill="#38bdf8"/>
<text x="64" y="79.2" text-anchor="middle" font-family="sans-serif"
font-size="16" font-weight="700" fill="#0f172a">10</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+23
View File
@@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
<defs>
<linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#64748b"/>
<stop offset="28%" stop-color="#cbd5e1"/>
<stop offset="55%" stop-color="#94a3b8"/>
<stop offset="100%" stop-color="#64748b"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0.7" y2="1">
<stop offset="0%" stop-color="#38bdf8"/>
<stop offset="100%" stop-color="#0284c7"/>
</linearGradient>
</defs>
<g>
<rect x="55.6" y="34" width="16.8" height="17" rx="3" fill="#334155"/>
<circle cx="64" cy="31" r="8" fill="none" stroke="#1e293b" stroke-width="4.5"/>
<rect x="43" y="48" width="42" height="66" rx="17.5" fill="url(#steel)" stroke="#0f172a" stroke-width="2.5"/>
<rect x="49.3" y="53.28" width="5.46" height="33" rx="2.73" fill="#cbd5e1" opacity="0.75"/>
<rect x="43" y="70.44" width="42" height="22" fill="#4ade80"/>
<text x="64" y="86.44" text-anchor="middle" font-family="sans-serif"
font-size="16" font-weight="700" fill="#0f172a">5</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+34
View File
@@ -0,0 +1,34 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
<defs>
<linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#64748b"/>
<stop offset="28%" stop-color="#cbd5e1"/>
<stop offset="55%" stop-color="#94a3b8"/>
<stop offset="100%" stop-color="#64748b"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0.7" y2="1">
<stop offset="0%" stop-color="#38bdf8"/>
<stop offset="100%" stop-color="#0284c7"/>
</linearGradient>
</defs>
<rect x="38" y="26" width="52" height="8" rx="4" fill="#1e293b"/>
<g>
<rect x="38.4" y="24" width="15.200000000000001" height="17" rx="3" fill="#334155"/>
<circle cx="46" cy="21" r="8" fill="none" stroke="#1e293b" stroke-width="4.5"/>
<rect x="27" y="38" width="38" height="80" rx="15.833333333333334" fill="url(#steel)" stroke="#0f172a" stroke-width="2.5"/>
<rect x="32.7" y="44.4" width="4.94" height="40" rx="2.47" fill="#cbd5e1" opacity="0.75"/>
<rect x="27" y="65.2" width="38" height="22" fill="#f472b6"/>
</g>
<g>
<rect x="74.4" y="24" width="15.200000000000001" height="17" rx="3" fill="#334155"/>
<circle cx="82" cy="21" r="8" fill="none" stroke="#1e293b" stroke-width="4.5"/>
<rect x="63" y="38" width="38" height="80" rx="15.833333333333334" fill="url(#steel)" stroke="#0f172a" stroke-width="2.5"/>
<rect x="68.7" y="44.4" width="4.94" height="40" rx="2.47" fill="#cbd5e1" opacity="0.75"/>
<rect x="63" y="65.2" width="38" height="22" fill="#f472b6"/>
</g>
<rect x="27" y="65" width="74" height="23" rx="4" fill="#f472b6" stroke="#0f172a" stroke-width="2"/>
<text x="64" y="82" text-anchor="middle" font-family="sans-serif"
font-size="16" font-weight="700" fill="#0f172a">20</text>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB