Removed migrations (oops), npm update, registration bug fix, include spriteImages in spriteRepository, few typo fixes
This commit is contained in:
parent
4b81d7ff67
commit
a0fe0760b0
12
package-lock.json
generated
12
package-lock.json
generated
@ -711,9 +711,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.14.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz",
|
||||
"integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==",
|
||||
"version": "20.14.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.12.tgz",
|
||||
"integrity": "sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
@ -2405,9 +2405,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.5.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz",
|
||||
"integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
|
||||
"version": "5.5.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
||||
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
|
@ -1,5 +0,0 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE `ZoneObject` DROP FOREIGN KEY `ZoneObject_objectId_fkey`;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `ZoneObject` ADD CONSTRAINT `ZoneObject_objectId_fkey` FOREIGN KEY (`objectId`) REFERENCES `Object`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
@ -1,19 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `TileTag` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropTable
|
||||
DROP TABLE `TileTag`;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Tile` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`tags` JSON NOT NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
@ -1,5 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE `Object` ADD COLUMN `tags` JSON NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE `Tile` MODIFY `tags` JSON NULL;
|
@ -1,16 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE `Sprite` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`origin_x` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`origin_y` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`frameSpeed` INTEGER NOT NULL DEFAULT 0,
|
||||
`isAnimated` BOOLEAN NOT NULL DEFAULT false,
|
||||
`isLooping` BOOLEAN NOT NULL DEFAULT false,
|
||||
`isPlayableCharacter` BOOLEAN NOT NULL DEFAULT false,
|
||||
`isEnemy` BOOLEAN NOT NULL DEFAULT false,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `type` to the `Sprite` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE `Sprite` ADD COLUMN `type` VARCHAR(191) NOT NULL;
|
@ -1,20 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `isEnemy` on the `Sprite` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `isPlayableCharacter` on the `Sprite` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `type` on the `Sprite` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE `Object` ADD COLUMN `frameHeight` INTEGER NOT NULL DEFAULT 0,
|
||||
ADD COLUMN `frameSpeed` INTEGER NOT NULL DEFAULT 0,
|
||||
ADD COLUMN `frameWidth` INTEGER NOT NULL DEFAULT 0,
|
||||
ADD COLUMN `isAnimated` BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE `Sprite` DROP COLUMN `isEnemy`,
|
||||
DROP COLUMN `isPlayableCharacter`,
|
||||
DROP COLUMN `type`,
|
||||
ADD COLUMN `frameHeight` INTEGER NOT NULL DEFAULT 0,
|
||||
ADD COLUMN `frameWidth` INTEGER NOT NULL DEFAULT 0;
|
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE `Zone` ADD COLUMN `pvp` BOOLEAN NOT NULL DEFAULT false;
|
@ -1,5 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE `Character` MODIFY `position_x` INTEGER NOT NULL DEFAULT 0,
|
||||
MODIFY `position_y` INTEGER NOT NULL DEFAULT 0,
|
||||
MODIFY `rotation` INTEGER NOT NULL DEFAULT 0,
|
||||
MODIFY `zoneId` INTEGER NOT NULL DEFAULT 1;
|
@ -1,12 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE `Item` MODIFY `description` VARCHAR(191) NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE `Zone` MODIFY `width` INTEGER NOT NULL DEFAULT 10,
|
||||
MODIFY `height` INTEGER NOT NULL DEFAULT 10,
|
||||
MODIFY `tiles` JSON NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE `ZoneObject` MODIFY `depth` INTEGER NOT NULL DEFAULT 0,
|
||||
MODIFY `position_x` INTEGER NOT NULL DEFAULT 0,
|
||||
MODIFY `position_y` INTEGER NOT NULL DEFAULT 0;
|
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `isAnimated` on the `Sprite` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE `Sprite` DROP COLUMN `isAnimated`;
|
@ -1,42 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `characterTypeId` to the `Character` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE `Character` ADD COLUMN `characterTypeId` INTEGER NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE `Sprite` ADD COLUMN `isAnimated` BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `CharacterSprite` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`characterTypeId` INTEGER NOT NULL,
|
||||
`spriteId` VARCHAR(191) NOT NULL,
|
||||
`action` ENUM('IDLE_LEFT', 'IDLE_DOWN', 'SIT_LEFT', 'SIT_DOWN', 'WALK_LEFT', 'WALK_DOWN', 'ATTACK_LEFT', 'ATTACK_DOWN') NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `CharacterType` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`gender` ENUM('MALE', 'FEMALE') NOT NULL,
|
||||
`race` ENUM('HUMAN', 'ELF', 'DWARF', 'ORC', 'GOBLIN') NOT NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `CharacterSprite` ADD CONSTRAINT `CharacterSprite_characterTypeId_fkey` FOREIGN KEY (`characterTypeId`) REFERENCES `CharacterType`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `CharacterSprite` ADD CONSTRAINT `CharacterSprite_spriteId_fkey` FOREIGN KEY (`spriteId`) REFERENCES `Sprite`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Character` ADD CONSTRAINT `Character_characterTypeId_fkey` FOREIGN KEY (`characterTypeId`) REFERENCES `CharacterType`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE `Character` MODIFY `characterTypeId` INTEGER NULL;
|
@ -1,9 +1,18 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE `Object` (
|
||||
CREATE TABLE `Chat` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`characterId` INTEGER NOT NULL,
|
||||
`zoneId` INTEGER NOT NULL,
|
||||
`message` VARCHAR(191) NOT NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Sprite` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`origin_x` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`origin_y` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
@ -11,13 +20,18 @@ CREATE TABLE `Object` (
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Item` (
|
||||
CREATE TABLE `SpriteImage` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`spriteId` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`description` VARCHAR(191) NOT NULL,
|
||||
`stackable` BOOLEAN NOT NULL DEFAULT false,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
`action` VARCHAR(191) NOT NULL,
|
||||
`origin_x` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`origin_y` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`isAnimated` BOOLEAN NOT NULL DEFAULT false,
|
||||
`isLooping` BOOLEAN NOT NULL DEFAULT false,
|
||||
`frameWidth` INTEGER NOT NULL DEFAULT 0,
|
||||
`frameHeight` INTEGER NOT NULL DEFAULT 0,
|
||||
`frameSpeed` INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
@ -32,6 +46,19 @@ CREATE TABLE `User` (
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `CharacterType` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`gender` ENUM('MALE', 'FEMALE') NOT NULL,
|
||||
`race` ENUM('HUMAN', 'ELF', 'DWARF', 'ORC', 'GOBLIN') NOT NULL,
|
||||
`spriteId` VARCHAR(191) NOT NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Character` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
@ -42,10 +69,11 @@ CREATE TABLE `Character` (
|
||||
`level` INTEGER NOT NULL DEFAULT 1,
|
||||
`experience` INTEGER NOT NULL DEFAULT 0,
|
||||
`role` VARCHAR(191) NOT NULL DEFAULT 'player',
|
||||
`position_x` INTEGER NOT NULL,
|
||||
`position_y` INTEGER NOT NULL,
|
||||
`rotation` INTEGER NOT NULL,
|
||||
`zoneId` INTEGER NOT NULL,
|
||||
`position_x` INTEGER NOT NULL DEFAULT 0,
|
||||
`position_y` INTEGER NOT NULL DEFAULT 0,
|
||||
`rotation` INTEGER NOT NULL DEFAULT 0,
|
||||
`zoneId` INTEGER NOT NULL DEFAULT 1,
|
||||
`characterTypeId` INTEGER NULL,
|
||||
|
||||
UNIQUE INDEX `Character_name_key`(`name`),
|
||||
PRIMARY KEY (`id`)
|
||||
@ -62,20 +90,53 @@ CREATE TABLE `CharacterItem` (
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `TileTag` (
|
||||
`tile` VARCHAR(191) NOT NULL,
|
||||
`tags` JSON NOT NULL,
|
||||
CREATE TABLE `Tile` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`tags` JSON NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`tile`)
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Object` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`tags` JSON NULL,
|
||||
`origin_x` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`origin_y` DECIMAL(65, 30) NOT NULL DEFAULT 0,
|
||||
`isAnimated` BOOLEAN NOT NULL DEFAULT false,
|
||||
`frameSpeed` INTEGER NOT NULL DEFAULT 0,
|
||||
`frameWidth` INTEGER NOT NULL DEFAULT 0,
|
||||
`frameHeight` INTEGER NOT NULL DEFAULT 0,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Item` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`description` VARCHAR(191) NULL,
|
||||
`stackable` BOOLEAN NOT NULL DEFAULT false,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Zone` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`width` INTEGER NOT NULL,
|
||||
`height` INTEGER NOT NULL,
|
||||
`tiles` JSON NOT NULL,
|
||||
`width` INTEGER NOT NULL DEFAULT 10,
|
||||
`height` INTEGER NOT NULL DEFAULT 10,
|
||||
`tiles` JSON NULL,
|
||||
`pvp` BOOLEAN NOT NULL DEFAULT false,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
@ -87,9 +148,9 @@ CREATE TABLE `ZoneObject` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`zoneId` INTEGER NOT NULL,
|
||||
`objectId` VARCHAR(191) NOT NULL,
|
||||
`depth` INTEGER NOT NULL,
|
||||
`position_x` INTEGER NOT NULL,
|
||||
`position_y` INTEGER NOT NULL,
|
||||
`depth` INTEGER NOT NULL DEFAULT 0,
|
||||
`position_x` INTEGER NOT NULL DEFAULT 0,
|
||||
`position_y` INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
@ -105,16 +166,17 @@ CREATE TABLE `ZoneEventTile` (
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Chat` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`characterId` INTEGER NOT NULL,
|
||||
`zoneId` INTEGER NOT NULL,
|
||||
`message` VARCHAR(191) NOT NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL,
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Chat` ADD CONSTRAINT `Chat_characterId_fkey` FOREIGN KEY (`characterId`) REFERENCES `Character`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Chat` ADD CONSTRAINT `Chat_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `SpriteImage` ADD CONSTRAINT `SpriteImage_spriteId_fkey` FOREIGN KEY (`spriteId`) REFERENCES `Sprite`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `CharacterType` ADD CONSTRAINT `CharacterType_spriteId_fkey` FOREIGN KEY (`spriteId`) REFERENCES `Sprite`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Character` ADD CONSTRAINT `Character_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -122,6 +184,9 @@ ALTER TABLE `Character` ADD CONSTRAINT `Character_userId_fkey` FOREIGN KEY (`use
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Character` ADD CONSTRAINT `Character_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Character` ADD CONSTRAINT `Character_characterTypeId_fkey` FOREIGN KEY (`characterTypeId`) REFERENCES `CharacterType`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `CharacterItem` ADD CONSTRAINT `CharacterItem_characterId_fkey` FOREIGN KEY (`characterId`) REFERENCES `Character`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
@ -132,13 +197,7 @@ ALTER TABLE `CharacterItem` ADD CONSTRAINT `CharacterItem_itemId_fkey` FOREIGN K
|
||||
ALTER TABLE `ZoneObject` ADD CONSTRAINT `ZoneObject_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `ZoneObject` ADD CONSTRAINT `ZoneObject_objectId_fkey` FOREIGN KEY (`objectId`) REFERENCES `Object`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE `ZoneObject` ADD CONSTRAINT `ZoneObject_objectId_fkey` FOREIGN KEY (`objectId`) REFERENCES `Object`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `ZoneEventTile` ADD CONSTRAINT `ZoneEventTile_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Chat` ADD CONSTRAINT `Chat_characterId_fkey` FOREIGN KEY (`characterId`) REFERENCES `Character`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Chat` ADD CONSTRAINT `Chat_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
@ -1,34 +1,23 @@
|
||||
model Sprite {
|
||||
id String @id @default(uuid())
|
||||
name String
|
||||
origin_x Decimal @default(0)
|
||||
origin_y Decimal @default(0)
|
||||
isAnimated Boolean @default(false)
|
||||
frameSpeed Int @default(0)
|
||||
frameWidth Int @default(0)
|
||||
frameHeight Int @default(0)
|
||||
isLooping Boolean @default(false)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
characterSprites CharacterSprite[]
|
||||
id String @id @default(uuid())
|
||||
name String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
spriteImages SpriteImage[]
|
||||
characterTypes CharacterType[]
|
||||
}
|
||||
|
||||
enum SpriteAction {
|
||||
IDLE_LEFT
|
||||
IDLE_DOWN
|
||||
SIT_LEFT
|
||||
SIT_DOWN
|
||||
WALK_LEFT
|
||||
WALK_DOWN
|
||||
ATTACK_LEFT
|
||||
ATTACK_DOWN
|
||||
}
|
||||
|
||||
model CharacterSprite {
|
||||
id Int @id @default(autoincrement())
|
||||
characterTypeId Int
|
||||
spriteId String
|
||||
action SpriteAction
|
||||
characterType CharacterType @relation(fields: [characterTypeId], references: [id], onDelete: Cascade)
|
||||
sprite Sprite @relation(fields: [spriteId], references: [id], onDelete: Cascade)
|
||||
model SpriteImage {
|
||||
id String @id @default(uuid())
|
||||
spriteId String
|
||||
sprite Sprite @relation(fields: [spriteId], references: [id], onDelete: Cascade)
|
||||
name String
|
||||
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)
|
||||
}
|
||||
|
@ -24,7 +24,8 @@ model CharacterType {
|
||||
gender CharacterGender
|
||||
race CharacterRace
|
||||
characters Character[]
|
||||
characterSprites CharacterSprite[]
|
||||
spriteId String
|
||||
sprite Sprite @relation(fields: [spriteId], references: [id], onDelete: Cascade)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
const character: Character = await prisma.character.create({
|
||||
data: {
|
||||
name: data.name,
|
||||
userId: user_id,
|
||||
userId: user_id
|
||||
// characterTypeId: 1 // @TODO set to chosen character type
|
||||
}
|
||||
})
|
||||
|
43
src/events/gm/sprite/Create.ts
Normal file
43
src/events/gm/sprite/Create.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import { Server } from 'socket.io'
|
||||
import { TSocket } from '../../../utilities/Types'
|
||||
import path from 'path'
|
||||
import fs from 'fs/promises'
|
||||
import prisma from '../../../utilities/Prisma'
|
||||
import { writeFile } from 'node:fs/promises'
|
||||
|
||||
/**
|
||||
* Handle game master new sprite event
|
||||
* @param socket
|
||||
* @param io
|
||||
*/
|
||||
export default function (socket: TSocket, io: Server) {
|
||||
socket.on('gm:sprite:create', async (data: undefined, callback: (response: boolean) => void) => {
|
||||
try {
|
||||
if (socket.character?.role !== 'gm') {
|
||||
callback(false)
|
||||
return
|
||||
}
|
||||
|
||||
const public_folder = path.join(process.cwd(), 'public', 'sprites')
|
||||
|
||||
// Ensure the folder exists
|
||||
await fs.mkdir(public_folder, { recursive: true })
|
||||
|
||||
const sprite = await prisma.sprite.create({
|
||||
data: {
|
||||
name: 'New sprite'
|
||||
}
|
||||
})
|
||||
const uuid = sprite.id
|
||||
|
||||
// Create folder with uuid
|
||||
const sprite_folder = path.join(public_folder, uuid)
|
||||
await fs.mkdir(sprite_folder, { recursive: true })
|
||||
|
||||
callback(true)
|
||||
} catch (error) {
|
||||
console.error('Error creating sprite:', error)
|
||||
callback(false)
|
||||
}
|
||||
})
|
||||
}
|
@ -5,12 +5,6 @@ import prisma from '../../../utilities/Prisma'
|
||||
type Payload = {
|
||||
id: string
|
||||
name: string
|
||||
origin_x: number
|
||||
origin_y: number
|
||||
frameSpeed: number
|
||||
frameWidth: number
|
||||
frameHeight: number
|
||||
isLooping: boolean
|
||||
}
|
||||
|
||||
/**
|
||||
@ -30,13 +24,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
id: data.id
|
||||
},
|
||||
data: {
|
||||
name: data.name,
|
||||
origin_x: data.origin_x,
|
||||
origin_y: data.origin_y,
|
||||
frameSpeed: data.frameSpeed,
|
||||
frameWidth: data.frameWidth,
|
||||
frameHeight: data.frameHeight,
|
||||
isLooping: data.isLooping
|
||||
name: data.name
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -43,7 +43,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
|
||||
callback(true)
|
||||
} catch (error) {
|
||||
console.error('Error uploading tile:', error)
|
||||
console.error('Error uploading sprite:', error)
|
||||
callback(false)
|
||||
}
|
||||
})
|
||||
|
@ -4,7 +4,10 @@ import { Sprite } from '@prisma/client'
|
||||
class SpriteRepository {
|
||||
async getById(id: string): Promise<Sprite | null> {
|
||||
return prisma.sprite.findUnique({
|
||||
where: { id }
|
||||
where: { id },
|
||||
include: {
|
||||
spriteImages: true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ async function addHttpRoutes(app: Application) {
|
||||
const user = await userService.register(username, password)
|
||||
|
||||
if (user) {
|
||||
return res.status(200)
|
||||
return res.status(200).json({ message: 'User registered' })
|
||||
}
|
||||
|
||||
return res.status(400).json({ message: 'Failed to register user' })
|
||||
|
Loading…
x
Reference in New Issue
Block a user