From 55458bd84db35dc39f3d409b1d4ece18b0583dfd Mon Sep 17 00:00:00 2001 From: unbedenklich <106080544+unbedenklich@users.noreply.github.com> Date: Sun, 18 Jan 2026 16:39:40 +0100 Subject: [PATCH] tetris card --- .../TetrisCard/SidebarItemTetrisCard.svelte | 25 + src/lib/cards/TetrisCard/TetrisCard.svelte | 729 ++++++++++++++++++ src/lib/cards/TetrisCard/index.ts | 18 + src/lib/cards/index.ts | 4 +- 4 files changed, 775 insertions(+), 1 deletion(-) create mode 100644 src/lib/cards/TetrisCard/SidebarItemTetrisCard.svelte create mode 100644 src/lib/cards/TetrisCard/TetrisCard.svelte create mode 100644 src/lib/cards/TetrisCard/index.ts diff --git a/src/lib/cards/TetrisCard/SidebarItemTetrisCard.svelte b/src/lib/cards/TetrisCard/SidebarItemTetrisCard.svelte new file mode 100644 index 0000000..c4a1e3c --- /dev/null +++ b/src/lib/cards/TetrisCard/SidebarItemTetrisCard.svelte @@ -0,0 +1,25 @@ + + + diff --git a/src/lib/cards/TetrisCard/TetrisCard.svelte b/src/lib/cards/TetrisCard/TetrisCard.svelte new file mode 100644 index 0000000..328d12b --- /dev/null +++ b/src/lib/cards/TetrisCard/TetrisCard.svelte @@ -0,0 +1,729 @@ + + + + +
+ + + {#if gameState === 'idle' || gameState === 'gameover'} + + {/if} +
diff --git a/src/lib/cards/TetrisCard/index.ts b/src/lib/cards/TetrisCard/index.ts new file mode 100644 index 0000000..44cde60 --- /dev/null +++ b/src/lib/cards/TetrisCard/index.ts @@ -0,0 +1,18 @@ +import type { CardDefinition } from '../types'; +import TetrisCard from './TetrisCard.svelte'; +import SidebarItemTetrisCard from './SidebarItemTetrisCard.svelte'; + +export const TetrisCardDefinition = { + type: 'tetris', + contentComponent: TetrisCard, + sidebarComponent: SidebarItemTetrisCard, + allowSetColor: true, + defaultColor: 'accent', + createNew: (card) => { + card.w = 4; + card.h = 6; + card.mobileW = 6; + card.mobileH = 8; + card.cardData = {}; + } +} as CardDefinition & { type: 'tetris' }; diff --git a/src/lib/cards/index.ts b/src/lib/cards/index.ts index 7dac229..d1571fc 100644 --- a/src/lib/cards/index.ts +++ b/src/lib/cards/index.ts @@ -5,6 +5,7 @@ import { BlueskyMediaCardDefinition } from './BlueskyMediaCard'; import { BlueskyPostCardDefinition } from './BlueskyPostCard'; import { DinoGameCardDefinition } from './DinoGameCard'; import { EmbedCardDefinition } from './EmbedCard'; +import { TetrisCardDefinition } from './TetrisCard'; import { ImageCardDefinition } from './ImageCard'; import { LinkCardDefinition } from './LinkCard'; import { LivestreamCardDefitition, LivestreamEmbedCardDefitition } from './LivestreamCard'; @@ -30,7 +31,8 @@ export const AllCardDefinitions = [ ATProtoCollectionsCardDefinition, SectionCardDefinition, BlueskyMediaCardDefinition, - DinoGameCardDefinition + DinoGameCardDefinition, + TetrisCardDefinition ] as const; export const CardDefinitionsByType = AllCardDefinitions.reduce( -- 2.51.2