diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bcfb0b5..db6653f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ - **Cards are WebP:** lossless, animated where they move, about a third of the size of the PNGs before, pixel for pixel the same. - **Decorations** at `/decorations/`: painted banners for README sections, with an optional title (`reading-nook`, `workbench`, `raven-moon`, `enchanted-clearing`, `crystal-owl`, `forest-divider`, `forest-footer`). +- **Decorations by night:** every decoration has a night painting (`time=night`), and the profile builder can switch them with dark mode like the cards. +- **Status page** at [questlog.cc/status](https://questlog.cc/status): whether cards are served, whether stats arrive from GitHub, and whether new users get in right now, with times in UTC. +- **Readable logs** for whoever runs an instance: one plain line per request and per background event, and an admin page behind Cloudflare Access (see "Watching it" in the README). ## 1.0.0 diff --git a/README.md b/README.md index fd1a25da..22de5eeb 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ To switch to the night painting for readers in dark mode, use GitHub's ` ``` -The first time a card is requested you'll see a "the scribe is inking your sheet" card for a few seconds while your stats are fetched. Refresh and it's there. Cards update every 12 hours. If GitHub's hourly limit is ever reached, the card says how many minutes the wait is. +The first time a card is requested you'll see a "the scribe is inking your sheet" card for a few seconds while your stats are fetched. Refresh and it's there. Cards update every 12 hours. If GitHub's hourly limit is ever reached, the card says how many minutes the wait is. [questlog.cc/status](https://questlog.cc/status) shows whether the service is up and letting new users in. ## Scenes @@ -50,12 +50,23 @@ The gallery shows each scene's Character Sheet in the order of the table. ## Decorations -Painted banners to head a section of your README or divide two, with an optional title in the card title style. They show no stats, so they need no login. +Painted banners to head a section of your README or divide two, with an optional title in the card title style. They show no stats, so they need no login. Like the cards, each one is painted by day and by night. + +![The seven decorations, by day on the left and by night on the right](assets/readme/decorations.png) ```md ![About Me](https://questlog.cc/decorations/reading-nook?title=About%20Me) ``` +To switch to the night painting for readers in dark mode, add `time=night` to the dark source: + +```html + + + About Me + +``` + | Decoration | Painting | |---|---| | `reading-nook` | a candlelit lectern in the forest; title on the right | @@ -66,7 +77,7 @@ Painted banners to head a section of your README or divide two, with an optional | `forest-divider` | a mossy log, lower than the others; no title unless you give one | | `forest-footer` | glowing mushrooms and ferns, as low as the divider; for the end of a README | -Decorations take only `title`, `title_color`, `outline_color`, `truncate`, `animate` and `scale`; any other option draws an error card. +Decorations take only `title`, `title_color`, `outline_color`, `truncate`, `animate`, `scale` and `time` (`time=night` for the night painting); any other option draws an error card. ## Options diff --git a/art/decorations/crystal-owl/0-night.png b/art/decorations/crystal-owl/0-night.png new file mode 100644 index 00000000..6ceae057 Binary files /dev/null and b/art/decorations/crystal-owl/0-night.png differ diff --git a/art/decorations/crystal-owl/1-night.png b/art/decorations/crystal-owl/1-night.png new file mode 100644 index 00000000..ee497f53 Binary files /dev/null and b/art/decorations/crystal-owl/1-night.png differ diff --git a/art/decorations/crystal-owl/10-night.png b/art/decorations/crystal-owl/10-night.png new file mode 100644 index 00000000..971be3c7 Binary files /dev/null and b/art/decorations/crystal-owl/10-night.png differ diff --git a/art/decorations/crystal-owl/11-night.png b/art/decorations/crystal-owl/11-night.png new file mode 100644 index 00000000..880de9f8 Binary files /dev/null and b/art/decorations/crystal-owl/11-night.png differ diff --git a/art/decorations/crystal-owl/2-night.png b/art/decorations/crystal-owl/2-night.png new file mode 100644 index 00000000..fee8c7f3 Binary files /dev/null and b/art/decorations/crystal-owl/2-night.png differ diff --git a/art/decorations/crystal-owl/3-night.png b/art/decorations/crystal-owl/3-night.png new file mode 100644 index 00000000..6b2a86ef Binary files /dev/null and b/art/decorations/crystal-owl/3-night.png differ diff --git a/art/decorations/crystal-owl/4-night.png b/art/decorations/crystal-owl/4-night.png new file mode 100644 index 00000000..880de9f8 Binary files /dev/null and b/art/decorations/crystal-owl/4-night.png differ diff --git a/art/decorations/crystal-owl/5-night.png b/art/decorations/crystal-owl/5-night.png new file mode 100644 index 00000000..6ceae057 Binary files /dev/null and b/art/decorations/crystal-owl/5-night.png differ diff --git a/art/decorations/crystal-owl/6-night.png b/art/decorations/crystal-owl/6-night.png new file mode 100644 index 00000000..f33525b1 Binary files /dev/null and b/art/decorations/crystal-owl/6-night.png differ diff --git a/art/decorations/crystal-owl/7-night.png b/art/decorations/crystal-owl/7-night.png new file mode 100644 index 00000000..77ed6909 Binary files /dev/null and b/art/decorations/crystal-owl/7-night.png differ diff --git a/art/decorations/crystal-owl/8-night.png b/art/decorations/crystal-owl/8-night.png new file mode 100644 index 00000000..1a33fea1 Binary files /dev/null and b/art/decorations/crystal-owl/8-night.png differ diff --git a/art/decorations/crystal-owl/9-night.png b/art/decorations/crystal-owl/9-night.png new file mode 100644 index 00000000..b1e35ec9 Binary files /dev/null and b/art/decorations/crystal-owl/9-night.png differ diff --git a/art/decorations/enchanted-clearing/0-night.png b/art/decorations/enchanted-clearing/0-night.png new file mode 100644 index 00000000..e09056ca Binary files /dev/null and b/art/decorations/enchanted-clearing/0-night.png differ diff --git a/art/decorations/enchanted-clearing/1-night.png b/art/decorations/enchanted-clearing/1-night.png new file mode 100644 index 00000000..1cf2027c Binary files /dev/null and b/art/decorations/enchanted-clearing/1-night.png differ diff --git a/art/decorations/enchanted-clearing/10-night.png b/art/decorations/enchanted-clearing/10-night.png new file mode 100644 index 00000000..792eb4d0 Binary files /dev/null and b/art/decorations/enchanted-clearing/10-night.png differ diff --git a/art/decorations/enchanted-clearing/11-night.png b/art/decorations/enchanted-clearing/11-night.png new file mode 100644 index 00000000..5a057d7b Binary files /dev/null and b/art/decorations/enchanted-clearing/11-night.png differ diff --git a/art/decorations/enchanted-clearing/2-night.png b/art/decorations/enchanted-clearing/2-night.png new file mode 100644 index 00000000..3c7cce96 Binary files /dev/null and b/art/decorations/enchanted-clearing/2-night.png differ diff --git a/art/decorations/enchanted-clearing/3-night.png b/art/decorations/enchanted-clearing/3-night.png new file mode 100644 index 00000000..f35caedd Binary files /dev/null and b/art/decorations/enchanted-clearing/3-night.png differ diff --git a/art/decorations/enchanted-clearing/4-night.png b/art/decorations/enchanted-clearing/4-night.png new file mode 100644 index 00000000..a41ef901 Binary files /dev/null and b/art/decorations/enchanted-clearing/4-night.png differ diff --git a/art/decorations/enchanted-clearing/5-night.png b/art/decorations/enchanted-clearing/5-night.png new file mode 100644 index 00000000..993fbed6 Binary files /dev/null and b/art/decorations/enchanted-clearing/5-night.png differ diff --git a/art/decorations/enchanted-clearing/6-night.png b/art/decorations/enchanted-clearing/6-night.png new file mode 100644 index 00000000..fb8f0c0e Binary files /dev/null and b/art/decorations/enchanted-clearing/6-night.png differ diff --git a/art/decorations/enchanted-clearing/7-night.png b/art/decorations/enchanted-clearing/7-night.png new file mode 100644 index 00000000..b854756d Binary files /dev/null and b/art/decorations/enchanted-clearing/7-night.png differ diff --git a/art/decorations/enchanted-clearing/8-night.png b/art/decorations/enchanted-clearing/8-night.png new file mode 100644 index 00000000..9326e1f8 Binary files /dev/null and b/art/decorations/enchanted-clearing/8-night.png differ diff --git a/art/decorations/enchanted-clearing/9-night.png b/art/decorations/enchanted-clearing/9-night.png new file mode 100644 index 00000000..d05feb54 Binary files /dev/null and b/art/decorations/enchanted-clearing/9-night.png differ diff --git a/art/decorations/forest-divider/0-night.png b/art/decorations/forest-divider/0-night.png new file mode 100644 index 00000000..6f70c931 Binary files /dev/null and b/art/decorations/forest-divider/0-night.png differ diff --git a/art/decorations/forest-divider/1-night.png b/art/decorations/forest-divider/1-night.png new file mode 100644 index 00000000..a065c620 Binary files /dev/null and b/art/decorations/forest-divider/1-night.png differ diff --git a/art/decorations/forest-divider/10-night.png b/art/decorations/forest-divider/10-night.png new file mode 100644 index 00000000..c0739b34 Binary files /dev/null and b/art/decorations/forest-divider/10-night.png differ diff --git a/art/decorations/forest-divider/11-night.png b/art/decorations/forest-divider/11-night.png new file mode 100644 index 00000000..7e44b217 Binary files /dev/null and b/art/decorations/forest-divider/11-night.png differ diff --git a/art/decorations/forest-divider/2-night.png b/art/decorations/forest-divider/2-night.png new file mode 100644 index 00000000..c04cc25c Binary files /dev/null and b/art/decorations/forest-divider/2-night.png differ diff --git a/art/decorations/forest-divider/3-night.png b/art/decorations/forest-divider/3-night.png new file mode 100644 index 00000000..f6090adc Binary files /dev/null and b/art/decorations/forest-divider/3-night.png differ diff --git a/art/decorations/forest-divider/4-night.png b/art/decorations/forest-divider/4-night.png new file mode 100644 index 00000000..78999521 Binary files /dev/null and b/art/decorations/forest-divider/4-night.png differ diff --git a/art/decorations/forest-divider/5-night.png b/art/decorations/forest-divider/5-night.png new file mode 100644 index 00000000..c107dfab Binary files /dev/null and b/art/decorations/forest-divider/5-night.png differ diff --git a/art/decorations/forest-divider/6-night.png b/art/decorations/forest-divider/6-night.png new file mode 100644 index 00000000..5381d993 Binary files /dev/null and b/art/decorations/forest-divider/6-night.png differ diff --git a/art/decorations/forest-divider/7-night.png b/art/decorations/forest-divider/7-night.png new file mode 100644 index 00000000..e825734b Binary files /dev/null and b/art/decorations/forest-divider/7-night.png differ diff --git a/art/decorations/forest-divider/8-night.png b/art/decorations/forest-divider/8-night.png new file mode 100644 index 00000000..89212c6f Binary files /dev/null and b/art/decorations/forest-divider/8-night.png differ diff --git a/art/decorations/forest-divider/9-night.png b/art/decorations/forest-divider/9-night.png new file mode 100644 index 00000000..8b87ee0d Binary files /dev/null and b/art/decorations/forest-divider/9-night.png differ diff --git a/art/decorations/forest-footer/0-night.png b/art/decorations/forest-footer/0-night.png new file mode 100644 index 00000000..599f711e Binary files /dev/null and b/art/decorations/forest-footer/0-night.png differ diff --git a/art/decorations/forest-footer/1-night.png b/art/decorations/forest-footer/1-night.png new file mode 100644 index 00000000..db8d3fc0 Binary files /dev/null and b/art/decorations/forest-footer/1-night.png differ diff --git a/art/decorations/forest-footer/10-night.png b/art/decorations/forest-footer/10-night.png new file mode 100644 index 00000000..eb43b746 Binary files /dev/null and b/art/decorations/forest-footer/10-night.png differ diff --git a/art/decorations/forest-footer/11-night.png b/art/decorations/forest-footer/11-night.png new file mode 100644 index 00000000..e3ecd674 Binary files /dev/null and b/art/decorations/forest-footer/11-night.png differ diff --git a/art/decorations/forest-footer/2-night.png b/art/decorations/forest-footer/2-night.png new file mode 100644 index 00000000..b389b4c5 Binary files /dev/null and b/art/decorations/forest-footer/2-night.png differ diff --git a/art/decorations/forest-footer/3-night.png b/art/decorations/forest-footer/3-night.png new file mode 100644 index 00000000..3363287a Binary files /dev/null and b/art/decorations/forest-footer/3-night.png differ diff --git a/art/decorations/forest-footer/4-night.png b/art/decorations/forest-footer/4-night.png new file mode 100644 index 00000000..b45c24ed Binary files /dev/null and b/art/decorations/forest-footer/4-night.png differ diff --git a/art/decorations/forest-footer/5-night.png b/art/decorations/forest-footer/5-night.png new file mode 100644 index 00000000..13052741 Binary files /dev/null and b/art/decorations/forest-footer/5-night.png differ diff --git a/art/decorations/forest-footer/6-night.png b/art/decorations/forest-footer/6-night.png new file mode 100644 index 00000000..61eeb8b7 Binary files /dev/null and b/art/decorations/forest-footer/6-night.png differ diff --git a/art/decorations/forest-footer/7-night.png b/art/decorations/forest-footer/7-night.png new file mode 100644 index 00000000..cf7cda03 Binary files /dev/null and b/art/decorations/forest-footer/7-night.png differ diff --git a/art/decorations/forest-footer/8-night.png b/art/decorations/forest-footer/8-night.png new file mode 100644 index 00000000..b0398404 Binary files /dev/null and b/art/decorations/forest-footer/8-night.png differ diff --git a/art/decorations/forest-footer/9-night.png b/art/decorations/forest-footer/9-night.png new file mode 100644 index 00000000..8273c573 Binary files /dev/null and b/art/decorations/forest-footer/9-night.png differ diff --git a/art/decorations/raven-moon/0-night.png b/art/decorations/raven-moon/0-night.png new file mode 100644 index 00000000..44123832 Binary files /dev/null and b/art/decorations/raven-moon/0-night.png differ diff --git a/art/decorations/raven-moon/1-night.png b/art/decorations/raven-moon/1-night.png new file mode 100644 index 00000000..bc861552 Binary files /dev/null and b/art/decorations/raven-moon/1-night.png differ diff --git a/art/decorations/raven-moon/10-night.png b/art/decorations/raven-moon/10-night.png new file mode 100644 index 00000000..4be63563 Binary files /dev/null and b/art/decorations/raven-moon/10-night.png differ diff --git a/art/decorations/raven-moon/11-night.png b/art/decorations/raven-moon/11-night.png new file mode 100644 index 00000000..bc861552 Binary files /dev/null and b/art/decorations/raven-moon/11-night.png differ diff --git a/art/decorations/raven-moon/2-night.png b/art/decorations/raven-moon/2-night.png new file mode 100644 index 00000000..4be63563 Binary files /dev/null and b/art/decorations/raven-moon/2-night.png differ diff --git a/art/decorations/raven-moon/3-night.png b/art/decorations/raven-moon/3-night.png new file mode 100644 index 00000000..951218e9 Binary files /dev/null and b/art/decorations/raven-moon/3-night.png differ diff --git a/art/decorations/raven-moon/4-night.png b/art/decorations/raven-moon/4-night.png new file mode 100644 index 00000000..816e2a0e Binary files /dev/null and b/art/decorations/raven-moon/4-night.png differ diff --git a/art/decorations/raven-moon/5-night.png b/art/decorations/raven-moon/5-night.png new file mode 100644 index 00000000..81c92bfa Binary files /dev/null and b/art/decorations/raven-moon/5-night.png differ diff --git a/art/decorations/raven-moon/6-night.png b/art/decorations/raven-moon/6-night.png new file mode 100644 index 00000000..6c1e2dc8 Binary files /dev/null and b/art/decorations/raven-moon/6-night.png differ diff --git a/art/decorations/raven-moon/7-night.png b/art/decorations/raven-moon/7-night.png new file mode 100644 index 00000000..81c92bfa Binary files /dev/null and b/art/decorations/raven-moon/7-night.png differ diff --git a/art/decorations/raven-moon/8-night.png b/art/decorations/raven-moon/8-night.png new file mode 100644 index 00000000..816e2a0e Binary files /dev/null and b/art/decorations/raven-moon/8-night.png differ diff --git a/art/decorations/raven-moon/9-night.png b/art/decorations/raven-moon/9-night.png new file mode 100644 index 00000000..951218e9 Binary files /dev/null and b/art/decorations/raven-moon/9-night.png differ diff --git a/art/decorations/reading-nook/0-night.png b/art/decorations/reading-nook/0-night.png new file mode 100644 index 00000000..42615226 Binary files /dev/null and b/art/decorations/reading-nook/0-night.png differ diff --git a/art/decorations/reading-nook/1-night.png b/art/decorations/reading-nook/1-night.png new file mode 100644 index 00000000..58ac9d5c Binary files /dev/null and b/art/decorations/reading-nook/1-night.png differ diff --git a/art/decorations/reading-nook/10-night.png b/art/decorations/reading-nook/10-night.png new file mode 100644 index 00000000..cf1c6198 Binary files /dev/null and b/art/decorations/reading-nook/10-night.png differ diff --git a/art/decorations/reading-nook/11-night.png b/art/decorations/reading-nook/11-night.png new file mode 100644 index 00000000..f08b12e4 Binary files /dev/null and b/art/decorations/reading-nook/11-night.png differ diff --git a/art/decorations/reading-nook/2-night.png b/art/decorations/reading-nook/2-night.png new file mode 100644 index 00000000..7c113090 Binary files /dev/null and b/art/decorations/reading-nook/2-night.png differ diff --git a/art/decorations/reading-nook/3-night.png b/art/decorations/reading-nook/3-night.png new file mode 100644 index 00000000..6679d6ff Binary files /dev/null and b/art/decorations/reading-nook/3-night.png differ diff --git a/art/decorations/reading-nook/4-night.png b/art/decorations/reading-nook/4-night.png new file mode 100644 index 00000000..9f36c57d Binary files /dev/null and b/art/decorations/reading-nook/4-night.png differ diff --git a/art/decorations/reading-nook/5-night.png b/art/decorations/reading-nook/5-night.png new file mode 100644 index 00000000..8746a07c Binary files /dev/null and b/art/decorations/reading-nook/5-night.png differ diff --git a/art/decorations/reading-nook/6-night.png b/art/decorations/reading-nook/6-night.png new file mode 100644 index 00000000..c829f13d Binary files /dev/null and b/art/decorations/reading-nook/6-night.png differ diff --git a/art/decorations/reading-nook/7-night.png b/art/decorations/reading-nook/7-night.png new file mode 100644 index 00000000..baf946b4 Binary files /dev/null and b/art/decorations/reading-nook/7-night.png differ diff --git a/art/decorations/reading-nook/8-night.png b/art/decorations/reading-nook/8-night.png new file mode 100644 index 00000000..54f5b94e Binary files /dev/null and b/art/decorations/reading-nook/8-night.png differ diff --git a/art/decorations/reading-nook/9-night.png b/art/decorations/reading-nook/9-night.png new file mode 100644 index 00000000..463834ec Binary files /dev/null and b/art/decorations/reading-nook/9-night.png differ diff --git a/art/decorations/workbench/0-night.png b/art/decorations/workbench/0-night.png new file mode 100644 index 00000000..80f47ea1 Binary files /dev/null and b/art/decorations/workbench/0-night.png differ diff --git a/art/decorations/workbench/1-night.png b/art/decorations/workbench/1-night.png new file mode 100644 index 00000000..95f19937 Binary files /dev/null and b/art/decorations/workbench/1-night.png differ diff --git a/art/decorations/workbench/10-night.png b/art/decorations/workbench/10-night.png new file mode 100644 index 00000000..b37445a8 Binary files /dev/null and b/art/decorations/workbench/10-night.png differ diff --git a/art/decorations/workbench/11-night.png b/art/decorations/workbench/11-night.png new file mode 100644 index 00000000..d1a5eb48 Binary files /dev/null and b/art/decorations/workbench/11-night.png differ diff --git a/art/decorations/workbench/2-night.png b/art/decorations/workbench/2-night.png new file mode 100644 index 00000000..b94cb0f3 Binary files /dev/null and b/art/decorations/workbench/2-night.png differ diff --git a/art/decorations/workbench/3-night.png b/art/decorations/workbench/3-night.png new file mode 100644 index 00000000..098b8d60 Binary files /dev/null and b/art/decorations/workbench/3-night.png differ diff --git a/art/decorations/workbench/4-night.png b/art/decorations/workbench/4-night.png new file mode 100644 index 00000000..dc5957e7 Binary files /dev/null and b/art/decorations/workbench/4-night.png differ diff --git a/art/decorations/workbench/5-night.png b/art/decorations/workbench/5-night.png new file mode 100644 index 00000000..cdc0a0c6 Binary files /dev/null and b/art/decorations/workbench/5-night.png differ diff --git a/art/decorations/workbench/6-night.png b/art/decorations/workbench/6-night.png new file mode 100644 index 00000000..24ec89c5 Binary files /dev/null and b/art/decorations/workbench/6-night.png differ diff --git a/art/decorations/workbench/7-night.png b/art/decorations/workbench/7-night.png new file mode 100644 index 00000000..01f862f6 Binary files /dev/null and b/art/decorations/workbench/7-night.png differ diff --git a/art/decorations/workbench/8-night.png b/art/decorations/workbench/8-night.png new file mode 100644 index 00000000..b3be19b0 Binary files /dev/null and b/art/decorations/workbench/8-night.png differ diff --git a/art/decorations/workbench/9-night.png b/art/decorations/workbench/9-night.png new file mode 100644 index 00000000..adbfb191 Binary files /dev/null and b/art/decorations/workbench/9-night.png differ diff --git a/assets/readme/decorations.png b/assets/readme/decorations.png new file mode 100644 index 00000000..67449d03 Binary files /dev/null and b/assets/readme/decorations.png differ diff --git a/site/app/wiki/page.tsx b/site/app/wiki/page.tsx index 01ac6a1a..862d5327 100644 --- a/site/app/wiki/page.tsx +++ b/site/app/wiki/page.tsx @@ -29,10 +29,19 @@ const TOC = [ const WIDGETS: Widget[] = ["stats", "languages", "streak"]; -function Shot({ src, alt, scale = 2, h = 128 }: { src: string; alt: string; scale?: number; h?: number }) { +/** A live card that links to its full size; with `dark`, readers in dark mode see that address instead. */ +function Shot({ src, alt, scale = 2, h = 128, dark }: { src: string; alt: string; scale?: number; h?: number; dark?: string }) { + const img = {alt}; return ( - {alt} + {dark ? ( + + + {img} + + ) : ( + img + )} ); } @@ -50,6 +59,10 @@ const PICTURE = ` My Character Sheet `; +const DECO_PICTURE = ` + + Connect +`; const STATS_ROWS = [ ["Level", "level", "From your lifetime contributions. The bar under it fills toward the next level."], @@ -198,6 +211,8 @@ export default function Wiki() {

Anywhere that renders HTML works the same way: a repository README, a wiki or your own site. Where only Markdown images are allowed, use ![My stats]({HOST}/stats?user=you) and pick one time. + Decorations switch the same way: put ?time=night on the dark one (see{" "} + Decorations).

@@ -365,14 +380,29 @@ export default function Wiki() { {`![About Me](${HOST}/decorations/reading-nook?title=About%20Me)`}

Decorations take only title, title_color, outline_color,{" "} - truncate, animate and scale. A title too long for its place is - trimmed with "..."; truncate=false draws it whole. + truncate, animate, scale and time. A title too long + for its place is trimmed with "..."; truncate=false draws it whole.{" "} + time=night draws the night painting. The ones below switch with your theme; to do the same in + your README, use a <picture> tag (the builder writes it for you when you pick Switch + with dark mode):

+ {DECO_PICTURE} +
+
+ +
Light theme
+
+
+ +
Dark theme
+
+
{DECORATIONS.map(({ name, label, title, h }) => (
diff --git a/site/components/builder/CardOptions.tsx b/site/components/builder/CardOptions.tsx index a9323b5c..f2c07726 100644 --- a/site/components/builder/CardOptions.tsx +++ b/site/components/builder/CardOptions.tsx @@ -103,26 +103,51 @@ function Foot({ onRemove, onClose }: Pick) { ); } -/** A decoration has no stats and no night: the painting, its title and the title's colors. */ +/** A decoration has no stats: the painting, day or night, its title and the title's colors. */ function DecorationOptions({ spot, index, count, onChange, onRemove, onClose, onStep }: Props) { const c = spot.card; - const set = (key: string, value: string, typing = true) => onChange(setParam(c, key, value), "single", typing); + const mode: Mode = spot.kind === "picture" && spot.dark ? "auto" : "single"; + const time: Time = mode === "auto" ? "auto" : c.night ? "night" : "day"; + const set = (key: string, value: string, typing = true) => onChange(setParam(c, key, value), mode, typing); + const setTime = (t: Time) => onChange({ ...c, night: t === "night" }, t === "auto" ? "auto" : "single"); const title = getParam(c, "title"); return (
- +
Painting
{DECORATIONS.map((d) => ( ))}
+ + label="Time of day" + value={time} + onChange={setTime} + options={[ + { value: "day", label: "Day", icon:
{DECORATIONS.map((d) => (
-
+ + {d.title -
+
{d.label} {address(d.name, d.title).replace(/%20/g, " ")} diff --git a/site/components/snapped.json b/site/components/snapped.json index 24f6b3e3..088eb93c 100644 --- a/site/components/snapped.json +++ b/site/components/snapped.json @@ -1 +1 @@ -{"version": "1397ef4b86"} +{"version": "7c96af3f45"} diff --git a/site/public/cards/decorations_crystal-owl.scale=2,animate=false,time=night.webp b/site/public/cards/decorations_crystal-owl.scale=2,animate=false,time=night.webp new file mode 100644 index 00000000..9b8f8bc4 Binary files /dev/null and b/site/public/cards/decorations_crystal-owl.scale=2,animate=false,time=night.webp differ diff --git a/site/public/cards/decorations_crystal-owl.title=Learning~2520Focus,scale=2,time=night.webp b/site/public/cards/decorations_crystal-owl.title=Learning~2520Focus,scale=2,time=night.webp new file mode 100644 index 00000000..c7a4ca86 Binary files /dev/null and b/site/public/cards/decorations_crystal-owl.title=Learning~2520Focus,scale=2,time=night.webp differ diff --git a/site/public/cards/decorations_crystal-owl.title=Learning~2520Focus,time=night,scale=2.webp b/site/public/cards/decorations_crystal-owl.title=Learning~2520Focus,time=night,scale=2.webp new file mode 100644 index 00000000..c7a4ca86 Binary files /dev/null and b/site/public/cards/decorations_crystal-owl.title=Learning~2520Focus,time=night,scale=2.webp differ diff --git a/site/public/cards/decorations_enchanted-clearing.scale=2,animate=false,time=night.webp b/site/public/cards/decorations_enchanted-clearing.scale=2,animate=false,time=night.webp new file mode 100644 index 00000000..26a8693d Binary files /dev/null and b/site/public/cards/decorations_enchanted-clearing.scale=2,animate=false,time=night.webp differ diff --git a/site/public/cards/decorations_enchanted-clearing.title=Get~2520In~2520Touch,scale=2,time=night.webp b/site/public/cards/decorations_enchanted-clearing.title=Get~2520In~2520Touch,scale=2,time=night.webp new file mode 100644 index 00000000..1d48fda0 Binary files /dev/null and b/site/public/cards/decorations_enchanted-clearing.title=Get~2520In~2520Touch,scale=2,time=night.webp differ diff --git a/site/public/cards/decorations_enchanted-clearing.title=Get~2520In~2520Touch,time=night,scale=2.webp b/site/public/cards/decorations_enchanted-clearing.title=Get~2520In~2520Touch,time=night,scale=2.webp new file mode 100644 index 00000000..1d48fda0 Binary files /dev/null and b/site/public/cards/decorations_enchanted-clearing.title=Get~2520In~2520Touch,time=night,scale=2.webp differ diff --git a/site/public/cards/decorations_forest-divider.scale=2,animate=false,time=night.webp b/site/public/cards/decorations_forest-divider.scale=2,animate=false,time=night.webp new file mode 100644 index 00000000..77fa493e Binary files /dev/null and b/site/public/cards/decorations_forest-divider.scale=2,animate=false,time=night.webp differ diff --git a/site/public/cards/decorations_forest-divider.scale=2,time=night.webp b/site/public/cards/decorations_forest-divider.scale=2,time=night.webp new file mode 100644 index 00000000..2794b63d Binary files /dev/null and b/site/public/cards/decorations_forest-divider.scale=2,time=night.webp differ diff --git a/site/public/cards/decorations_forest-divider.title=,time=night,scale=2.webp b/site/public/cards/decorations_forest-divider.title=,time=night,scale=2.webp new file mode 100644 index 00000000..2794b63d Binary files /dev/null and b/site/public/cards/decorations_forest-divider.title=,time=night,scale=2.webp differ diff --git a/site/public/cards/decorations_forest-footer.scale=2,animate=false,time=night.webp b/site/public/cards/decorations_forest-footer.scale=2,animate=false,time=night.webp new file mode 100644 index 00000000..ea66f6be Binary files /dev/null and b/site/public/cards/decorations_forest-footer.scale=2,animate=false,time=night.webp differ diff --git a/site/public/cards/decorations_forest-footer.scale=2,time=night.webp b/site/public/cards/decorations_forest-footer.scale=2,time=night.webp new file mode 100644 index 00000000..731ff0ee Binary files /dev/null and b/site/public/cards/decorations_forest-footer.scale=2,time=night.webp differ diff --git a/site/public/cards/decorations_forest-footer.title=,time=night,scale=2.webp b/site/public/cards/decorations_forest-footer.title=,time=night,scale=2.webp new file mode 100644 index 00000000..731ff0ee Binary files /dev/null and b/site/public/cards/decorations_forest-footer.title=,time=night,scale=2.webp differ diff --git a/site/public/cards/decorations_raven-moon.scale=2,animate=false,time=night.webp b/site/public/cards/decorations_raven-moon.scale=2,animate=false,time=night.webp new file mode 100644 index 00000000..4cf0d051 Binary files /dev/null and b/site/public/cards/decorations_raven-moon.scale=2,animate=false,time=night.webp differ diff --git a/site/public/cards/decorations_raven-moon.title=Connect,scale=2.webp b/site/public/cards/decorations_raven-moon.title=Connect,scale=2.webp new file mode 100644 index 00000000..bbcf64b5 Binary files /dev/null and b/site/public/cards/decorations_raven-moon.title=Connect,scale=2.webp differ diff --git a/site/public/cards/decorations_raven-moon.title=Connect,time=night,scale=2.webp b/site/public/cards/decorations_raven-moon.title=Connect,time=night,scale=2.webp new file mode 100644 index 00000000..427d0daa Binary files /dev/null and b/site/public/cards/decorations_raven-moon.title=Connect,time=night,scale=2.webp differ diff --git a/site/public/cards/decorations_raven-moon.title=Projects,scale=2,time=night.webp b/site/public/cards/decorations_raven-moon.title=Projects,scale=2,time=night.webp new file mode 100644 index 00000000..76222115 Binary files /dev/null and b/site/public/cards/decorations_raven-moon.title=Projects,scale=2,time=night.webp differ diff --git a/site/public/cards/decorations_raven-moon.title=Projects,time=night,scale=2.webp b/site/public/cards/decorations_raven-moon.title=Projects,time=night,scale=2.webp new file mode 100644 index 00000000..76222115 Binary files /dev/null and b/site/public/cards/decorations_raven-moon.title=Projects,time=night,scale=2.webp differ diff --git a/site/public/cards/decorations_reading-nook.scale=2,animate=false,time=night.webp b/site/public/cards/decorations_reading-nook.scale=2,animate=false,time=night.webp new file mode 100644 index 00000000..a31f7ded Binary files /dev/null and b/site/public/cards/decorations_reading-nook.scale=2,animate=false,time=night.webp differ diff --git a/site/public/cards/decorations_reading-nook.title=About~2520Me,scale=2,time=night.webp b/site/public/cards/decorations_reading-nook.title=About~2520Me,scale=2,time=night.webp new file mode 100644 index 00000000..0d03d6b8 Binary files /dev/null and b/site/public/cards/decorations_reading-nook.title=About~2520Me,scale=2,time=night.webp differ diff --git a/site/public/cards/decorations_reading-nook.title=About~2520Me,time=night,scale=2.webp b/site/public/cards/decorations_reading-nook.title=About~2520Me,time=night,scale=2.webp new file mode 100644 index 00000000..0d03d6b8 Binary files /dev/null and b/site/public/cards/decorations_reading-nook.title=About~2520Me,time=night,scale=2.webp differ diff --git a/site/public/cards/decorations_workbench.scale=2,animate=false,time=night.webp b/site/public/cards/decorations_workbench.scale=2,animate=false,time=night.webp new file mode 100644 index 00000000..5415212f Binary files /dev/null and b/site/public/cards/decorations_workbench.scale=2,animate=false,time=night.webp differ diff --git a/site/public/cards/decorations_workbench.title=Technical~2520Skills,scale=2,time=night.webp b/site/public/cards/decorations_workbench.title=Technical~2520Skills,scale=2,time=night.webp new file mode 100644 index 00000000..fd0da9ec Binary files /dev/null and b/site/public/cards/decorations_workbench.title=Technical~2520Skills,scale=2,time=night.webp differ diff --git a/site/public/cards/decorations_workbench.title=Technical~2520Skills,time=night,scale=2.webp b/site/public/cards/decorations_workbench.title=Technical~2520Skills,time=night,scale=2.webp new file mode 100644 index 00000000..fd0da9ec Binary files /dev/null and b/site/public/cards/decorations_workbench.title=Technical~2520Skills,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,hide=html~2Ccss,scale=2.webp b/site/public/cards/languages.user=BaranDev,hide=html~2Ccss,scale=2.webp index 7a1d18b6..0892677e 100644 Binary files a/site/public/cards/languages.user=BaranDev,hide=html~2Ccss,scale=2.webp and b/site/public/cards/languages.user=BaranDev,hide=html~2Ccss,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,labels=typescript~3ATS~2Cpython~3APy,scale=2.webp b/site/public/cards/languages.user=BaranDev,labels=typescript~3ATS~2Cpython~3APy,scale=2.webp index 4f635aef..e405b661 100644 Binary files a/site/public/cards/languages.user=BaranDev,labels=typescript~3ATS~2Cpython~3APy,scale=2.webp and b/site/public/cards/languages.user=BaranDev,labels=typescript~3ATS~2Cpython~3APy,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle,time=day,scale=2.webp index b4d960d2..6ffe78dc 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle,time=night,scale=2.webp index a34e1f3e..6042f090 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp index ecba0f5b..70e17082 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp index 2a72e96d..fb9a6151 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=day,scale=2.webp index 597259d6..6b68254a 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=night,scale=2.webp index 3daaf75b..ea88342a 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle-sky,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=day,scale=2.webp index 8c796a83..9334172d 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=night,scale=2.webp index 908b9604..626bae69 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=castle-storm,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp index d0449f82..7472c99d 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp index e2ce1ef6..355c7078 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=fairy-garden,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=fairy-garden,scale=2.webp index 3da6e098..a817f903 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=fairy-garden,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=fairy-garden,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp index 3da6e098..a817f903 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp index 38cbd1ae..e9d49a86 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest,scale=2.webp index 6b3400f1..1a9c63e0 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest,time=day,scale=2.webp index 6b3400f1..1a9c63e0 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest,time=night,scale=2.webp index d8220d92..cf337933 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp index 8c176299..abf2ec96 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp index 567eff9a..fa312881 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=day,scale=2.webp index ce683043..8353242d 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=night,scale=2.webp index a4917225..d364b6d0 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest-misty,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp index 21510840..2a7ba453 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp index 681afb62..050d46cc 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=day,scale=2.webp index 278f2ed4..7327c607 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=night,scale=2.webp index 58e73f1b..60dca90f 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=guild-hall,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=observatory,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=observatory,time=day,scale=2.webp index cc1e7627..5425a872 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=observatory,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=observatory,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=observatory,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=observatory,time=night,scale=2.webp index 9296f02c..6913782c 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=observatory,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=observatory,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=day,scale=2.webp index 3b8056d4..a2b702cf 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=night,scale=2.webp index 7527a72d..63ecb335 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=rose-garden,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=royal-library,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=royal-library,time=day,scale=2.webp index 0fcb219a..f0eca6bc 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=royal-library,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=royal-library,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=royal-library,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=royal-library,time=night,scale=2.webp index 914e63c3..1b061018 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=royal-library,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=royal-library,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=war-room,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=war-room,time=day,scale=2.webp index 02ca4d3b..cbdecd87 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=war-room,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=war-room,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=war-room,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=war-room,time=night,scale=2.webp index 80533adc..5e0a44a8 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=war-room,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=war-room,time=night,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp index a9f63cde..bc52e9b3 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp differ diff --git a/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp b/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp index 38498172..aab99771 100644 Binary files a/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp and b/site/public/cards/languages.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,hide=prs~2Cstars,scale=2.webp b/site/public/cards/stats.user=BaranDev,hide=prs~2Cstars,scale=2.webp index c49e9612..c1faadd4 100644 Binary files a/site/public/cards/stats.user=BaranDev,hide=prs~2Cstars,scale=2.webp and b/site/public/cards/stats.user=BaranDev,hide=prs~2Cstars,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,labels=commits~3ADeeds~2Cprs~3APacts,scale=2.webp b/site/public/cards/stats.user=BaranDev,labels=commits~3ADeeds~2Cprs~3APacts,scale=2.webp index 1625c3db..bedbd165 100644 Binary files a/site/public/cards/stats.user=BaranDev,labels=commits~3ADeeds~2Cprs~3APacts,scale=2.webp and b/site/public/cards/stats.user=BaranDev,labels=commits~3ADeeds~2Cprs~3APacts,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,note=Open~2520to~2520work~7CDMs~2520open,scale=2.webp b/site/public/cards/stats.user=BaranDev,note=Open~2520to~2520work~7CDMs~2520open,scale=2.webp index 9aac23a1..69186365 100644 Binary files a/site/public/cards/stats.user=BaranDev,note=Open~2520to~2520work~7CDMs~2520open,scale=2.webp and b/site/public/cards/stats.user=BaranDev,note=Open~2520to~2520work~7CDMs~2520open,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scale=1.webp b/site/public/cards/stats.user=BaranDev,scale=1.webp index b19fb6a6..dc358209 100644 Binary files a/site/public/cards/stats.user=BaranDev,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=castle,scale=1.webp index be0311ae..fe4dfd13 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=castle,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle,scale=2.webp index 36dad725..6fa97b66 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle,scale=3,time=night.webp b/site/public/cards/stats.user=BaranDev,scene=castle,scale=3,time=night.webp index 2abb99f7..a2f22047 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle,scale=3,time=night.webp and b/site/public/cards/stats.user=BaranDev,scene=castle,scale=3,time=night.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle,scale=3.webp b/site/public/cards/stats.user=BaranDev,scene=castle,scale=3.webp index ed99196c..1e4f3f43 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle,scale=3.webp and b/site/public/cards/stats.user=BaranDev,scene=castle,scale=3.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle,time=day,scale=2.webp index 36dad725..6fa97b66 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle,time=night,scale=2.webp index a9aea673..8587a6c9 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-aurora,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=castle-aurora,scale=1.webp index d1c3f238..8895c8f5 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-aurora,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-aurora,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp index 180b3d01..8f7c42d4 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp index a655cd25..022d96fc 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-sky,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=castle-sky,scale=1.webp index 5d20255b..0fcbd323 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-sky,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-sky,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=day,scale=2.webp index 74274fed..2fc992bd 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=night,scale=2.webp index 8814bf40..32132623 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-sky,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-storm,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=castle-storm,scale=1.webp index ff6f03f3..3a405ebd 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-storm,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-storm,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=day,scale=2.webp index fcc0b2e3..982552b3 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=night,scale=2.webp index e79f94bd..fbb489b0 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=castle-storm,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,scale=1.webp index dfcf7115..2ac2e5b4 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp index 8f8f0689..722bf773 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp index 5834f1c1..0b087a03 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=cloud-kingdom,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=fairy-garden,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=fairy-garden,scale=1.webp index e3dbcdc4..e187eb6f 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=fairy-garden,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=fairy-garden,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp index 94e99c8e..a2f82eaf 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp index ad10bccd..5125739b 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=fairy-garden,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=forest,scale=1.webp index b19fb6a6..dc358209 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=forest,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest,scale=2.webp index 70196427..7951ac03 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest,time=day,scale=2.webp index 70196427..7951ac03 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest,time=night,scale=2.webp index 66fb0675..d92e7376 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-autumn,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=forest-autumn,scale=1.webp index 3cb16157..559a5d08 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-autumn,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-autumn,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp index 368689a7..9e8108b2 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp index 745ef60e..9fd7232e 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-autumn,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-misty,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=forest-misty,scale=1.webp index 89b1efbd..c563390c 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-misty,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-misty,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=day,scale=2.webp index d82b57b2..22f99254 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=night,scale=2.webp index 4663da3a..29d448c5 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-misty,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,scale=1.webp index 9896b6ca..0a0c4996 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp index 641b82fc..779f1c58 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp index d7986d00..8563dbdb 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=forest-moonlit,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=guild-hall,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=guild-hall,scale=1.webp index 1702e871..0e0bcf91 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=guild-hall,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=guild-hall,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=day,scale=2.webp index 26c32208..4079135f 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=night,scale=2.webp index 9c38e6f2..17b3f42b 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=guild-hall,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=observatory,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=observatory,scale=1.webp index 120e272d..daa44ba3 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=observatory,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=observatory,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=observatory,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=observatory,time=day,scale=2.webp index f0948f5b..bcaa9c02 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=observatory,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=observatory,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=observatory,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=observatory,time=night,scale=2.webp index b384579a..c012d4cc 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=observatory,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=observatory,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=rose-garden,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=rose-garden,scale=1.webp index 17f897d5..cc818e29 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=rose-garden,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=rose-garden,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=day,scale=2.webp index c711f2cc..e912809c 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=night,scale=2.webp index c1d35314..021702aa 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=rose-garden,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=royal-library,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=royal-library,scale=1.webp index 0c8ad5da..e8f6fee2 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=royal-library,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=royal-library,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=royal-library,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=royal-library,time=day,scale=2.webp index fb960134..d98bab1c 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=royal-library,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=royal-library,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=royal-library,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=royal-library,time=night,scale=2.webp index 37ae6213..1cabe633 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=royal-library,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=royal-library,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=war-room,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=war-room,scale=1.webp index 3b9bb846..90c5cf38 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=war-room,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=war-room,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=war-room,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=war-room,time=day,scale=2.webp index 5136c6ed..0ccabdac 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=war-room,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=war-room,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=war-room,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=war-room,time=night,scale=2.webp index e90665ea..faf1cdc0 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=war-room,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=war-room,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=witch-cottage,scale=1.webp b/site/public/cards/stats.user=BaranDev,scene=witch-cottage,scale=1.webp index 73306e94..e4dcb7e2 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=witch-cottage,scale=1.webp and b/site/public/cards/stats.user=BaranDev,scene=witch-cottage,scale=1.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp index f21bff5a..7e07500f 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=day,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp b/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp index 10f763b4..b612905f 100644 Binary files a/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp and b/site/public/cards/stats.user=BaranDev,scene=witch-cottage,time=night,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,subtitle=Full~2520Stack~2520Developer,scale=2.webp b/site/public/cards/stats.user=BaranDev,subtitle=Full~2520Stack~2520Developer,scale=2.webp index 0a6f7600..3cf99708 100644 Binary files a/site/public/cards/stats.user=BaranDev,subtitle=Full~2520Stack~2520Developer,scale=2.webp and b/site/public/cards/stats.user=BaranDev,subtitle=Full~2520Stack~2520Developer,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,text_color=7A1F1F,scale=2.webp b/site/public/cards/stats.user=BaranDev,text_color=7A1F1F,scale=2.webp index ff505f60..1c16a312 100644 Binary files a/site/public/cards/stats.user=BaranDev,text_color=7A1F1F,scale=2.webp and b/site/public/cards/stats.user=BaranDev,text_color=7A1F1F,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,title=My~2520Journey,scale=2.webp b/site/public/cards/stats.user=BaranDev,title=My~2520Journey,scale=2.webp index 42d74e11..a834a772 100644 Binary files a/site/public/cards/stats.user=BaranDev,title=My~2520Journey,scale=2.webp and b/site/public/cards/stats.user=BaranDev,title=My~2520Journey,scale=2.webp differ diff --git a/site/public/cards/stats.user=BaranDev,values=level~3AArchmage~2Ccommits~3ALots,scale=2.webp b/site/public/cards/stats.user=BaranDev,values=level~3AArchmage~2Ccommits~3ALots,scale=2.webp index 9da26d59..042b2c12 100644 Binary files a/site/public/cards/stats.user=BaranDev,values=level~3AArchmage~2Ccommits~3ALots,scale=2.webp and b/site/public/cards/stats.user=BaranDev,values=level~3AArchmage~2Ccommits~3ALots,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,animate=false,scale=2.webp b/site/public/cards/streak.user=BaranDev,animate=false,scale=2.webp index 645bbf5f..c2eb36ff 100644 Binary files a/site/public/cards/streak.user=BaranDev,animate=false,scale=2.webp and b/site/public/cards/streak.user=BaranDev,animate=false,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,outline_color=3B1F5C,scale=2.webp b/site/public/cards/streak.user=BaranDev,outline_color=3B1F5C,scale=2.webp index f131fa2b..f4a696a0 100644 Binary files a/site/public/cards/streak.user=BaranDev,outline_color=3B1F5C,scale=2.webp and b/site/public/cards/streak.user=BaranDev,outline_color=3B1F5C,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle,time=day,fire=themed,scale=2.webp index c84a89a7..8d06faf0 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle,time=night,fire=themed,scale=2.webp index 58220c1e..9acc5964 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=day,fire=themed,scale=2.webp index 51867e74..53bf35ee 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,fire=themed,scale=2.webp index 006f6e50..80562314 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp index 6f30c957..6648c025 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle-aurora,time=night,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=day,fire=themed,scale=2.webp index 9fa6adfd..f4036c96 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=night,fire=themed,scale=2.webp index 45f443f2..20c18633 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle-sky,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=day,fire=themed,scale=2.webp index f8920330..82d7a984 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=night,fire=themed,scale=2.webp index 6981a362..399c5477 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=castle-storm,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=classic,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=classic,scale=2.webp index 1322a816..7fac4807 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=classic,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=classic,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=themed,scale=2.webp index d673214f..6bf6ed85 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=night,fire=themed,scale=2.webp index 76d60711..526487be 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=cloud-kingdom,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=day,fire=themed,scale=2.webp index cf7a0aba..de7204b3 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=night,fire=themed,scale=2.webp index 8d3003cc..46dbe6c4 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=fairy-garden,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest,scale=2.webp index 6c767a00..6f62a065 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest,time=day,fire=themed,scale=2.webp index 5ce672de..79843051 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest,time=night,fire=themed,scale=2.webp index 2b0f61c4..5a01407f 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=day,fire=themed,scale=2.webp index 0684b1a4..f6299b31 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=night,fire=themed,scale=2.webp index 9daeb05a..8c3cdcdd 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest-autumn,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=day,fire=themed,scale=2.webp index e55f07b7..84b69474 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=night,fire=themed,scale=2.webp index 51434bc5..570af2a2 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest-misty,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=day,fire=themed,scale=2.webp index 34350d06..52ee3bb5 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=night,fire=themed,scale=2.webp index dae61861..343b5e56 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=forest-moonlit,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=day,fire=themed,scale=2.webp index 989debd9..b897e693 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=night,fire=themed,scale=2.webp index bd09a623..b6937a2e 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=guild-hall,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=observatory,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=observatory,time=day,fire=themed,scale=2.webp index 10873d91..cccf0423 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=observatory,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=observatory,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=classic,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=classic,scale=2.webp index fb337fc9..a2bffc57 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=classic,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=classic,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=themed,scale=2.webp index aa4bc358..46afb095 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=observatory,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=day,fire=themed,scale=2.webp index d6e78ecc..b0f15011 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=night,fire=themed,scale=2.webp index f93f03b9..a49c7e74 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=rose-garden,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=royal-library,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=royal-library,time=day,fire=themed,scale=2.webp index 1319ba23..1feff39e 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=royal-library,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=royal-library,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=royal-library,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=royal-library,time=night,fire=themed,scale=2.webp index 1da065f1..4f163677 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=royal-library,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=royal-library,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=war-room,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=war-room,time=day,fire=themed,scale=2.webp index db7ba6a3..f8cd76a3 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=war-room,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=war-room,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=war-room,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=war-room,time=night,fire=themed,scale=2.webp index 1b4a420d..cff4103b 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=war-room,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=war-room,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=day,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=day,fire=themed,scale=2.webp index 5be898ab..d7bdb696 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=day,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=day,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=night,fire=themed,scale=2.webp b/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=night,fire=themed,scale=2.webp index 1d68fa63..be9ec0bf 100644 Binary files a/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=night,fire=themed,scale=2.webp and b/site/public/cards/streak.user=BaranDev,scene=witch-cottage,time=night,fire=themed,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,title_color=FF6B35,scale=2.webp b/site/public/cards/streak.user=BaranDev,title_color=FF6B35,scale=2.webp index 2fb33e97..8c3d1af5 100644 Binary files a/site/public/cards/streak.user=BaranDev,title_color=FF6B35,scale=2.webp and b/site/public/cards/streak.user=BaranDev,title_color=FF6B35,scale=2.webp differ diff --git a/site/public/cards/streak.user=BaranDev,values=current~3AForever,scale=2.webp b/site/public/cards/streak.user=BaranDev,values=current~3AForever,scale=2.webp index 00c9ef18..286984eb 100644 Binary files a/site/public/cards/streak.user=BaranDev,values=current~3AForever,scale=2.webp and b/site/public/cards/streak.user=BaranDev,values=current~3AForever,scale=2.webp differ diff --git a/src/decorations.rs b/src/decorations.rs index d11244e5..b148b7fd 100644 --- a/src/decorations.rs +++ b/src/decorations.rs @@ -8,7 +8,7 @@ use crate::scene::{Align, Assets}; use crate::widgets::Drawn; use std::collections::HashMap; -pub const OPTIONS: [&str; 6] = ["title", "title_color", "outline_color", "truncate", "animate", "scale"]; +pub const OPTIONS: [&str; 7] = ["title", "title_color", "outline_color", "truncate", "animate", "scale", "time"]; #[derive(Debug, Clone, PartialEq)] pub struct Options { @@ -18,11 +18,13 @@ pub struct Options { pub truncate: bool, pub animate: bool, pub scale: u8, + /// `time=night`: the night painting, for a dark theme. + pub night: bool, } impl Default for Options { fn default() -> Options { - Options { title: String::new(), title_color: None, outline_color: None, truncate: true, animate: true, scale: 5 } + Options { title: String::new(), title_color: None, outline_color: None, truncate: true, animate: true, scale: 5, night: false } } } @@ -38,6 +40,11 @@ pub fn parse(q: &HashMap) -> Result { Some("false") | Some("0") => Ok(false), Some(v) => Err(format!("Unknown {k} '{}' (use true or false)", clip(v))), }; + o.night = match q.get("time").map(String::as_str) { + None | Some("day") => false, + Some("night") => true, + Some(t) => return Err(format!("Unknown time '{}' (use day or night)", clip(t))), + }; o.truncate = switch("truncate")?; o.animate = switch("animate")?; if let Some(v) = q.get("scale") { @@ -58,7 +65,8 @@ pub fn parse(q: &HashMap) -> Result { /// each frame shows. None for an unknown name. pub fn render(assets: &Assets, name: &str, o: &Options) -> Option<(Drawn, u16)> { let d = assets.decorations.get(name)?; - let mut frames = if o.animate { d.frames.clone() } else { d.frames[..1].to_vec() }; + let painting = if o.night && !d.night.is_empty() { &d.night } else { &d.frames }; + let mut frames = if o.animate { painting.clone() } else { painting[..1].to_vec() }; let (w, h) = (frames[0].w, frames[0].h); let mut title = (o.scale >= 2).then(|| Image::new(2 * w, 2 * h)); let line = if o.truncate { fit(&assets.title_font, &o.title, d.title.w) } else { o.title.clone() }; @@ -98,6 +106,8 @@ mod tests { assert!(e.starts_with("Decorations take title,") && e.ends_with("not 'user'"), "{e}"); assert!(parse(&q(&[("scale", "9")])).unwrap_err().starts_with("Unknown scale '9'")); assert!(parse(&q(&[("outline_color", "red")])).unwrap_err().starts_with("Bad outline_color")); + assert!(parse(&q(&[("time", "night")])).unwrap().night); + assert!(parse(&q(&[("time", "noon")])).unwrap_err().starts_with("Unknown time 'noon'")); } #[test] @@ -115,6 +125,11 @@ mod tests { assert!(coarse.title.is_none() && coarse.frames.len() == 1 && coarse.frames[0] != plain.frames[0], "{name}: scale 1"); } assert!(render(&a, "nope", &Options::default()).is_none()); + for (name, d) in &a.decorations { + assert_eq!(d.night.len(), d.frames.len(), "{name} has a night painting"); + let (night, _) = render(&a, name, &Options { night: true, ..Default::default() }).unwrap(); + assert_ne!(night.frames[0], render(&a, name, &Options::default()).unwrap().0.frames[0], "{name}: night differs"); + } } #[test] diff --git a/src/scene.rs b/src/scene.rs index 5c04816b..4517d0b7 100644 --- a/src/scene.rs +++ b/src/scene.rs @@ -100,6 +100,8 @@ struct DecorationFile { /// and in which inks. pub struct Decoration { pub frames: Vec, + /// `-night.png`, the same frames at night; empty when the decoration has no night painting yet. + pub night: Vec, pub frame_ms: u16, pub title: DecorationTitle, pub title_ink: Rgb, @@ -238,26 +240,34 @@ fn painting_image(path: &str, png: &[u8]) -> Result { } } -/// decorations//decoration.json with its frames decorations//0.png, 1.png and so on. +/// decorations//decoration.json with its frames decorations//0.png, 1.png and so on, and the night +/// frames 0-night.png, 1-night.png, one for each day frame. fn decorations(files: &[(&str, &'static [u8])]) -> Result, BoxError> { let mut out = HashMap::new(); for (path, bytes) in files { let Some(name) = path.strip_prefix("decorations/").and_then(|p| p.strip_suffix("/decoration.json")) else { continue }; let df: DecorationFile = serde_json::from_slice(bytes)?; let ink = |k: &str| df.ink.get(k).ok_or(format!("{path}: ink {k:?} missing")).map(|v| hex(v)); - let mut frames = Vec::new(); - while let Some((_, b)) = files.iter().find(|(p, _)| *p == format!("decorations/{name}/{}.png", frames.len())) { - let img = Image::decode(b)?; - if img.w != OW || frames.first().is_some_and(|f: &Image| f.h != img.h) { - return Err(format!("{path}: frames must be {OW} wide and all the same height").into()); + let load = |suffix: &str| -> Result, BoxError> { + let mut frames = Vec::new(); + while let Some((_, b)) = files.iter().find(|(p, _)| *p == format!("decorations/{name}/{}{suffix}.png", frames.len())) { + let img = Image::decode(b)?; + if img.w != OW || frames.first().is_some_and(|f: &Image| f.h != img.h) { + return Err(format!("{path}: frames must be {OW} wide and all the same height").into()); + } + frames.push(img); } - frames.push(img); - } + Ok(frames) + }; + let (frames, night) = (load("")?, load("-night")?); if frames.is_empty() { return Err(format!("{path}: no frames (0.png)").into()); } + if !night.is_empty() && (night.len() != frames.len() || night[0].h != frames[0].h) { + return Err(format!("{path}: night frames must match the day frames in number and size").into()); + } let (title_ink, title_edge) = (ink("title")??, ink("title_edge")??); - out.insert(name.to_string(), Decoration { frames, frame_ms: df.frame_ms, title: df.title, title_ink, title_edge }); + out.insert(name.to_string(), Decoration { frames, night, frame_ms: df.frame_ms, title: df.title, title_ink, title_edge }); } Ok(out) }