123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- import i18n from "../i18n";
- import { uid } from "../utils";
- import Rect from "./Rect";
- import Cube from "./Cube";
- import Round from "./Round";
- import Token from "./Token";
- import Image from "./Image";
- import Counter from "./Counter";
- import Dice from "./Dice";
- import DiceImage from "./DiceImage";
- import Note from "./Note";
- import Zone from "./Zone";
- import Meeple from "./Meeple";
- import Jewel from "./Jewel";
- import Pawn from "./Pawn";
- import CheckerBoard from "./CheckerBoard";
- import Cylinder from "./Cylinder";
- import Generator from "./Generator";
- import ImageFormFields from "./forms/ImageFormFields";
- import CounterFormFields from "./forms/CounterFormFields";
- import RectFormFields from "./forms/RectFormFields";
- import CubeFormFields from "./forms/CubeFormFields";
- import RoundFormFields from "./forms/RoundFormFields";
- import DiceFormFields from "./forms/DiceFormFields";
- import DiceImageFormFields from "./forms/DiceImageFormFields";
- import NoteFormFields from "./forms/NoteFormFields";
- import ZoneFormFields from "./forms/ZoneFormFields";
- import TokenFormFields from "./forms/TokenFormFields";
- import MeepleFormFields from "./forms/MeepleFormFields";
- import JewelFormFields from "./forms/JewelFormFields";
- import PawnFormFields from "./forms/PawnFormFields";
- import CheckerBoardFormFields from "./forms/CheckerBoardFormFields";
- import CylinderFormFields from "./forms/CylinderFormFields";
- import GeneratorFormFields from "./forms/GeneratorFormFields";
- const defaultDiceImages = () => [
- {
- id: uid(),
- type: "external",
- content: "/game_assets/dice/one.svg",
- },
- {
- id: uid(),
- type: "external",
- content: "/game_assets/dice/two.svg",
- },
- {
- id: uid(),
- type: "external",
- content: "/game_assets/dice/three.svg",
- },
- {
- id: uid(),
- type: "external",
- content: "/game_assets/dice/four.svg",
- },
- {
- id: uid(),
- type: "external",
- content: "/game_assets/dice/five.svg",
- },
- {
- id: uid(),
- type: "external",
- content: "/game_assets/dice/six.svg",
- },
- ];
- const itemTemplates = {
- rect: {
- component: Rect,
- defaultActions: ["lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: RectFormFields,
- name: i18n.t("Rectangle"),
- template: {},
- },
- cube: {
- component: Cube,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: CubeFormFields,
- name: i18n.t("Cube"),
- template: {},
- },
- cylinder: {
- component: Cylinder,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: CylinderFormFields,
- name: i18n.t("Cylinder"),
- template: {},
- },
- round: {
- component: Round,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: RoundFormFields,
- name: i18n.t("Round"),
- template: {},
- },
- token: {
- component: Token,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: TokenFormFields,
- name: i18n.t("Token"),
- template: {},
- },
- meeple: {
- component: Meeple,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: MeepleFormFields,
- name: i18n.t("Meeple"),
- template: {},
- },
- pawn: {
- component: Pawn,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: PawnFormFields,
- name: i18n.t("Pawn"),
- template: {},
- },
- jewel: {
- component: Jewel,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ],
- form: JewelFormFields,
- name: i18n.t("Jewel"),
- template: {},
- },
- checkerboard: {
- component: CheckerBoard,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: ["clone", "lock", "remove"],
- form: CheckerBoardFormFields,
- name: i18n.t("Checkerboard"),
- template: {
- layer: -1,
- },
- },
- image: {
- component: Image,
- defaultActions: (item) => {
- if (item.backContent) {
- return [
- "flip",
- "flipSelf",
- "tap",
- "stack",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ];
- } else {
- return ["tap", "stack", "shuffle", "clone", "lock", "remove"];
- }
- },
- availableActions: (item) => {
- if (item.backContent) {
- return [
- "flip",
- "flipSelf",
- "tap",
- "rotate",
- "randomlyRotate",
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ];
- } else {
- return [
- "tap",
- "rotate",
- "randomlyRotate",
- "stack",
- "alignAsLine",
- "alignAsSquare",
- "shuffle",
- "clone",
- "lock",
- "remove",
- ];
- }
- },
- form: ImageFormFields,
- name: i18n.t("Image"),
- template: {},
- },
- counter: {
- component: Counter,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: ["clone", "lock", "remove"],
- form: CounterFormFields,
- name: i18n.t("Counter"),
- template: {},
- },
- dice: {
- component: Dice,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "clone",
- "lock",
- "remove",
- "alignAsLine",
- "alignAsSquare",
- ],
- form: DiceFormFields,
- name: i18n.t("Dice"),
- template: {},
- },
- diceImage: {
- component: DiceImage,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "clone",
- "lock",
- "remove",
- "alignAsLine",
- "alignAsSquare",
- ],
- form: DiceImageFormFields,
- name: i18n.t("Image dice"),
- template: () => ({
- images: defaultDiceImages(),
- side: 6,
- }),
- },
- note: {
- component: Note,
- defaultActions: ["shuffle", "clone", "lock", "remove"],
- availableActions: [
- "shuffle",
- "clone",
- "lock",
- "remove",
- "alignAsLine",
- "alignAsSquare",
- ],
- form: NoteFormFields,
- name: i18n.t("Note"),
- template: {},
- },
- zone: {
- component: Zone,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: [
- "clone",
- "lock",
- "remove",
- "alignAsLine",
- "alignAsSquare",
- ],
- form: ZoneFormFields,
- name: i18n.t("Zone"),
- template: {
- layer: -1,
- },
- },
- generator: {
- component: Generator,
- defaultActions: ["clone", "lock", "remove"],
- availableActions: ["clone", "lock", "remove"],
- form: GeneratorFormFields,
- excludeFields: { rotation: true },
- name: i18n.t("Generator"),
- template: { layer: 0 },
- },
- };
- export const itemLibrary = Object.keys(itemTemplates).map((key) => ({
- type: key,
- ...itemTemplates[key],
- uid: uid(),
- }));
- export default itemTemplates;
|