Public Access
Add four Steins;Gate pages; shuffle the page rotation hourly
Divergence meter (Nixie tubes, world lines and clock), a D-mail sent through the Phone Microwave using the panel's Message text, the Future Gadget Lab inventory with live sensors, and a world line chart of today's solar power. Original pixel art in tools/steins_sprites.py; the sprite tool is shared between themes and Sprite, sprite(), polar() and arc() move to el512_pages.h. HomeData gains the message and a 24 h solar history in 15-minute slots. The rotation now walks all pages in a random order that is reshuffled every hour (Still Alive stays out, Now playing is skipped when idle). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e9b91c5628
commit
1e8a9a5958
11 files changed
+1057
-76
No files matched your search
@@ -0,0 +1,36 @@
|
||||
// Steins;Gate-themed animated pages for the ESPHome display: a Nixie-tube
|
||||
// divergence meter, a D-mail sent from a flip phone through the Phone
|
||||
// Microwave, the Future Gadget Lab inventory with live sensors, and a world
|
||||
// line chart of today's solar power. Fan art: the pixel art
|
||||
// (steins_sprites.h, from tools/steins_sprites.py) and all texts are original.
|
||||
//
|
||||
// Each function draws a whole page. Call it from a page lambda and list that
|
||||
// page under animated_pages; the animation clock is the display's page_age_ms().
|
||||
#pragma once
|
||||
|
||||
#include "el512_pages.h"
|
||||
#include "esphome/components/display/display.h"
|
||||
#include "esphome/core/time.h"
|
||||
|
||||
namespace esphome::el512 {
|
||||
|
||||
class EL512Display;
|
||||
|
||||
namespace steins {
|
||||
|
||||
struct Fonts {
|
||||
display::BaseFont *nixie{nullptr}; // Nixie tube digits (Nixie One)
|
||||
display::BaseFont *title{nullptr}; // typewriter headers (Special Elite)
|
||||
display::BaseFont *mono{nullptr}; // small monospace (Share Tech Mono 14)
|
||||
display::BaseFont *code{nullptr}; // larger monospace (Share Tech Mono 22)
|
||||
display::BaseFont *pixel{nullptr}; // phone LCD (Press Start 2P 8)
|
||||
display::BaseFont *jp{nullptr}; // a few Japanese words (Noto Sans JP)
|
||||
};
|
||||
|
||||
void divergence_meter(EL512Display &it, const Fonts &f, ESPTime now);
|
||||
void d_mail(EL512Display &it, const Fonts &f, const HomeData &d);
|
||||
void gadget_lab(EL512Display &it, const Fonts &f, const HomeData &d);
|
||||
void world_lines(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now);
|
||||
|
||||
} // namespace steins
|
||||
} // namespace esphome::el512
|
||||
Reference in new issue
Block a user