Add four animated KonoSuba ESPHome pages

Megumin's daily explosion, the Adventurers' Guild quest board (agenda,
weather, solar), Megumin's adventurer card and a party battle against a
giant toad with a live-data battle log. Original 1-bit pixel art lives in
tools/konosuba_sprites.py, which generates konosuba_sprites.h and can
render a preview PNG.

Home data and drawing helpers shared by the themed pages move to
el512_pages.h; the display gains dither_mask() for a dissolve-in intro.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-18 23:46:24 +02:00
1 parent 50ee17b3f6
commit e9b91c5628
11 files changed
+1655 -61

No files matched your search

+4
View File
@@ -4,6 +4,7 @@
#include "cyberpunk.h"
#include "el512_helpers.h"
#include "konosuba.h"
#include "el512_panel.h"
#include "esphome/components/display/display_buffer.h"
#include "esphome/core/component.h"
@@ -66,6 +67,9 @@ class EL512Display : public display::DisplayBuffer {
// y..y+height-1 right by dx pixels (wrapping around), invert a rectangle.
void shift_rows(int y, int height, int dx);
void invert_rect(int x, int y, int width, int height);
// Keep only the pixels whose 4x4 Bayer threshold is below level (0..16):
// 0 clears everything, 16 keeps everything. Steps of it dissolve a page in.
void dither_mask(int level);
protected:
void draw_absolute_pixel_internal(int x, int y, Color color) override;