From 5ea78b3a3e7d73bbab3be212ab53f117240e12c2 Mon Sep 17 00:00:00 2001 From: Asturur Date: Sun, 6 Oct 2024 19:36:15 +0200 Subject: [PATCH 1/8] files-setup --- package.json | 3 +- scripts/cassette/buildCassetteCover.mjs | 21 ++++++++++ scripts/cassette/cassetteColorVariations.mjs | 44 ++++++++++++++++++++ scripts/cassette/cassetteMasterFile.svg | 39 +++++++++++++++++ src/assets/cassetteGenerated/SufamiTurbo.svg | 39 +++++++++++++++++ src/assets/cassetteGenerated/ps2.svg | 39 +++++++++++++++++ 6 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 scripts/cassette/buildCassetteCover.mjs create mode 100644 scripts/cassette/cassetteColorVariations.mjs create mode 100644 scripts/cassette/cassetteMasterFile.svg create mode 100644 src/assets/cassetteGenerated/SufamiTurbo.svg create mode 100644 src/assets/cassetteGenerated/ps2.svg diff --git a/package.json b/package.json index e8be1cca..6ea341f8 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "prebuild": "cp ./src/utils/blob-stream.js ./node_modules/blob-stream/", "build": "yarn prebuild && tsc && vite build", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" + "preview": "vite preview", + "generateCassette": "node scripts/cassette/buildCassetteCover.mjs" }, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/scripts/cassette/buildCassetteCover.mjs b/scripts/cassette/buildCassetteCover.mjs new file mode 100644 index 00000000..b7213e6a --- /dev/null +++ b/scripts/cassette/buildCassetteCover.mjs @@ -0,0 +1,21 @@ +import { cassetteColorVariations, referencColorTable } from './cassetteColorVariations.mjs'; +import { readFileSync, writeFileSync } from 'fs'; + +const templateSvg = readFileSync('./scripts/cassette/cassetteMasterFile.svg', 'utf-8'); + +for (const variation of cassetteColorVariations) { + const newTemplate = templateSvg + .replace(referencColorTable.backColor, variation.backColor) + .replace(referencColorTable.colorSpineTop, variation.colorSpineTop) + .replace(referencColorTable.colorSpineBottom, variation.colorSpineBottom) + .replace(referencColorTable.frontcolorTop, variation.frontcolorTop) + .replace(referencColorTable.frontcolorBottom, variation.frontcolorTop) + .replace(referencColorTable.loadingLogoBack, variation.loadingLogoBack) + .replace(referencColorTable.loadingLogoSpine, variation.loadingLogoSpine) + .replace(referencColorTable.loadingLogoFront, variation.loadingLogoFront) + .replace(referencColorTable.nfcLogoBack, variation.nfcLogoBack) + .replace(referencColorTable.nfcLogoSpine, variation.nfcLogoSpine) + .replace(referencColorTable.nfcLogoFront, variation.nfcLogoFront); + writeFileSync(`./src/assets/cassetteGenerated/${variation.label}.svg`, newTemplate) + console.log(`Generated ${variation.label}`); +} \ No newline at end of file diff --git a/scripts/cassette/cassetteColorVariations.mjs b/scripts/cassette/cassetteColorVariations.mjs new file mode 100644 index 00000000..fabbaca7 --- /dev/null +++ b/scripts/cassette/cassetteColorVariations.mjs @@ -0,0 +1,44 @@ +export const cassetteColorVariations = [ + { + label: 'SufamiTurbo', + backColor: '#a8a8a8', + colorSpineTop: '#6dbf5b', + colorSpineBottom: '#a8a8a8', + frontcolorTop: '#6dbf5b', + frontcolorBottom: '#6dbf5b', + loadingLogoBack: '#000000', + loadingLogoSpine: '#FFFFFF', + loadingLogoFront: '#FFFFFF', + nfcLogoBack: '#000000', + nfcLogoSpine: '#FFFFFF', + nfcLogoFront: '#FFFFFF', + }, + { + label: 'ps2', + backColor: '#000000', + colorSpineTop: '#000000', + colorSpineBottom: '#FFFFFF', + frontcolorTop: '#000000', + frontcolorBottom: '#000000', + loadingLogoBack: '#FFFFFF', + loadingLogoSpine: '#FFFFFF', + loadingLogoFront: '#FFFFFF', + nfcLogoBack: '#0000FF', + nfcLogoSpine: '#0000FF', + nfcLogoFront: '#0000FF', + } +] + +export const referencColorTable = { + backColor: '#FFFF00', + colorSpineTop: '#00FF00', + colorSpineBottom: '#FF00FF', + frontcolorTop: '#00FFFF', + frontcolorBottom: '#FF0000', + loadingLogoBack: '#1000FF', + loadingLogoSpine: '#2000FF', + loadingLogoFront: '#3000FF', + nfcLogoBack: '#FF0010', + nfcLogoSpine: '#FF0020', + nfcLogoFront: '#FF0030', +} \ No newline at end of file diff --git a/scripts/cassette/cassetteMasterFile.svg b/scripts/cassette/cassetteMasterFile.svg new file mode 100644 index 00000000..a20c7441 --- /dev/null +++ b/scripts/cassette/cassetteMasterFile.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cassetteGenerated/SufamiTurbo.svg b/src/assets/cassetteGenerated/SufamiTurbo.svg new file mode 100644 index 00000000..37b76c79 --- /dev/null +++ b/src/assets/cassetteGenerated/SufamiTurbo.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cassetteGenerated/ps2.svg b/src/assets/cassetteGenerated/ps2.svg new file mode 100644 index 00000000..e16f4ffd --- /dev/null +++ b/src/assets/cassetteGenerated/ps2.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 8d8ff023c6843ade7c723a83a003015801f8ae59 Mon Sep 17 00:00:00 2001 From: Asturur Date: Tue, 8 Oct 2024 11:06:26 +0200 Subject: [PATCH 2/8] more templates --- package.json | 2 +- scripts/cassette/cassetteColorVariations.mjs | 28 ++++++++++++++ src/assets/cassetteGenerated/msdos.svg | 39 ++++++++++++++++++++ src/assets/cassetteGenerated/steam.svg | 39 ++++++++++++++++++++ 4 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 src/assets/cassetteGenerated/msdos.svg create mode 100644 src/assets/cassetteGenerated/steam.svg diff --git a/package.json b/package.json index 6ea341f8..dd9ca9d3 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build": "yarn prebuild && tsc && vite build", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", - "generateCassette": "node scripts/cassette/buildCassetteCover.mjs" + "generate-cassette": "node scripts/cassette/buildCassetteCover.mjs" }, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/scripts/cassette/cassetteColorVariations.mjs b/scripts/cassette/cassetteColorVariations.mjs index fabbaca7..afb443e2 100644 --- a/scripts/cassette/cassetteColorVariations.mjs +++ b/scripts/cassette/cassetteColorVariations.mjs @@ -26,6 +26,34 @@ export const cassetteColorVariations = [ nfcLogoBack: '#0000FF', nfcLogoSpine: '#0000FF', nfcLogoFront: '#0000FF', + }, + { + label: 'steam', + backColor: '#000000', + colorSpineTop: '#102241', + colorSpineBottom: '#000000', + frontcolorTop: '#102241', + frontcolorBottom: '#102241', + loadingLogoBack: '#FFFFFF', + loadingLogoSpine: '#FFFFFF', + loadingLogoFront: '#FFFFFF', + nfcLogoBack: '#FFFFFF', + nfcLogoSpine: '#FFFFFF', + nfcLogoFront: '#FFFFFF', + }, + { + label: 'msdos', + backColor: '#A9A9A9', + colorSpineTop: '#A9A9A9', + colorSpineBottom: '#A9A9A9', + frontcolorTop: '#A9A9A9', + frontcolorBottom: '#A9A9A9', + loadingLogoBack: '#000000', + loadingLogoSpine: '#000000', + loadingLogoFront: '#000000', + nfcLogoBack: '#000000', + nfcLogoSpine: '#000000', + nfcLogoFront: '#000000', } ] diff --git a/src/assets/cassetteGenerated/msdos.svg b/src/assets/cassetteGenerated/msdos.svg new file mode 100644 index 00000000..ecf77905 --- /dev/null +++ b/src/assets/cassetteGenerated/msdos.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cassetteGenerated/steam.svg b/src/assets/cassetteGenerated/steam.svg new file mode 100644 index 00000000..e9060499 --- /dev/null +++ b/src/assets/cassetteGenerated/steam.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 40d8ff8e1824724fd8217a0a8839051cf1bb9356 Mon Sep 17 00:00:00 2001 From: Asturur Date: Wed, 16 Oct 2024 23:22:03 +0200 Subject: [PATCH 3/8] more templates --- scripts/cassette/cassetteColorVariations.mjs | 72 ++++++++++++++++++- src/assets/cassetteGenerated/famicom.svg | 39 ++++++++++ src/assets/cassetteGenerated/msx2.svg | 39 ++++++++++ src/assets/cassetteGenerated/necpcengine.svg | 39 ++++++++++ src/assets/cassetteGenerated/turbografx16.svg | 39 ++++++++++ src/assets/cassetteGenerated/xbox.svg | 39 ++++++++++ 6 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 src/assets/cassetteGenerated/famicom.svg create mode 100644 src/assets/cassetteGenerated/msx2.svg create mode 100644 src/assets/cassetteGenerated/necpcengine.svg create mode 100644 src/assets/cassetteGenerated/turbografx16.svg create mode 100644 src/assets/cassetteGenerated/xbox.svg diff --git a/scripts/cassette/cassetteColorVariations.mjs b/scripts/cassette/cassetteColorVariations.mjs index afb443e2..72e6fc53 100644 --- a/scripts/cassette/cassetteColorVariations.mjs +++ b/scripts/cassette/cassetteColorVariations.mjs @@ -54,7 +54,77 @@ export const cassetteColorVariations = [ nfcLogoBack: '#000000', nfcLogoSpine: '#000000', nfcLogoFront: '#000000', - } + }, + { + label: 'msx2', + backColor: '#A9A9A9', + colorSpineTop: '#1717D2', + colorSpineBottom: '#1717D2', + frontcolorTop: '#1717D2', + frontcolorBottom: '#1717D2', + loadingLogoBack: '#FFFFFF', + loadingLogoSpine: '#FFFFFF', + loadingLogoFront: '#FFFFFF', + nfcLogoBack: '#FFFFFF', + nfcLogoSpine: '#FFFFFF', + nfcLogoFront: '#FFFFFF', + }, + { + label: 'xbox', + backColor: '#000000', + colorSpineTop: '#000000', + colorSpineBottom: '#000000', + frontcolorTop: '#000000', + frontcolorBottom: '#000000', + loadingLogoBack: '#60D03E', + loadingLogoSpine: '#60D03E', + loadingLogoFront: '#60D03E', + nfcLogoBack: '#60D03E', + nfcLogoSpine: '#60D03E', + nfcLogoFront: '#60D03E', + }, + { + label: 'necpcengine', + backColor: '#F2F2EB', + colorSpineTop: '#F2F2EB', + colorSpineBottom: '#F2F2EB', + frontcolorTop: '#F2F2EB', + frontcolorBottom: '#F2F2EB', + loadingLogoBack: '#D83B37', + loadingLogoSpine: '#D83B37', + loadingLogoFront: '#D83B37', + nfcLogoBack: '#426F59', + nfcLogoSpine: '#426F59', + nfcLogoFront: '#426F59', + }, + { + label: 'turbografx16', + backColor: '#FAF0DB', + colorSpineTop: '#000000', + colorSpineBottom: '#000000', + frontcolorTop: '#000000', + frontcolorBottom: '#000000', + loadingLogoBack: '#000000', + loadingLogoSpine: '#FFFFFF', + loadingLogoFront: '#FFFFFF', + nfcLogoBack: '#F2AC3C', + nfcLogoSpine: '#F2AC3C', + nfcLogoFront: '#F2AC3C', + }, + { + label: 'famicom', + backColor: '#FEFCF1', + colorSpineTop: '#AE3130', + colorSpineBottom: '#B3975C', + frontcolorTop: '#AE3130', + frontcolorBottom: '#AE3130', + loadingLogoBack: '#000000', + loadingLogoSpine: '#FFFFFF', + loadingLogoFront: '#FFFFFF', + nfcLogoBack: '#000000', + nfcLogoSpine: '#FFFFFF', + nfcLogoFront: '#FFFFFF', + }, ] export const referencColorTable = { diff --git a/src/assets/cassetteGenerated/famicom.svg b/src/assets/cassetteGenerated/famicom.svg new file mode 100644 index 00000000..15f46c0c --- /dev/null +++ b/src/assets/cassetteGenerated/famicom.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cassetteGenerated/msx2.svg b/src/assets/cassetteGenerated/msx2.svg new file mode 100644 index 00000000..ef71e4e9 --- /dev/null +++ b/src/assets/cassetteGenerated/msx2.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cassetteGenerated/necpcengine.svg b/src/assets/cassetteGenerated/necpcengine.svg new file mode 100644 index 00000000..04944cb6 --- /dev/null +++ b/src/assets/cassetteGenerated/necpcengine.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cassetteGenerated/turbografx16.svg b/src/assets/cassetteGenerated/turbografx16.svg new file mode 100644 index 00000000..8849b251 --- /dev/null +++ b/src/assets/cassetteGenerated/turbografx16.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cassetteGenerated/xbox.svg b/src/assets/cassetteGenerated/xbox.svg new file mode 100644 index 00000000..6b95be74 --- /dev/null +++ b/src/assets/cassetteGenerated/xbox.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 2045a03030d4980686a0eea0c09d362458c30254 Mon Sep 17 00:00:00 2001 From: Asturur Date: Wed, 16 Oct 2024 23:26:59 +0200 Subject: [PATCH 4/8] ok --- scripts/cassette/cassetteColorVariations.mjs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/cassette/cassetteColorVariations.mjs b/scripts/cassette/cassetteColorVariations.mjs index 72e6fc53..27abedc0 100644 --- a/scripts/cassette/cassetteColorVariations.mjs +++ b/scripts/cassette/cassetteColorVariations.mjs @@ -125,6 +125,20 @@ export const cassetteColorVariations = [ nfcLogoSpine: '#FFFFFF', nfcLogoFront: '#FFFFFF', }, + { + label: 'famicomdisk', + backColor: '#FEFCF1', + colorSpineTop: '#FFFFFF', + colorSpineBottom: '#FFFFFF', + frontcolorTop: '#FFFFFF', + frontcolorBottom: '#FFFFFF', + loadingLogoBack: '#000000', + loadingLogoSpine: '#000000', + loadingLogoFront: '#000000', + nfcLogoBack: '#000000', + nfcLogoSpine: '#EBBF45', + nfcLogoFront: '#EBBF45', + }, ] export const referencColorTable = { From b480463850de05951002ebbfb753b3ed7a5abfb7 Mon Sep 17 00:00:00 2001 From: Asturur Date: Wed, 16 Oct 2024 23:27:04 +0200 Subject: [PATCH 5/8] ok --- src/assets/cassetteGenerated/famicomdisk.svg | 39 ++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/assets/cassetteGenerated/famicomdisk.svg diff --git a/src/assets/cassetteGenerated/famicomdisk.svg b/src/assets/cassetteGenerated/famicomdisk.svg new file mode 100644 index 00000000..39700821 --- /dev/null +++ b/src/assets/cassetteGenerated/famicomdisk.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 9e21fcc9b3383c2ff6e287dbe3ff9b216f338fc7 Mon Sep 17 00:00:00 2001 From: Asturur Date: Wed, 16 Oct 2024 23:50:54 +0200 Subject: [PATCH 6/8] some work --- scripts/cassette/baseCodeFile.ts | 2 + scripts/cassette/buildCassetteCover.mjs | 17 +- scripts/cassette/cassetteColorVariations.mjs | 33 +- src/cardsTemplates.ts | 33 +- src/cassetteTemplates.ts | 304 +++++++++++++++++++ 5 files changed, 354 insertions(+), 35 deletions(-) create mode 100644 scripts/cassette/baseCodeFile.ts create mode 100644 src/cassetteTemplates.ts diff --git a/scripts/cassette/baseCodeFile.ts b/scripts/cassette/baseCodeFile.ts new file mode 100644 index 00000000..cc2f391e --- /dev/null +++ b/scripts/cassette/baseCodeFile.ts @@ -0,0 +1,2 @@ +import { TapeBoxCover } from './printMediaTypes'; +import { Authors } from './templateAuthors'; \ No newline at end of file diff --git a/scripts/cassette/buildCassetteCover.mjs b/scripts/cassette/buildCassetteCover.mjs index b7213e6a..f41246e1 100644 --- a/scripts/cassette/buildCassetteCover.mjs +++ b/scripts/cassette/buildCassetteCover.mjs @@ -1,7 +1,9 @@ -import { cassetteColorVariations, referencColorTable } from './cassetteColorVariations.mjs'; +import { cassetteColorVariations, referencColorTable, cassetteBaseTemplate } from './cassetteColorVariations.mjs'; import { readFileSync, writeFileSync } from 'fs'; const templateSvg = readFileSync('./scripts/cassette/cassetteMasterFile.svg', 'utf-8'); +let importFile = readFileSync('./scripts/cassette/baseCodeFile.ts', 'utf-8'); +let templateObject = ''; for (const variation of cassetteColorVariations) { const newTemplate = templateSvg @@ -16,6 +18,15 @@ for (const variation of cassetteColorVariations) { .replace(referencColorTable.nfcLogoBack, variation.nfcLogoBack) .replace(referencColorTable.nfcLogoSpine, variation.nfcLogoSpine) .replace(referencColorTable.nfcLogoFront, variation.nfcLogoFront); - writeFileSync(`./src/assets/cassetteGenerated/${variation.label}.svg`, newTemplate) + writeFileSync(`./src/assets/cassetteGenerated/${variation.label}.svg`, newTemplate); + importFile = `${importFile} +import ${variation.label} from './assets/cassetteGenerated/${variation.label}.svg';`; + + templateObject = `${templateObject}${variation.label}:${cassetteBaseTemplate.replace('url: cassetTape,', `url: ${variation.label},`)}`; + console.log(`Generated ${variation.label}`); -} \ No newline at end of file +} + +writeFileSync(`./src/cassetteTemplates.ts`, `${importFile} export const cassetteTemplates = { +${templateObject} +};`); \ No newline at end of file diff --git a/scripts/cassette/cassetteColorVariations.mjs b/scripts/cassette/cassetteColorVariations.mjs index 27abedc0..2b77f28e 100644 --- a/scripts/cassette/cassetteColorVariations.mjs +++ b/scripts/cassette/cassetteColorVariations.mjs @@ -153,4 +153,35 @@ export const referencColorTable = { nfcLogoBack: '#FF0010', nfcLogoSpine: '#FF0020', nfcLogoFront: '#FF0030', -} \ No newline at end of file +} + +export const cassetteBaseTemplate = ` { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: cassetTape, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +` \ No newline at end of file diff --git a/src/cardsTemplates.ts b/src/cardsTemplates.ts index 29e52d50..810c33f2 100644 --- a/src/cardsTemplates.ts +++ b/src/cardsTemplates.ts @@ -20,13 +20,12 @@ import genesisBg from './assets/genesis_bg.svg'; import pcEngine from './assets/pcengine.svg'; import pcEngineBG from './assets/pcengine_bg.svg'; import animeOt4ku from './assets/tapto_0t4ku.svg'; -import cassetTape from './assets/cassette_tape.svg'; import mininfcAlice from './assets/3by5_steam.svg'; import cardFront from './assets/cardfront.png'; import { Authors } from './templateAuthors'; import { templateType } from './resourcesTypedef'; import { logoResource } from './logos'; - +import { cassetteTemplates } from './cassetteTemplates'; import { NFCCCsizeCard, TapeBoxCover, tapToPrePrinted, miniNfcCard } from './printMediaTypes'; export const templates: Record = { @@ -459,35 +458,6 @@ export const templates: Record = { media: TapeBoxCover, key: 'cassetteBoxBlank', }, - cassetteBoxV2: { - layout: 'horizontal', - label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: cassetTape, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], - canEdit: true, - author: Authors.animeotaku, // to be changed with Phoneix data - media: TapeBoxCover, - key: 'cassetteBoxV2', - }, miniNfcAlice: { layout: 'vertical', label: 'Steam 3by5cm', @@ -505,6 +475,7 @@ export const templates: Record = { media: miniNfcCard, key: 'miniNfcAlice', }, + ...cassetteTemplates } as const; export const defaultTemplateKey = 'hucard'; diff --git a/src/cassetteTemplates.ts b/src/cassetteTemplates.ts new file mode 100644 index 00000000..b8b0fc98 --- /dev/null +++ b/src/cassetteTemplates.ts @@ -0,0 +1,304 @@ +import { TapeBoxCover } from './printMediaTypes'; +import { Authors } from './templateAuthors'; +import SufamiTurbo from './assets/cassetteGenerated/SufamiTurbo.svg'; +import ps2 from './assets/cassetteGenerated/ps2.svg'; +import steam from './assets/cassetteGenerated/steam.svg'; +import msdos from './assets/cassetteGenerated/msdos.svg'; +import msx2 from './assets/cassetteGenerated/msx2.svg'; +import xbox from './assets/cassetteGenerated/xbox.svg'; +import necpcengine from './assets/cassetteGenerated/necpcengine.svg'; +import turbografx16 from './assets/cassetteGenerated/turbografx16.svg'; +import famicom from './assets/cassetteGenerated/famicom.svg'; +import famicomdisk from './assets/cassetteGenerated/famicomdisk.svg'; export const cassetteTemplates = { +SufamiTurbo: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: SufamiTurbo, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +ps2: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: ps2, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +steam: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: steam, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +msdos: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: msdos, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +msx2: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: msx2, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +xbox: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: xbox, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +necpcengine: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: necpcengine, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +turbografx16: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: turbografx16, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +famicom: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: famicom, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, +famicomdisk: { + layout: 'horizontal', + label: 'Casset box cover', + overlay: { + layerWidth: 1233, + layerHeight: 1200, + url: famicomdisk, + height: 1 - 123/1200, + width: 1 - 454/1233, + y: 123/1200, + x: 454/1233, + isSvg: true, + strategy: 'cover', + }, + edits: [{ + id: 'placeholder_logo_1', + resource: logoResource, + }, { + id: 'placeholder_logo_2', + resource: logoResource, + }, { + id: 'placeholder_logo_3', + resource: logoResource, + }], + canEdit: true, + author: Authors.animeotaku, // to be changed with Phoneix data + media: TapeBoxCover, + key: 'cassetteBoxV2', + }, + +}; \ No newline at end of file From 79c784b2ceca6120975e21cb0d5ce8c6ace939db Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Fri, 17 Apr 2026 09:27:02 +0200 Subject: [PATCH 7/8] save --- scripts/cassette/cassetteColorVariations.mjs | 32 +--- scripts/cassette/cassetteMasterFile.svg | 154 +++++++++++++----- .../setupFabricJSCustomConfiguration.ts | 7 +- 3 files changed, 130 insertions(+), 63 deletions(-) diff --git a/scripts/cassette/cassetteColorVariations.mjs b/scripts/cassette/cassetteColorVariations.mjs index 2b77f28e..ec0cfa3d 100644 --- a/scripts/cassette/cassetteColorVariations.mjs +++ b/scripts/cassette/cassetteColorVariations.mjs @@ -139,7 +139,7 @@ export const cassetteColorVariations = [ nfcLogoSpine: '#EBBF45', nfcLogoFront: '#EBBF45', }, -] +]; export const referencColorTable = { backColor: '#FFFF00', @@ -153,35 +153,19 @@ export const referencColorTable = { nfcLogoBack: '#FF0010', nfcLogoSpine: '#FF0020', nfcLogoFront: '#FF0030', -} +}; export const cassetteBaseTemplate = ` { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: cassetTape, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: cassetTape, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + preview: template_CassetteTapeCase_CassetBoxCover_16, }, -` \ No newline at end of file +`; diff --git a/scripts/cassette/cassetteMasterFile.svg b/scripts/cassette/cassetteMasterFile.svg index a20c7441..ce22ae96 100644 --- a/scripts/cassette/cassetteMasterFile.svg +++ b/scripts/cassette/cassetteMasterFile.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/extensions/setupFabricJSCustomConfiguration.ts b/src/extensions/setupFabricJSCustomConfiguration.ts index 3f460bfb..3e04dd8b 100644 --- a/src/extensions/setupFabricJSCustomConfiguration.ts +++ b/src/extensions/setupFabricJSCustomConfiguration.ts @@ -7,7 +7,12 @@ declare module 'fabric' { id: string; original_fill: string; original_stroke: string; - 'zaparoo-placeholder'?: 'main'; + 'zaparoo-placeholder'?: + | 'main' + | 'description' + | 'platform_logo' + | 'title' + | 'screenshot'; 'zaparoo-no-print'?: 'true'; 'zaparoo-fill-strategy'?: 'fit' | 'cover'; 'zaparoo-align-strategy'?: 'left-top' | 'center-top'; From 5afaab3bf1863f7c01ba720b80cbcc3673a90384 Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Fri, 17 Apr 2026 09:37:27 +0200 Subject: [PATCH 8/8] update --- scripts/cassette/buildCassetteCover.mjs | 39 ++- scripts/cassette/cassetteColorVariations.mjs | 5 +- scripts/cassette/cassetteMasterFile.svg | 4 +- src/assets/cassetteGenerated/SufamiTurbo.svg | 154 ++++++++--- src/assets/cassetteGenerated/famicom.svg | 154 ++++++++--- src/assets/cassetteGenerated/famicomdisk.svg | 154 ++++++++--- src/assets/cassetteGenerated/msdos.svg | 154 ++++++++--- src/assets/cassetteGenerated/msx2.svg | 154 ++++++++--- src/assets/cassetteGenerated/necpcengine.svg | 154 ++++++++--- src/assets/cassetteGenerated/ps2.svg | 154 ++++++++--- src/assets/cassetteGenerated/steam.svg | 154 ++++++++--- src/assets/cassetteGenerated/turbografx16.svg | 154 ++++++++--- src/assets/cassetteGenerated/xbox.svg | 154 ++++++++--- src/cardsTemplates.ts | 4 +- src/cassetteTemplates.ts | 260 ++++-------------- 15 files changed, 1242 insertions(+), 610 deletions(-) diff --git a/scripts/cassette/buildCassetteCover.mjs b/scripts/cassette/buildCassetteCover.mjs index f41246e1..c5ee336f 100644 --- a/scripts/cassette/buildCassetteCover.mjs +++ b/scripts/cassette/buildCassetteCover.mjs @@ -1,7 +1,14 @@ -import { cassetteColorVariations, referencColorTable, cassetteBaseTemplate } from './cassetteColorVariations.mjs'; +import { + cassetteColorVariations, + referencColorTable, + cassetteBaseTemplate, +} from './cassetteColorVariations.mjs'; import { readFileSync, writeFileSync } from 'fs'; -const templateSvg = readFileSync('./scripts/cassette/cassetteMasterFile.svg', 'utf-8'); +const templateSvg = readFileSync( + './scripts/cassette/cassetteMasterFile.svg', + 'utf-8', +); let importFile = readFileSync('./scripts/cassette/baseCodeFile.ts', 'utf-8'); let templateObject = ''; @@ -14,19 +21,27 @@ for (const variation of cassetteColorVariations) { .replace(referencColorTable.frontcolorBottom, variation.frontcolorTop) .replace(referencColorTable.loadingLogoBack, variation.loadingLogoBack) .replace(referencColorTable.loadingLogoSpine, variation.loadingLogoSpine) - .replace(referencColorTable.loadingLogoFront, variation.loadingLogoFront) - .replace(referencColorTable.nfcLogoBack, variation.nfcLogoBack) - .replace(referencColorTable.nfcLogoSpine, variation.nfcLogoSpine) - .replace(referencColorTable.nfcLogoFront, variation.nfcLogoFront); - writeFileSync(`./src/assets/cassetteGenerated/${variation.label}.svg`, newTemplate); + .replace(referencColorTable.loadingLogoFront, variation.loadingLogoFront); + writeFileSync( + `./src/assets/cassetteGenerated/${variation.label}.svg`, + newTemplate, + ); importFile = `${importFile} import ${variation.label} from './assets/cassetteGenerated/${variation.label}.svg';`; - - templateObject = `${templateObject}${variation.label}:${cassetteBaseTemplate.replace('url: cassetTape,', `url: ${variation.label},`)}`; + + templateObject = `${templateObject}${ + variation.label + }:${cassetteBaseTemplate.replace( + 'url: cassetTape,', + `url: ${variation.label},`, + )}`; console.log(`Generated ${variation.label}`); -} +} -writeFileSync(`./src/cassetteTemplates.ts`, `${importFile} export const cassetteTemplates = { +writeFileSync( + `./src/cassetteTemplates.ts`, + `${importFile} export const cassetteTemplates = { ${templateObject} -};`); \ No newline at end of file +};`, +); diff --git a/scripts/cassette/cassetteColorVariations.mjs b/scripts/cassette/cassetteColorVariations.mjs index ec0cfa3d..4258eae2 100644 --- a/scripts/cassette/cassetteColorVariations.mjs +++ b/scripts/cassette/cassetteColorVariations.mjs @@ -150,9 +150,6 @@ export const referencColorTable = { loadingLogoBack: '#1000FF', loadingLogoSpine: '#2000FF', loadingLogoFront: '#3000FF', - nfcLogoBack: '#FF0010', - nfcLogoSpine: '#FF0020', - nfcLogoFront: '#FF0030', }; export const cassetteBaseTemplate = ` { @@ -166,6 +163,6 @@ export const cassetteBaseTemplate = ` { media: TapeBoxCover, compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', - preview: template_CassetteTapeCase_CassetBoxCover_16, + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, `; diff --git a/scripts/cassette/cassetteMasterFile.svg b/scripts/cassette/cassetteMasterFile.svg index ce22ae96..0c2bbf68 100644 --- a/scripts/cassette/cassetteMasterFile.svg +++ b/scripts/cassette/cassetteMasterFile.svg @@ -63,11 +63,11 @@ style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:1.0001;stroke-linejoin:round;stroke-miterlimit:2;fill-opacity:1" /> diff --git a/src/assets/cassetteGenerated/SufamiTurbo.svg b/src/assets/cassetteGenerated/SufamiTurbo.svg index 37b76c79..e8ad966d 100644 --- a/src/assets/cassetteGenerated/SufamiTurbo.svg +++ b/src/assets/cassetteGenerated/SufamiTurbo.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/famicom.svg b/src/assets/cassetteGenerated/famicom.svg index 15f46c0c..09ca1bd3 100644 --- a/src/assets/cassetteGenerated/famicom.svg +++ b/src/assets/cassetteGenerated/famicom.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/famicomdisk.svg b/src/assets/cassetteGenerated/famicomdisk.svg index 39700821..5c3aa2d2 100644 --- a/src/assets/cassetteGenerated/famicomdisk.svg +++ b/src/assets/cassetteGenerated/famicomdisk.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/msdos.svg b/src/assets/cassetteGenerated/msdos.svg index ecf77905..387e7050 100644 --- a/src/assets/cassetteGenerated/msdos.svg +++ b/src/assets/cassetteGenerated/msdos.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/msx2.svg b/src/assets/cassetteGenerated/msx2.svg index ef71e4e9..a93b19da 100644 --- a/src/assets/cassetteGenerated/msx2.svg +++ b/src/assets/cassetteGenerated/msx2.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/necpcengine.svg b/src/assets/cassetteGenerated/necpcengine.svg index 04944cb6..6e01236e 100644 --- a/src/assets/cassetteGenerated/necpcengine.svg +++ b/src/assets/cassetteGenerated/necpcengine.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/ps2.svg b/src/assets/cassetteGenerated/ps2.svg index e16f4ffd..7eeb4e8e 100644 --- a/src/assets/cassetteGenerated/ps2.svg +++ b/src/assets/cassetteGenerated/ps2.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/steam.svg b/src/assets/cassetteGenerated/steam.svg index e9060499..fc5cfc3b 100644 --- a/src/assets/cassetteGenerated/steam.svg +++ b/src/assets/cassetteGenerated/steam.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/turbografx16.svg b/src/assets/cassetteGenerated/turbografx16.svg index 8849b251..9f1f6e2f 100644 --- a/src/assets/cassetteGenerated/turbografx16.svg +++ b/src/assets/cassetteGenerated/turbografx16.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cassetteGenerated/xbox.svg b/src/assets/cassetteGenerated/xbox.svg index 6b95be74..0f462e5c 100644 --- a/src/assets/cassetteGenerated/xbox.svg +++ b/src/assets/cassetteGenerated/xbox.svg @@ -1,39 +1,117 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/src/cardsTemplates.ts b/src/cardsTemplates.ts index 638002f8..c61b88e9 100644 --- a/src/cardsTemplates.ts +++ b/src/cardsTemplates.ts @@ -67,7 +67,7 @@ import blackFramePreview from './assets/templatesPreviews/template_Standard NFC // import upgradeStickerStdFull from './assets/UpgradeStandard_Single_Full.svg'; // import upgradeStickerStdFrame from './assets/UpgradeStandard_Single_Frame.svg'; import { Authors } from './templateAuthors'; -// import { cassetteTemplates } from './cassetteTemplates'; +import { cassetteTemplates } from './cassetteTemplates'; import type { templateTypeV2 } from './resourcesTypedef'; // import { logoResource } from './logos'; @@ -313,7 +313,7 @@ export const templates: Record = { key: 'miniNfcAlice', preview: template_MiniNFCCard_Steam3by5cm_17, }, - // ...cassetteTemplates, + ...cassetteTemplates, retroRemakePcb1: { canEdit: true, version: 2, diff --git a/src/cassetteTemplates.ts b/src/cassetteTemplates.ts index b8b0fc98..d91bc473 100644 --- a/src/cassetteTemplates.ts +++ b/src/cassetteTemplates.ts @@ -13,292 +13,132 @@ import famicomdisk from './assets/cassetteGenerated/famicomdisk.svg'; export con SufamiTurbo: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: SufamiTurbo, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: SufamiTurbo, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, ps2: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: ps2, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: ps2, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, steam: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: steam, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: steam, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, msdos: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: msdos, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: msdos, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, msx2: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: msx2, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: msx2, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, xbox: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: xbox, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: xbox, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, necpcengine: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: necpcengine, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: necpcengine, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, turbografx16: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: turbografx16, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: turbografx16, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, famicom: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: famicom, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: famicom, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, famicomdisk: { layout: 'horizontal', label: 'Casset box cover', - overlay: { - layerWidth: 1233, - layerHeight: 1200, - url: famicomdisk, - height: 1 - 123/1200, - width: 1 - 454/1233, - y: 123/1200, - x: 454/1233, - isSvg: true, - strategy: 'cover', - }, - edits: [{ - id: 'placeholder_logo_1', - resource: logoResource, - }, { - id: 'placeholder_logo_2', - resource: logoResource, - }, { - id: 'placeholder_logo_3', - resource: logoResource, - }], + canFill: true, + url: famicomdisk, + version: 2, canEdit: true, author: Authors.animeotaku, // to be changed with Phoneix data media: TapeBoxCover, + compatibleMedia: [TapeBoxCover], key: 'cassetteBoxV2', + // preview: template_CassetteTapeCase_CassetBoxCover_16, }, }; \ No newline at end of file