players.ts

 1import { SingleColorToken } from "@tokens-studio/types"
 2import { ColorScheme, Players } from "../../common"
 3import { colorToken } from "./token"
 4
 5export type PlayerToken = Record<"selection" | "cursor", SingleColorToken>
 6
 7export type PlayersToken = Record<keyof Players, PlayerToken>
 8
 9function buildPlayerToken(colorScheme: ColorScheme, index: number): PlayerToken {
10
11    const playerNumber = index.toString() as keyof Players
12
13    return {
14        selection: colorToken(`player${index}Selection`, colorScheme.players[playerNumber].selection),
15        cursor: colorToken(`player${index}Cursor`, colorScheme.players[playerNumber].cursor),
16    }
17}
18
19export const playersToken = (colorScheme: ColorScheme): PlayersToken => ({
20    "0": buildPlayerToken(colorScheme, 0),
21    "1": buildPlayerToken(colorScheme, 1),
22    "2": buildPlayerToken(colorScheme, 2),
23    "3": buildPlayerToken(colorScheme, 3),
24    "4": buildPlayerToken(colorScheme, 4),
25    "5": buildPlayerToken(colorScheme, 5),
26    "6": buildPlayerToken(colorScheme, 6),
27    "7": buildPlayerToken(colorScheme, 7)
28})