diff --git a/src/board/loaders/PiecesCache.ts b/src/board/loaders/PiecesCache.ts index 6460380..45e8aaa 100644 --- a/src/board/loaders/PiecesCache.ts +++ b/src/board/loaders/PiecesCache.ts @@ -2,24 +2,33 @@ import { PieceType, PieceColor, Piece } from "../../types"; import piecesSets from "../styles-pieces"; import loadImage from "./loadImage"; -const images: Map = new Map(); +let style: keyof typeof piecesSets | null = null; +let piecesImages: Map = new Map(); const PiecesCache = { + async load(piecesSetName: keyof typeof piecesSets) { + await Promise.all( + Object.entries(piecesSets[piecesSetName]).map(([key, src]) => { + return loadImage(src).then((img) => { + piecesImages.set(key, img); + }); + }) + ); + }, + async get( piecesSetName: keyof typeof piecesSets, pieceName: PieceType, pieceColor: PieceColor ) { - const piece = `${pieceName}${pieceColor}` as Piece; - const key = `${piecesSetName}_${piece}`; - if (!images.has(key)) { - const pieceSrc = piecesSets[piecesSetName][piece]; - const img = await loadImage(pieceSrc); - - images.set(key, img); + if (style !== piecesSetName) { + await this.load(piecesSetName); + style = piecesSetName; } - return images.get(key) as HTMLImageElement; + const piece = `${pieceName}${pieceColor}` as Piece; + + return piecesImages.get(piece) as HTMLImageElement; }, }; diff --git a/src/board/styles-board/index.ts b/src/board/styles-board/index.ts index c742f24..83bd991 100644 --- a/src/board/styles-board/index.ts +++ b/src/board/styles-board/index.ts @@ -19,8 +19,6 @@ import mud from "./solid/mud"; import rose from "./solid/rose"; import avocado from "./solid/avocado"; -// import flagUkraine from "./solid/flag-ukraine"; - import smoothSunset from "./gradient/smooth-sunset"; import smoothSummer from "./gradient/smooth-summer"; import smoothSpring from "./gradient/smooth-spring"; @@ -65,8 +63,6 @@ const styles = { botez, avocado, - // flagUkraine, - smoothSunset, smoothSummer, smoothSpring, diff --git a/src/board/styles-board/solid/flag-ukraine.ts b/src/board/styles-board/solid/flag-ukraine.ts deleted file mode 100644 index 54b3e7a..0000000 --- a/src/board/styles-board/solid/flag-ukraine.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Style } from "../../../types"; - -const style: Style = { - name: "Ukraine", - category: "solid", - background: { - type: "solid", - data: { - color: "transparent", - }, - }, - dark: { - type: "solid", - data: { - color: "#3e81c9", - }, - }, - light: { - type: "solid", - data: { - color: "#FFEB82", - }, - }, - moveIndicator: { - type: "color", - data: "#00ff0055", - }, - border: { - type: "solid", - data: { - color: "#003D7E", - }, - }, - coords: { - onLight: "#001D3C", - onDark: "#fff", - onBorder: "#FED500", - }, -}; - -export default style;