- Rename assets/themes/default/ → assets/themes/dark/; update theme.ron id/name to "dark"/"Dark" - Rename all DEFAULT_THEME_* constants → DARK_THEME_* and default_theme_svg_bytes / populate_embedded_default_theme → dark_* - Add bundled_theme_url() helper for URL resolution without needing the registry (used by Startup systems where ordering isn't guaranteed) - Registry now lists Classic first (new player default), Dark second - settings.rs default_theme_id() returns "classic" so fresh installs start on the white card theme Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.7 KiB
Default theme — provenance
This directory is the bundled-default card theme that ships embedded in
the binary via Bevy's embedded_asset! macro (see
solitaire_engine/src/assets/sources.rs). At runtime its files are
addressable as embedded://solitaire_engine/assets/themes/default/....
Current state (Phase 3)
The theme.ron manifest in this directory lists all 52 face slots plus
a back slot, but the referenced SVG files do not yet exist. The
manifest is intentionally a stub so that:
embedded_asset!has a real file to bundle (the manifest itself).ThemeManifest::validateaccepts the manifest (it requires all 52 faces to be listed by name).- The
embedded://asset source can be source-registered and queried without runtime errors during Phase 3.
The actual SVG art will be added when the project swaps in the
hayeah/playing-cards-assets artwork — see the implementation plan in
/CARD_PLAN.md. At that point, every .svg filename listed in
theme.ron's faces map (and back.svg) must be added here, and each
new file needs a corresponding embedded_asset!(app, ...) call in
solitaire_engine/src/assets/sources.rs::register_default_theme.
How to add files to the bundled default theme
For each new file you drop into this directory:
- Drop the file under
solitaire_engine/assets/themes/default/. - Add one line to
register_default_themeinsolitaire_engine/src/assets/sources.rsof the form:(The path is relative toembedded_asset!(app, "../../assets/themes/default/<filename>");sources.rs, which lives insolitaire_engine/src/assets/.) - Update this file with the licence and origin of the new asset.
Licence
To be filled in once real artwork lands.