/* Die Pixelsymbole von HoneyOS. * * Eigene Datei, weil sie Daten sind und nicht Verhalten: zwölf mal zwölf * Zeichen je Symbol, mehr passiert hier nicht. Dieselben Raster stehen noch * einmal in honeybar/honeybar.js — die soll eine einzelne Datei bleiben, die * eine fremde App mit einer Zeile einbindet (siehe IDEAS 1.3). */ /* ── Pixel-Glyphen ───────────────────────────────────────────────────────── * 12×12-Raster als Zeichenketten. Ein `#` ist ein Pixel. So bleiben die Icons * im Retro-Raster statt aus einer Icon-Bibliothek zu kommen. */ export const GLYPHS = { // Wettersymbole. Dieselben Namen wie in weather.go (wmo) und in der HoneyBar — // solange 1.3 (geteilte Symbolquelle) nicht gebaut ist, stehen sie zweimal da. sonne: [ "............", ".....##.....", "..#..##..#..", "...#....#...", "....####....", "..##....##..", "..##....##..", "....####....", "...#....#...", "..#..##..#..", ".....##.....", "............", ], heiter: [ "............", "...##.......", "..####..#...", "...##..###..", "......#####.", "...####...#.", "..#....##.#.", ".##........#", "#..........#", ".##########.", "............", "............", ], wolke: [ "............", "....####....", "...#....#...", "..#......##.", ".##........#", "##.........#", "#..........#", "#..........#", ".##########.", "............", "............", "............", ], nebel: [ "............", "....####....", "..##....##..", ".##.......#.", "#..........#", ".##########.", "............", ".#########..", "............", "..#########.", "............", ".#########..", ], regen: [ "............", "....####....", "...#....#...", "..#......##.", ".##........#", "##.........#", ".##########.", "............", "..#..#..#...", ".#..#..#....", "..#..#..#...", ".#..#..#....", ], schnee: [ "............", "....####....", "...#....#...", "..#......##.", ".##........#", "##.........#", ".##########.", "............", "..#...#...#.", ".#.#.#.#.#..", "..#...#...#.", "............", ], gewitter: [ "............", "....####....", "...#....#...", "..#......##.", ".##........#", "##.........#", ".##########.", "......##....", ".....##.....", "....####....", "......##....", ".....##.....", ], cloud: [ "............", "....####....", "...#....#...", "..#......##.", ".##........#", "##.........#", "#..........#", "#..........#", ".##########.", "............", "............", "............", ], note: [ "..########..", "..#......#..", "..#.####.#..", "..#......#..", "..#.####.#..", "..#......#..", "..#.####.#..", "..#......#..", "..#.##...#..", "..#......#..", "..########..", "............", ], box: [ "............", ".##########.", ".#........#.", ".#........#.", ".#...##...#.", ".#..####..#.", ".#..####..#.", ".#...##...#.", ".#........#.", ".#........#.", ".##########.", "............", ], chip: [ "............", "..#.#.#.#...", ".##########.", ".#........#.", "##.######.##", ".#.#....#.#.", "##.#....#.##", ".#.######.#.", ".#........#.", ".##########.", "..#.#.#.#...", "............", ], gear: [ "....####....", "..#.####.#..", "..########..", ".####..####.", "###......###", "##........##", "##........##", "###......###", ".####..####.", "..########..", "..#.####.#..", "....####....", ], globe: [ "............", "...######...", "..#..#...#..", ".#...#....#.", "############", "#....#.....#", "#....#.....#", "############", ".#...#....#.", "..#..#...#..", "...######...", "............", ], disk: [ "............", "############", "#..######..#", "#..#....#..#", "#..#....#..#", "#..######..#", "#..........#", "#.########.#", "#.#......#.#", "#.#......#.#", "############", "............", ], folder: [ "............", ".####.......", "#....#......", "#.....######", "#..........#", "#..........#", "#..........#", "#..........#", "#..........#", "############", "............", "............", ], }; export function glyphSvg(name) { const grid = GLYPHS[name] || GLYPHS.box; const rects = []; grid.forEach((row, y) => { // Waagerechte Läufe zusammenfassen: weniger Rechtecke, gleiches Bild. let run = 0; for (let x = 0; x <= row.length; x++) { if (row[x] === "#") { run++; } else if (run) { rects.push(``); run = 0; } } }); return ``; }