98 lines
2.9 KiB
Plaintext
98 lines
2.9 KiB
Plaintext
model Tile {
|
|
id String @id @default(uuid())
|
|
name String
|
|
tags Json?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Object {
|
|
id String @id @default(uuid())
|
|
name String
|
|
tags Json?
|
|
originX Decimal @default(0)
|
|
originY Decimal @default(0)
|
|
isAnimated Boolean @default(false)
|
|
frameSpeed Int @default(0)
|
|
frameWidth Int @default(0)
|
|
frameHeight Int @default(0)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
ZoneObject ZoneObject[]
|
|
}
|
|
|
|
model Item {
|
|
id String @id @default(uuid())
|
|
name String
|
|
description String?
|
|
stackable Boolean @default(false)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
characters CharacterItem[]
|
|
}
|
|
|
|
model Zone {
|
|
id Int @id @default(autoincrement())
|
|
name String
|
|
width Int @default(10)
|
|
height Int @default(10)
|
|
tiles Json?
|
|
pvp Boolean @default(false)
|
|
effects ZoneEffect[]
|
|
zoneEventTiles ZoneEventTile[]
|
|
zoneEventTileTeleports ZoneEventTileTeleport[]
|
|
zoneObjects ZoneObject[]
|
|
characters Character[]
|
|
chats Chat[]
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model ZoneEffect {
|
|
id String @id @default(uuid())
|
|
zoneId Int
|
|
zone Zone @relation(fields: [zoneId], references: [id], onDelete: Cascade)
|
|
effect String
|
|
strength Int
|
|
}
|
|
|
|
model ZoneObject {
|
|
id String @id @default(uuid())
|
|
zoneId Int
|
|
zone Zone @relation(fields: [zoneId], references: [id], onDelete: Cascade)
|
|
objectId String
|
|
object Object @relation(fields: [objectId], references: [id], onDelete: Cascade)
|
|
depth Int @default(0)
|
|
isRotated Boolean @default(false)
|
|
positionX Int @default(0)
|
|
positionY Int @default(0)
|
|
}
|
|
|
|
enum ZoneEventTileType {
|
|
BLOCK
|
|
TELEPORT
|
|
NPC
|
|
ITEM
|
|
}
|
|
|
|
model ZoneEventTile {
|
|
id String @id @default(uuid())
|
|
zoneId Int
|
|
zone Zone @relation(fields: [zoneId], references: [id], onDelete: Cascade)
|
|
type ZoneEventTileType
|
|
positionX Int
|
|
positionY Int
|
|
teleport ZoneEventTileTeleport?
|
|
}
|
|
|
|
model ZoneEventTileTeleport {
|
|
id String @id @default(uuid())
|
|
zoneEventTileId String @unique
|
|
zoneEventTile ZoneEventTile @relation(fields: [zoneEventTileId], references: [id], onDelete: Cascade)
|
|
toZoneId Int
|
|
toZone Zone @relation(fields: [toZoneId], references: [id], onDelete: Cascade)
|
|
toRotation Int
|
|
toPositionX Int
|
|
toPositionY Int
|
|
}
|