20b7a617e0
Build and Deploy / build-and-push (push) Successful in 33s
- 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>
44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
# 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:
|
|
|
|
1. `embedded_asset!` has a real file to bundle (the manifest itself).
|
|
2. `ThemeManifest::validate` accepts the manifest (it requires all 52
|
|
faces to be listed by name).
|
|
3. 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:
|
|
|
|
1. Drop the file under `solitaire_engine/assets/themes/default/`.
|
|
2. Add one line to `register_default_theme` in
|
|
`solitaire_engine/src/assets/sources.rs` of the form:
|
|
```rust
|
|
embedded_asset!(app, "../../assets/themes/default/<filename>");
|
|
```
|
|
(The path is relative to `sources.rs`, which lives in
|
|
`solitaire_engine/src/assets/`.)
|
|
3. Update this file with the licence and origin of the new asset.
|
|
|
|
## Licence
|
|
|
|
To be filled in once real artwork lands.
|