From bc626c57ade818342bad06ed1ef4b9a45f7d8cc4 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Thu, 25 Jul 2024 21:05:04 +0200 Subject: [PATCH] Updated db structure --- prisma/schema/sprite.prisma | 30 ++++++++----- .../gm/sprite/ListSpriteActionImages.ts | 45 ------------------- 2 files changed, 19 insertions(+), 56 deletions(-) delete mode 100644 src/events/gm/sprite/ListSpriteActionImages.ts diff --git a/prisma/schema/sprite.prisma b/prisma/schema/sprite.prisma index 30ca0c9..be21d04 100644 --- a/prisma/schema/sprite.prisma +++ b/prisma/schema/sprite.prisma @@ -8,15 +8,23 @@ model Sprite { } model SpriteAction { - id String @id @default(uuid()) - spriteId String - sprite Sprite @relation(fields: [spriteId], references: [id], onDelete: Cascade) - action String - origin_x Decimal @default(0) - origin_y Decimal @default(0) - isAnimated Boolean @default(false) - isLooping Boolean @default(false) - frameWidth Int @default(0) - frameHeight Int @default(0) - frameSpeed Int @default(0) + id String @id @default(uuid()) + spriteId String + sprite Sprite @relation(fields: [spriteId], references: [id], onDelete: Cascade) + action String + origin_x Decimal @default(0) + origin_y Decimal @default(0) + isAnimated Boolean @default(false) + isLooping Boolean @default(false) + frameWidth Int @default(0) + frameHeight Int @default(0) + frameSpeed Int @default(0) + images SpriteActionImage[] +} + +model SpriteActionImage { + id String @id @default(uuid()) + spriteActionId String + spriteAction SpriteAction @relation(fields: [spriteActionId], references: [id], onDelete: Cascade) + order Int } diff --git a/src/events/gm/sprite/ListSpriteActionImages.ts b/src/events/gm/sprite/ListSpriteActionImages.ts deleted file mode 100644 index 012a94e..0000000 --- a/src/events/gm/sprite/ListSpriteActionImages.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import path from 'path' -import fs from 'fs/promises' -import spriteRepository from '../../../repositories/SpriteRepository' - -type Payload = { - id: string -} - -type Response = string[] - -/** - * Handle game master sprite update event - * @param socket - * @param io - */ -export default function (socket: TSocket, io: Server) { - socket.on('gm:sprite:action:images', async (data: Payload, callback: (response: Response) => void) => { - if (socket.character?.role !== 'gm') { - return - } - - try { - const sprite = await spriteRepository.getById(data.id) - if (!sprite) { - console.log(`---Sprite not found.`) - return []; - } - - const public_folder = path.join(process.cwd(), 'public', 'sprites') - const sprite_folder = path.join(public_folder, sprite.id) - - const spriteActions = await fs.readdir(sprite_folder) - const urls = spriteActions.map((action: string) => { - return path.join(sprite_folder, action) - }) - - callback(urls) - } catch (error) { - console.error(error) - callback([]) - } - }) -}