From dffcdd57743a54d4817709d06ef9e59261791529 Mon Sep 17 00:00:00 2001
From: phuetz <83292498+phuetz@users.noreply.github.com>
Date: Sun, 15 Jun 2025 07:47:22 +0200
Subject: [PATCH] docs: explain how to add 3d piece set
---
.gitignore | 8 ++++++++
TODO.MD | 2 +-
public/3d-pieces-png/README.md | 21 +++++++++++++++++++++
src/components/ChessMasterDatabase.tsx | 2 ++
src/components/ChessboardDisplay.tsx | 20 +++++++++++++++++++-
src/components/PieceSetSelector.tsx | 21 +++++++++++++++++++++
src/screens/Tournaments.tsx | 19 +++++++++++++++++--
src/store/useChessStore.ts | 18 ++++++++++++++++++
8 files changed, 107 insertions(+), 4 deletions(-)
create mode 100644 public/3d-pieces-png/README.md
create mode 100644 src/components/PieceSetSelector.tsx
diff --git a/.gitignore b/.gitignore
index a547bf3..cb2ca23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,11 @@ dist-ssr
*.njsproj
*.sln
*.sw?
+
+# Playwright reports
+playwright-report
+test-results
+
+
+# 3D piece images
+public/3d-pieces-png/*.png
diff --git a/TODO.MD b/TODO.MD
index 789006d..1332f98 100644
--- a/TODO.MD
+++ b/TODO.MD
@@ -20,7 +20,7 @@ Liste d'améliorations inspirées de Chess.com pour rendre l'application plus co
## Expérience utilisateur
- **Notifications** *(implémenté)* : alertes pour les défis reçus, les débuts de tournois ou l'arrivée de nouveaux puzzles.
-- **Personnalisation** : thèmes d'échiquier supplémentaires et options pour les pièces, inspirés de ceux de Chess.com.
+- **Personnalisation** *(implémenté)* : thèmes d'échiquier supplémentaires et options pour les pièces, inspirés de ceux de Chess.com.
- **Progression et succès** : badges et objectifs à débloquer en fonction des activités (puzzles résolus, parties jouées, etc.).
## Autres idées
diff --git a/public/3d-pieces-png/README.md b/public/3d-pieces-png/README.md
new file mode 100644
index 0000000..c32a740
--- /dev/null
+++ b/public/3d-pieces-png/README.md
@@ -0,0 +1,21 @@
+# 3D Piece Set Installation
+
+Les images des pièces 3D ne sont pas incluses dans le dépôt pour alléger le projet. Téléchargez-les depuis le dépôt open source de Lichess ou une autre source libre, puis placez-les dans ce dossier.
+
+## Téléchargement
+
+Vous pouvez par exemple récupérer le set "Staunty" de Lichess :
+https://github.com/lichess-org/lila/tree/master/public/piece/staunty/png/150
+
+Téléchargez les fichiers suivants :
+
+```
+bB.png bK.png bN.png bP.png bQ.png bR.png
+wB.png wK.png wN.png wP.png wQ.png wR.png
+```
+
+## Installation
+
+1. Créez le dossier `public/3d-pieces-png` s'il n'existe pas.
+2. Copiez les 12 fichiers PNG téléchargés dans ce dossier.
+3. Relancez l'application puis choisissez « 3D » dans le sélecteur de sets de pièces.
diff --git a/src/components/ChessMasterDatabase.tsx b/src/components/ChessMasterDatabase.tsx
index e7222c3..c9b21e0 100644
--- a/src/components/ChessMasterDatabase.tsx
+++ b/src/components/ChessMasterDatabase.tsx
@@ -7,6 +7,7 @@ import LazyChessOpenings from './LazyChessOpenings';
import DragDropUpload from './DragDropUpload';
import ThemeSelector from './ThemeSelector';
import BoardThemeSelector from './BoardThemeSelector';
+import PieceSetSelector from './PieceSetSelector';
import AccessibleModal from './AccessibleModal';
import { toast } from 'react-toastify';
import { ClipboardCheck as ChessBoard, Search, BookOpen, Clock, Download, Upload, BookOpen as OpeningIcon, HelpCircle, BarChart3, GitCompare, Users as PlayersIcon, Zap, Puzzle, Timer, Calendar, Swords, Trophy } from 'lucide-react';
@@ -137,6 +138,7 @@ const ChessMasterDatabase = () => {