feat(poker): add card assets and wire them up

This commit is contained in:
2026-08-09 21:46:30 +08:00
parent 4d14120d54
commit eefce5487d
5 changed files with 73 additions and 56 deletions
+7
View File
@@ -0,0 +1,7 @@
# Game assets are large binaries; store them in Git LFS.
games/**/*.png filter=lfs diff=lfs merge=lfs -text
games/**/*.jpg filter=lfs diff=lfs merge=lfs -text
games/**/*.jpeg filter=lfs diff=lfs merge=lfs -text
games/**/*.webp filter=lfs diff=lfs merge=lfs -text
games/**/*.glb filter=lfs diff=lfs merge=lfs -text
games/**/*.gltf filter=lfs diff=lfs merge=lfs -text
Binary file not shown.
Binary file not shown.
Binary file not shown.
+57 -56
View File
@@ -16,14 +16,15 @@ language: en
## Parts ## Parts
A single `card` part expanded into 52 cards by the `$variants` CSV. Each row A single `card` part expanded into 52 cards by the `$variants` CSV. Each row
picks a cell from a `13×5` sprite sheet — 13 ranks across, 4 suits down, and picks a cell from the `13×4` face sheet (`cards-13x4.jpg`) — 13 ranks across,
a shared card-back row at index 4. 4 suits down. All cards share the same back from the `4×1` back sheet
(`back-4x1.png`).
```yaml file=parts/cards.yaml ```yaml file=parts/cards.yaml
role: part role: part
type: card type: card
face: ./assets/cards.png face: ./cards-13x4.jpg
back: ./assets/cards.png back: ./back-4x1.png
size: [63, 88, 3] size: [63, 88, 3]
fillet: 2 fillet: 2
$variants: ./cards.csv $variants: ./cards.csv
@@ -32,58 +33,58 @@ $variants: ./cards.csv
```csv file=parts/cards.csv ```csv file=parts/cards.csv
id,rank,suit,faceCrop,backCrop id,rank,suit,faceCrop,backCrop
string,string,string,[number;number;number;number],[number;number;number;number] string,string,string,[number;number;number;number],[number;number;number;number]
2s,2,spades,[0;0;13;5],[0;4;13;5] 2s,2,spades,[0;0;13;4],[0;0;4;1]
3s,3,spades,[1;0;13;5],[0;4;13;5] 3s,3,spades,[1;0;13;4],[0;0;4;1]
4s,4,spades,[2;0;13;5],[0;4;13;5] 4s,4,spades,[2;0;13;4],[0;0;4;1]
5s,5,spades,[3;0;13;5],[0;4;13;5] 5s,5,spades,[3;0;13;4],[0;0;4;1]
6s,6,spades,[4;0;13;5],[0;4;13;5] 6s,6,spades,[4;0;13;4],[0;0;4;1]
7s,7,spades,[5;0;13;5],[0;4;13;5] 7s,7,spades,[5;0;13;4],[0;0;4;1]
8s,8,spades,[6;0;13;5],[0;4;13;5] 8s,8,spades,[6;0;13;4],[0;0;4;1]
9s,9,spades,[7;0;13;5],[0;4;13;5] 9s,9,spades,[7;0;13;4],[0;0;4;1]
10s,10,spades,[8;0;13;5],[0;4;13;5] 10s,10,spades,[8;0;13;4],[0;0;4;1]
js,J,spades,[9;0;13;5],[0;4;13;5] js,J,spades,[9;0;13;4],[0;0;4;1]
qs,Q,spades,[10;0;13;5],[0;4;13;5] qs,Q,spades,[10;0;13;4],[0;0;4;1]
ks,K,spades,[11;0;13;5],[0;4;13;5] ks,K,spades,[11;0;13;4],[0;0;4;1]
as,A,spades,[12;0;13;5],[0;4;13;5] as,A,spades,[12;0;13;4],[0;0;4;1]
2h,2,hearts,[0;1;13;5],[0;4;13;5] 2h,2,hearts,[0;1;13;4],[0;0;4;1]
3h,3,hearts,[1;1;13;5],[0;4;13;5] 3h,3,hearts,[1;1;13;4],[0;0;4;1]
4h,4,hearts,[2;1;13;5],[0;4;13;5] 4h,4,hearts,[2;1;13;4],[0;0;4;1]
5h,5,hearts,[3;1;13;5],[0;4;13;5] 5h,5,hearts,[3;1;13;4],[0;0;4;1]
6h,6,hearts,[4;1;13;5],[0;4;13;5] 6h,6,hearts,[4;1;13;4],[0;0;4;1]
7h,7,hearts,[5;1;13;5],[0;4;13;5] 7h,7,hearts,[5;1;13;4],[0;0;4;1]
8h,8,hearts,[6;1;13;5],[0;4;13;5] 8h,8,hearts,[6;1;13;4],[0;0;4;1]
9h,9,hearts,[7;1;13;5],[0;4;13;5] 9h,9,hearts,[7;1;13;4],[0;0;4;1]
10h,10,hearts,[8;1;13;5],[0;4;13;5] 10h,10,hearts,[8;1;13;4],[0;0;4;1]
jh,J,hearts,[9;1;13;5],[0;4;13;5] jh,J,hearts,[9;1;13;4],[0;0;4;1]
qh,Q,hearts,[10;1;13;5],[0;4;13;5] qh,Q,hearts,[10;1;13;4],[0;0;4;1]
kh,K,hearts,[11;1;13;5],[0;4;13;5] kh,K,hearts,[11;1;13;4],[0;0;4;1]
ah,A,hearts,[12;1;13;5],[0;4;13;5] ah,A,hearts,[12;1;13;4],[0;0;4;1]
2d,2,diamonds,[0;2;13;5],[0;4;13;5] 2d,2,diamonds,[0;2;13;4],[0;0;4;1]
3d,3,diamonds,[1;2;13;5],[0;4;13;5] 3d,3,diamonds,[1;2;13;4],[0;0;4;1]
4d,4,diamonds,[2;2;13;5],[0;4;13;5] 4d,4,diamonds,[2;2;13;4],[0;0;4;1]
5d,5,diamonds,[3;2;13;5],[0;4;13;5] 5d,5,diamonds,[3;2;13;4],[0;0;4;1]
6d,6,diamonds,[4;2;13;5],[0;4;13;5] 6d,6,diamonds,[4;2;13;4],[0;0;4;1]
7d,7,diamonds,[5;2;13;5],[0;4;13;5] 7d,7,diamonds,[5;2;13;4],[0;0;4;1]
8d,8,diamonds,[6;2;13;5],[0;4;13;5] 8d,8,diamonds,[6;2;13;4],[0;0;4;1]
9d,9,diamonds,[7;2;13;5],[0;4;13;5] 9d,9,diamonds,[7;2;13;4],[0;0;4;1]
10d,10,diamonds,[8;2;13;5],[0;4;13;5] 10d,10,diamonds,[8;2;13;4],[0;0;4;1]
jd,J,diamonds,[9;2;13;5],[0;4;13;5] jd,J,diamonds,[9;2;13;4],[0;0;4;1]
qd,Q,diamonds,[10;2;13;5],[0;4;13;5] qd,Q,diamonds,[10;2;13;4],[0;0;4;1]
kd,K,diamonds,[11;2;13;5],[0;4;13;5] kd,K,diamonds,[11;2;13;4],[0;0;4;1]
ad,A,diamonds,[12;2;13;5],[0;4;13;5] ad,A,diamonds,[12;2;13;4],[0;0;4;1]
2c,2,clubs,[0;3;13;5],[0;4;13;5] 2c,2,clubs,[0;3;13;4],[0;0;4;1]
3c,3,clubs,[1;3;13;5],[0;4;13;5] 3c,3,clubs,[1;3;13;4],[0;0;4;1]
4c,4,clubs,[2;3;13;5],[0;4;13;5] 4c,4,clubs,[2;3;13;4],[0;0;4;1]
5c,5,clubs,[3;3;13;5],[0;4;13;5] 5c,5,clubs,[3;3;13;4],[0;0;4;1]
6c,6,clubs,[4;3;13;5],[0;4;13;5] 6c,6,clubs,[4;3;13;4],[0;0;4;1]
7c,7,clubs,[5;3;13;5],[0;4;13;5] 7c,7,clubs,[5;3;13;4],[0;0;4;1]
8c,8,clubs,[6;3;13;5],[0;4;13;5] 8c,8,clubs,[6;3;13;4],[0;0;4;1]
9c,9,clubs,[7;3;13;5],[0;4;13;5] 9c,9,clubs,[7;3;13;4],[0;0;4;1]
10c,10,clubs,[8;3;13;5],[0;4;13;5] 10c,10,clubs,[8;3;13;4],[0;0;4;1]
jc,J,clubs,[9;3;13;5],[0;4;13;5] jc,J,clubs,[9;3;13;4],[0;0;4;1]
qc,Q,clubs,[10;3;13;5],[0;4;13;5] qc,Q,clubs,[10;3;13;4],[0;0;4;1]
kc,K,clubs,[11;3;13;5],[0;4;13;5] kc,K,clubs,[11;3;13;4],[0;0;4;1]
ac,A,clubs,[12;3;13;5],[0;4;13;5] ac,A,clubs,[12;3;13;4],[0;0;4;1]
``` ```
## Board ## Board