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(