feat(assets): swap card art to hayeah/playing-cards-assets (MIT)
Replaces the previous xCards-derived card faces (LGPL-3.0) with
hayeah/playing-cards-assets, which itself derives from the
public-domain vector-playing-cards Google Code project. The whole
package is MIT now — see CREDITS.md for the new attribution table
and the simpler license summary.
solitaire_engine/assets/themes/default/
52 face SVGs (clubs/diamonds/hearts/spades × ace/2-10/jack/queen/
king) — copied from hayeah, renamed to the canonical
`{suit}_{rank}.svg` form `CardKey::manifest_name` produces. The
bundled default theme manifest references each by the same name.
back.svg — original midnight-purple-themed card back, hand-written
to match the project's design tokens (BG_BASE / BG_ELEVATED /
ACCENT_PRIMARY / ACCENT_SECONDARY). MIT, original work.
assets/cards/faces/{RANK}{SUIT}.png
52 PNGs regenerated from the new SVGs at 750-tall via resvg 0.47.
These remain the legacy backwards-compat path that
`card_plugin::load_card_images` reads at startup; once the runtime
theme system finishes loading the embedded default theme, the
CardImageSet's face handles are overwritten with the SVG-rendered
variants and these PNGs become moot. Keeping them in place avoids
a brief blank-card flash before the async theme load completes.
solitaire_engine/src/assets/sources.rs
embed_default_svg!() macro + DEFAULT_THEME_SVGS table that bundles
every face + the back into the binary at compile time via
include_bytes!. populate_embedded_default_theme now iterates the
table so the EmbeddedAssetRegistry is populated under the same
asset paths the manifest references.
CREDITS.md
License summary collapses from MIT + LGPL-3.0 + OFL-1.1 to MIT +
OFL-1.1 (the OFL still applies to FiraMono). The hayeah upstream
URL replaces the previously-blank xCards entry.
cargo build / clippy --workspace --all-targets -- -D warnings / test
--workspace all green (960 passed, 0 failed, 9 ignored).
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Default theme card back — Solitaire Quest's midnight-purple palette.
|
||||
Original work, MIT-licensed alongside the rest of this project.
|
||||
Aspect 2:3 to match the face SVGs from hayeah/playing-cards-assets.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 300" width="200" height="300">
|
||||
<defs>
|
||||
<pattern id="diamonds" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
|
||||
<rect x="0" y="0" width="20" height="20" fill="#1A0F2E"/>
|
||||
<path d="M 10 0 L 20 10 L 10 20 L 0 10 Z"
|
||||
fill="none" stroke="#3A2580" stroke-width="1"/>
|
||||
<circle cx="10" cy="10" r="1" fill="#FFD23F"/>
|
||||
</pattern>
|
||||
</defs>
|
||||
|
||||
<!-- Outer card surface with a midnight-purple base + diamond lattice -->
|
||||
<rect x="0" y="0" width="200" height="300" rx="12" ry="12" fill="#1A0F2E"/>
|
||||
<rect x="6" y="6" width="188" height="288" rx="9" ry="9" fill="url(#diamonds)"/>
|
||||
|
||||
<!-- Bordered inset so the lattice has a clear edge -->
|
||||
<rect x="14" y="14" width="172" height="272" rx="6" ry="6"
|
||||
fill="none" stroke="#FFD23F" stroke-width="1.5" opacity="0.85"/>
|
||||
|
||||
<!-- Centred diamond medallion -->
|
||||
<g transform="translate(100 150)">
|
||||
<path d="M 0 -42 L 42 0 L 0 42 L -42 0 Z" fill="#2D1B69" stroke="#FFD23F" stroke-width="2"/>
|
||||
<path d="M 0 -22 L 22 0 L 0 22 L -22 0 Z" fill="#3A2580" stroke="#FFD23F" stroke-width="1"/>
|
||||
<circle cx="0" cy="0" r="4" fill="#FFD23F"/>
|
||||
</g>
|
||||
|
||||
<!-- Corner pips picking up the magenta secondary accent so the back
|
||||
still reads as part of the design system at a glance -->
|
||||
<g fill="#FF6B9D">
|
||||
<circle cx="22" cy="22" r="2.5"/>
|
||||
<circle cx="178" cy="22" r="2.5"/>
|
||||
<circle cx="22" cy="278" r="2.5"/>
|
||||
<circle cx="178" cy="278" r="2.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
Reference in New Issue
Block a user