Files
planar-EL512.256-H/components/el512/trek_sprites.h
T
mangavalkandClaude Opus 5.5 13a499fd97 Add four Star Trek / Lower Decks pages with a 3D printer red alert
LCARS ship status, the Cerritos duty roster from the agenda, a warp core
driven by solar power with Rutherford's advice, and a captain's log under
a viewscreen. Original pixel art in tools/trek_sprites.py.

When the 3D printer (Moonraker current_print_state, `printer`
substitution) is paused or in error, the panel jumps to LCARS Status in
red alert and holds the rotation until it carries on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 16:29:29 +02:00

138 lines
3.7 KiB
C++

// Pixel art for the Star Trek pages, generated by tools/trek_sprites.py;
// edit the art there. Original 1-bit fan art, '#' = lit pixel.
#pragma once
#include "el512_pages.h" // Sprite
namespace esphome::el512::trek {
static const char *const MARINER_ROWS[] = {
".......##.......",
"......####......",
"....########....",
"...##########...",
"...#.#....#.#...",
"...#........#...",
"...#.##..##.#...",
"...#........#...",
"...#......#.#...",
"....#..###.#....",
".....######.....",
"....#######.....",
"..###########...",
".#############..",
".##.###.#####...",
".##.##...###.#..",
".##.#######.##..",
".##.#.....#.##..",
".#..#.....#..#..",
"....#######.....",
"....##...##.....",
"....##...##.....",
"....##...##.....",
"...###...###....",
};
static constexpr Sprite MARINER{16, 24, MARINER_ROWS};
static const char *const BOIMLER_ROWS[] = {
"....#######.....",
"...#########....",
"...######...#...",
"...#........#...",
"...#.##..##.#...",
"...#........#...",
"...#...##...#...",
"...#..####..#...",
"...#..#..#..#...",
"....#.####.#....",
".....######.....",
"....#######.....",
"..###########...",
".#############..",
".##.###.#####...",
".##.##...###.#..",
".##.#######.##..",
".##.#.....#.##..",
".#..#.....#..#..",
"....#######.....",
"....##...##.....",
"....##...##.....",
"....##...##.....",
"...###...###....",
};
static constexpr Sprite BOIMLER{16, 24, BOIMLER_ROWS};
static const char *const TENDI_ROWS[] = {
".....######.....",
"...##########...",
"..############..",
"..##........##..",
"..#..##..##..#..",
"..#..........#..",
"..#.#......#.#..",
"..#..######..#..",
"..##........##..",
"..###......###..",
"..###.####.###..",
"....#######.....",
"..###########...",
".#############..",
".##.###.#####...",
".##.##...###.#..",
".##.#######.##..",
".##.#.....#.##..",
".#..#.....#..#..",
"....#######.....",
"....##...##.....",
"....##...##.....",
"....##...##.....",
"...###...###....",
};
static constexpr Sprite TENDI{16, 24, TENDI_ROWS};
static const char *const RUTHERFORD_ROWS[] = {
"....########....",
"...##########...",
"...#.#.#.#.##...",
"..####......#...",
"..#..#.##...#...",
"..####......#...",
"..####......#...",
"...##...##..#...",
"...#..#####.#...",
"....#......#....",
".....######.....",
"....#######.....",
"..###########...",
".#############..",
".##.###.#####...",
".##.##...###.#..",
".##.#######.##..",
".##.#.....#.##..",
".#..#.....#..#..",
"....#######.....",
"....##...##.....",
"....##...##.....",
"....##...##.....",
"...###...###....",
};
static constexpr Sprite RUTHERFORD{16, 24, RUTHERFORD_ROWS};
static const char *const SHIP_ROWS[] = {
"######################...........................",
"#....................###.........................",
"######################...........................",
".....#.......#...................................",
"......#.......#...................#############..",
".......#.......#...............##################",
"........###########......#######################.",
"........#.........######.........##############..",
"........#.....................#..................",
"........#######################..................",
".........#.....#####.........#...................",
"..........######...##########....................",
};
static constexpr Sprite SHIP{49, 12, SHIP_ROWS};
} // namespace esphome::el512::trek