Files

326 lines
9.6 KiB
C++
Raw Permalink Normal View History

2026-10-18 23:46:24 +02:00
// Pixel art for the KonoSuba pages, generated by tools/konosuba_sprites.py;
// edit the art there. Original 1-bit fan art, '#' = lit pixel.
#pragma once
#include "el512_pages.h" // Sprite
2026-10-18 23:46:24 +02:00
namespace esphome::el512::konosuba {
static const char *const MEGUMIN_ROWS[] = {
"...............####.........",
"..............######........",
".............###...##.......",
"............####.....#......",
"...........#####............",
"..........######............",
"..........#######...........",
".........########...........",
".........#########..........",
"........##########..........",
"........#.........#.........",
"........###########.........",
"##########################..",
".########################...",
".....###############........",
".....##.#.##..#.#.##........",
".....#.............#........",
".....#..##....####.#........",
".....#..##....####.#........",
".....#.........#...#........",
".....##.............#.......",
"......#.....##.....#........",
".....###..........###.......",
"....####.##....##.####......",
"...######.######.######.....",
"..#######..####..#######....",
"..######...####...#######...",
".#######...#..#...#######...",
".######....#..#....######...",
".######...#....#...######...",
"#######...#....#...#######..",
"######...#......#...######..",
"######..##########..######..",
"#####...#........#...#####..",
"#####..#..........#..#####..",
"####...############...####..",
"........#......#............",
"........#......#............",
"........#......#............",
"........#......#............",
".......###....###...........",
".......####...####..........",
};
static constexpr Sprite MEGUMIN{28, 42, MEGUMIN_ROWS};
static const char *const STAFF_ROWS[] = {
"..#####..",
".#.....#.",
"#..###..#",
"#.#####.#",
"#.#####.#",
"#..###..#",
".#.....#.",
"..#...#..",
"...#.#...",
"....#....",
"....#....",
"...##....",
"....#....",
"....#....",
"....#....",
"....##...",
"....#....",
"....#....",
"....#....",
"....#....",
"...##....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....##...",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
"....#....",
};
static constexpr Sprite STAFF{9, 42, STAFF_ROWS};
static const char *const MEGUMIN_DOWN_ROWS[] = {
"....###......................................................",
"...#####.....................................................",
"..######.....................................................",
"..#######....................................................",
".########.##.................................................",
".#########..##.........#######...............................",
"###########...##.....###########.............................",
"#.........#.....#...##.#.#.#.#.##..#####################.....",
"###########......#..#.#.#.#.#.#.#.########################...",
"...................##############.###########.##########.###.",
"....................############..#####...........######...##",
"......................########....####.............####......",
};
static constexpr Sprite MEGUMIN_DOWN{61, 12, MEGUMIN_DOWN_ROWS};
static const char *const KAZUMA_ROWS[] = {
"....######......",
"...########.....",
"..##########....",
"..#.#.##.#.#....",
"..#........#....",
"..#..#..#..#....",
"..#........#....",
"...#..##..#.....",
"....######......",
"..##########....",
".###.####.###...",
".##..#..#..##...",
".##..#..#..##.#.",
".##..####..##.#.",
".##..#..#..##.#.",
"..#..#..#..#.###",
"....#....#....#.",
"....#....#......",
"...##....##.....",
};
static constexpr Sprite KAZUMA{16, 19, KAZUMA_ROWS};
static const char *const AQUA_ROWS[] = {
".....####.......",
"....#....#......",
".....####.......",
"....######......",
"...########.....",
"..##########....",
"..#........#....",
"..#..#..#..#....",
"..#........#....",
"..##..##..##....",
"..###....###....",
".####.##.####...",
".##..####..##...",
".##.#....#.##...",
".#.#......#.#...",
".#.#......#.#...",
"...########.....",
"....#....#......",
"....#....#......",
"...##....##.....",
};
static constexpr Sprite AQUA{16, 20, AQUA_ROWS};
static const char *const MEGUMIN_S_ROWS[] = {
".......##.......",
"......####......",
".....######.....",
"....########....",
"....#......#....",
"################",
"...##########...",
"...#........#...",
"...#.#...##.#...",
"...#........#...",
"....#..##..#....",
".....######.....",
"...##########...",
"..############..",
"..###.####.###..",
"..##..#..#..##..",
"..##..####..##..",
"..############..",
".....#....#.....",
".....#....#.....",
"....##....##....",
};
static constexpr Sprite MEGUMIN_S{16, 21, MEGUMIN_S_ROWS};
static const char *const DARKNESS_ROWS[] = {
"....######......",
"...########.###.",
"..##########.##.",
"..#.##..##.#..#.",
"..#........#....",
"..#..#..#..#....",
"..#........#....",
"...#..##..#.....",
"....######......",
"############....",
"##.########.##..",
"#..#.#..#.#..#..",
"...#.####.#.....",
"...#.#..#.#.....",
"...#.####.#.....",
"...########.....",
"....#....#......",
"....##...##.....",
"...###...###....",
};
static constexpr Sprite DARKNESS{16, 19, DARKNESS_ROWS};
static const char *const TOAD_ROWS[] = {
"......####............####......",
".....#....#..........#....#.....",
"....#..##..#........#..##..#....",
"....#..##..##########..##..#....",
"...##.....#..........#.....##...",
"..#..........................#..",
".#....#..........#.......#....#.",
"#..............................#",
"#.....##....#.........##...#...#",
"#..............................#",
"#..####################........#",
"#......................#.......#",
".#........#.......#...........#.",
"..#..##..................##..#..",
"...##..#................#..##...",
"..#.....#..............#.....#..",
".#..###..#............#..###..#.",
"##########............##########",
};
static constexpr Sprite TOAD{32, 18, TOAD_ROWS};
static const char *const TOAD_TONGUE_ROWS[] = {
"......####............####......",
".....#....#..........#....#.....",
"....#..##..#........#..##..#....",
"....#..##..##########..##..#....",
"...##.....#..........#.....##...",
"..#..........................#..",
".#....#..........#.......#....#.",
"#..............................#",
"#.....##....#.........##...#...#",
"#..............................#",
"#..####################........#",
"#...#..................#.......#",
".#...#....#.......#...........#.",
"..#...#..##..............##..#..",
"...##..#.##.............#..##...",
"..#.....####...........#.....#..",
".#..###..##...........#..###..#.",
"##########............##########",
};
static constexpr Sprite TOAD_TONGUE{32, 18, TOAD_TONGUE_ROWS};
static const char *const CABBAGE_A_ROWS[] = {
"#..............#",
"##...######...##",
".##.#..#...#.##.",
"..##.#.#..#.##..",
"...#..###...#...",
"...#.#.#.#..#...",
"....#..#...#....",
".....######.....",
};
static constexpr Sprite CABBAGE_A{16, 8, CABBAGE_A_ROWS};
static const char *const CABBAGE_B_ROWS[] = {
"................",
".....######.....",
"....#..#...#....",
"...#.#.#..#.#...",
"####..###...####",
"##.#.#.#.#..#.##",
"#...#..#...#...#",
".....######.....",
};
static constexpr Sprite CABBAGE_B{16, 8, CABBAGE_B_ROWS};
static const char *const MEGUMIN_BLINK_ROWS[] = {
"...............####.........",
"..............######........",
".............###...##.......",
"............####.....#......",
"...........#####............",
"..........######............",
"..........#######...........",
".........########...........",
".........#########..........",
"........##########..........",
"........#.........#.........",
"........###########.........",
"##########################..",
".########################...",
".....###############........",
".....##.#.##..#.#.##........",
".....#.............#........",
".....#........####.#........",
".....#..##....####.#........",
".....#.........#...#........",
".....##.............#.......",
"......#.....##.....#........",
".....###..........###.......",
"....####.##....##.####......",
"...######.######.######.....",
"..#######..####..#######....",
"..######...####...#######...",
".#######...#..#...#######...",
".######....#..#....######...",
".######...#....#...######...",
"#######...#....#...#######..",
"######...#......#...######..",
"######..##########..######..",
"#####...#........#...#####..",
"#####..#..........#..#####..",
"####...############...####..",
"........#......#............",
"........#......#............",
"........#......#............",
"........#......#............",
".......###....###...........",
".......####...####..........",
};
static constexpr Sprite MEGUMIN_BLINK{28, 42, MEGUMIN_BLINK_ROWS};
} // namespace esphome::el512::konosuba