Added pivot point logic

This commit is contained in:
Dennis Postma 2025-02-15 16:39:39 +01:00
parent 2ce9bbdedd
commit 47be8597bf
6 changed files with 527 additions and 225 deletions

View File

@ -10,8 +10,11 @@ export class BaseMapObject extends BaseEntity {
@Property()
name!: string
@Property({ type: 'json', nullable: true })
tags?: any
@Property({ type: 'json' })
tags: string[] = []
@Property({ type: 'json' })
pivotPoints: { x: number; y: number; }[] = []
@Property({ type: 'decimal', precision: 10, scale: 2 })
originX = 0
@ -61,6 +64,15 @@ export class BaseMapObject extends BaseEntity {
return this.tags
}
setPivotPoints(pivotPoints: { x: number; y: number; }[]) {
this.pivotPoints = pivotPoints
return this
}
getPivotPoints() {
return this.pivotPoints
}
setOriginX(originX: number) {
this.originX = originX
return this

View File

@ -7,6 +7,7 @@ type Payload = {
id: UUID
name: string
tags: string[]
pivotPoints: { x: number; y: number; }[]
originX: number
originY: number
frameRate: number
@ -30,6 +31,7 @@ export default class MapObjectUpdateEvent extends BaseEvent {
if (data.name !== undefined) mapObject.name = data.name
if (data.tags !== undefined) mapObject.tags = data.tags
if (data.pivotPoints !== undefined) mapObject.pivotPoints = data.pivotPoints
if (data.originX !== undefined) mapObject.originX = data.originX
if (data.originY !== undefined) mapObject.originY = data.originY
if (data.frameRate !== undefined) mapObject.frameRate = data.frameRate

View File

@ -91,7 +91,9 @@
"indexes": [
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -148,7 +150,9 @@
"name": "map_effect",
"indexes": [
{
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"composite": false,
"keyName": "map_effect_map_id_index",
"constraint": false,
@ -157,7 +161,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -168,9 +174,13 @@
"foreignKeys": {
"map_effect_map_id_foreign": {
"constraintName": "map_effect_map_id_foreign",
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"localTableName": "map_effect",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -207,7 +217,12 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"enumItems": ["BLOCK", "TELEPORT", "NPC", "ITEM"],
"enumItems": [
"BLOCK",
"TELEPORT",
"NPC",
"ITEM"
],
"mappedType": "enum"
},
"position_x": {
@ -244,7 +259,9 @@
"name": "map_event_tile",
"indexes": [
{
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"composite": false,
"keyName": "map_event_tile_map_id_index",
"constraint": false,
@ -252,7 +269,9 @@
"unique": false
},
{
"columnNames": ["teleport_id"],
"columnNames": [
"teleport_id"
],
"composite": false,
"keyName": "map_event_tile_teleport_id_unique",
"constraint": true,
@ -261,7 +280,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -272,18 +293,26 @@
"foreignKeys": {
"map_event_tile_map_id_foreign": {
"constraintName": "map_event_tile_map_id_foreign",
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"localTableName": "map_event_tile",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map",
"deleteRule": "cascade",
"updateRule": "cascade"
},
"map_event_tile_teleport_id_foreign": {
"constraintName": "map_event_tile_teleport_id_foreign",
"columnNames": ["teleport_id"],
"columnNames": [
"teleport_id"
],
"localTableName": "map_event_tile",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map_event_tile_teleport",
"deleteRule": "set null",
"updateRule": "cascade"
@ -357,7 +386,9 @@
"name": "map_event_tile_teleport",
"indexes": [
{
"columnNames": ["map_event_tile_id"],
"columnNames": [
"map_event_tile_id"
],
"composite": false,
"keyName": "map_event_tile_teleport_map_event_tile_id_unique",
"constraint": true,
@ -365,7 +396,9 @@
"unique": true
},
{
"columnNames": ["to_map_id"],
"columnNames": [
"to_map_id"
],
"composite": false,
"keyName": "map_event_tile_teleport_to_map_id_index",
"constraint": false,
@ -374,7 +407,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -385,18 +420,26 @@
"foreignKeys": {
"map_event_tile_teleport_map_event_tile_id_foreign": {
"constraintName": "map_event_tile_teleport_map_event_tile_id_foreign",
"columnNames": ["map_event_tile_id"],
"columnNames": [
"map_event_tile_id"
],
"localTableName": "map_event_tile_teleport",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map_event_tile",
"deleteRule": "cascade",
"updateRule": "cascade"
},
"map_event_tile_teleport_to_map_id_foreign": {
"constraintName": "map_event_tile_teleport_to_map_id_foreign",
"columnNames": ["to_map_id"],
"columnNames": [
"to_map_id"
],
"localTableName": "map_event_tile_teleport",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -432,7 +475,17 @@
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": true,
"nullable": false,
"length": null,
"mappedType": "json"
},
"pivot_points": {
"name": "pivot_points",
"type": "json",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"length": null,
"mappedType": "json"
},
@ -518,7 +571,9 @@
"indexes": [
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -598,7 +653,9 @@
"name": "placed_map_object",
"indexes": [
{
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"composite": false,
"keyName": "placed_map_object_map_id_index",
"constraint": false,
@ -606,7 +663,9 @@
"unique": false
},
{
"columnNames": ["map_object_id"],
"columnNames": [
"map_object_id"
],
"composite": false,
"keyName": "placed_map_object_map_object_id_index",
"constraint": false,
@ -615,7 +674,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -626,18 +687,26 @@
"foreignKeys": {
"placed_map_object_map_id_foreign": {
"constraintName": "placed_map_object_map_id_foreign",
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"localTableName": "placed_map_object",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map",
"deleteRule": "cascade",
"updateRule": "cascade"
},
"placed_map_object_map_object_id_foreign": {
"constraintName": "placed_map_object_map_object_id_foreign",
"columnNames": ["map_object_id"],
"columnNames": [
"map_object_id"
],
"localTableName": "placed_map_object",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map_object",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -692,7 +761,9 @@
"indexes": [
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -743,7 +814,16 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"enumItems": ["WEAPON", "HELMET", "CHEST", "LEGS", "BOOTS", "GLOVES", "RING", "NECKLACE"],
"enumItems": [
"WEAPON",
"HELMET",
"CHEST",
"LEGS",
"BOOTS",
"GLOVES",
"RING",
"NECKLACE"
],
"mappedType": "enum"
},
"stackable": {
@ -765,7 +845,13 @@
"primary": false,
"nullable": false,
"default": "'COMMON'",
"enumItems": ["COMMON", "UNCOMMON", "RARE", "EPIC", "LEGENDARY"],
"enumItems": [
"COMMON",
"UNCOMMON",
"RARE",
"EPIC",
"LEGENDARY"
],
"mappedType": "enum"
},
"sprite_id": {
@ -802,7 +888,9 @@
"name": "item",
"indexes": [
{
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"composite": false,
"keyName": "item_sprite_id_index",
"constraint": false,
@ -811,7 +899,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -822,9 +912,13 @@
"foreignKeys": {
"item_sprite_id_foreign": {
"constraintName": "item_sprite_id_foreign",
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"localTableName": "item",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "sprite",
"deleteRule": "set null",
"updateRule": "cascade"
@ -861,7 +955,10 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"enumItems": ["MALE", "FEMALE"],
"enumItems": [
"MALE",
"FEMALE"
],
"mappedType": "enum"
},
"race": {
@ -871,7 +968,13 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"enumItems": ["HUMAN", "ELF", "DWARF", "ORC", "GOBLIN"],
"enumItems": [
"HUMAN",
"ELF",
"DWARF",
"ORC",
"GOBLIN"
],
"mappedType": "enum"
},
"is_selectable": {
@ -919,7 +1022,9 @@
"name": "character_type",
"indexes": [
{
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"composite": false,
"keyName": "character_type_sprite_id_index",
"constraint": false,
@ -928,7 +1033,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -939,9 +1046,13 @@
"foreignKeys": {
"character_type_sprite_id_foreign": {
"constraintName": "character_type_sprite_id_foreign",
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"localTableName": "character_type",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "sprite",
"deleteRule": "set null",
"updateRule": "cascade"
@ -1027,7 +1138,9 @@
"name": "character_hair",
"indexes": [
{
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"composite": false,
"keyName": "character_hair_sprite_id_index",
"constraint": false,
@ -1036,7 +1149,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1047,9 +1162,13 @@
"foreignKeys": {
"character_hair_sprite_id_foreign": {
"constraintName": "character_hair_sprite_id_foreign",
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"localTableName": "character_hair",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "sprite",
"deleteRule": "set null",
"updateRule": "cascade"
@ -1160,7 +1279,9 @@
"name": "sprite_action",
"indexes": [
{
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"composite": false,
"keyName": "sprite_action_sprite_id_index",
"constraint": false,
@ -1169,7 +1290,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1180,9 +1303,13 @@
"foreignKeys": {
"sprite_action_sprite_id_foreign": {
"constraintName": "sprite_action_sprite_id_foreign",
"columnNames": ["sprite_id"],
"columnNames": [
"sprite_id"
],
"localTableName": "sprite_action",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "sprite",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -1247,7 +1374,9 @@
"indexes": [
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1315,7 +1444,9 @@
"name": "user",
"indexes": [
{
"columnNames": ["username"],
"columnNames": [
"username"
],
"composite": false,
"keyName": "user_username_unique",
"constraint": true,
@ -1323,7 +1454,9 @@
"unique": true
},
{
"columnNames": ["email"],
"columnNames": [
"email"
],
"composite": false,
"keyName": "user_email_unique",
"constraint": true,
@ -1332,7 +1465,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1389,7 +1524,9 @@
"name": "password_reset_token",
"indexes": [
{
"columnNames": ["user_id"],
"columnNames": [
"user_id"
],
"composite": false,
"keyName": "password_reset_token_user_id_index",
"constraint": false,
@ -1397,7 +1534,9 @@
"unique": false
},
{
"columnNames": ["token"],
"columnNames": [
"token"
],
"composite": false,
"keyName": "password_reset_token_token_unique",
"constraint": true,
@ -1406,7 +1545,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1417,9 +1558,13 @@
"foreignKeys": {
"password_reset_token_user_id_foreign": {
"constraintName": "password_reset_token_user_id_foreign",
"columnNames": ["user_id"],
"columnNames": [
"user_id"
],
"localTableName": "password_reset_token",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "user",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -1647,7 +1792,9 @@
"name": "character",
"indexes": [
{
"columnNames": ["user_id"],
"columnNames": [
"user_id"
],
"composite": false,
"keyName": "character_user_id_index",
"constraint": false,
@ -1655,7 +1802,9 @@
"unique": false
},
{
"columnNames": ["name"],
"columnNames": [
"name"
],
"composite": false,
"keyName": "character_name_unique",
"constraint": true,
@ -1663,7 +1812,9 @@
"unique": true
},
{
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"composite": false,
"keyName": "character_map_id_index",
"constraint": false,
@ -1671,7 +1822,9 @@
"unique": false
},
{
"columnNames": ["character_type_id"],
"columnNames": [
"character_type_id"
],
"composite": false,
"keyName": "character_character_type_id_index",
"constraint": false,
@ -1679,7 +1832,9 @@
"unique": false
},
{
"columnNames": ["character_hair_id"],
"columnNames": [
"character_hair_id"
],
"composite": false,
"keyName": "character_character_hair_id_index",
"constraint": false,
@ -1688,7 +1843,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1699,35 +1856,51 @@
"foreignKeys": {
"character_user_id_foreign": {
"constraintName": "character_user_id_foreign",
"columnNames": ["user_id"],
"columnNames": [
"user_id"
],
"localTableName": "character",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "user",
"deleteRule": "cascade",
"updateRule": "cascade"
},
"character_map_id_foreign": {
"constraintName": "character_map_id_foreign",
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"localTableName": "character",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map",
"updateRule": "cascade"
},
"character_character_type_id_foreign": {
"constraintName": "character_character_type_id_foreign",
"columnNames": ["character_type_id"],
"columnNames": [
"character_type_id"
],
"localTableName": "character",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "character_type",
"deleteRule": "set null",
"updateRule": "cascade"
},
"character_character_hair_id_foreign": {
"constraintName": "character_character_hair_id_foreign",
"columnNames": ["character_hair_id"],
"columnNames": [
"character_hair_id"
],
"localTableName": "character",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "character_hair",
"deleteRule": "set null",
"updateRule": "cascade"
@ -1791,7 +1964,9 @@
"name": "chat",
"indexes": [
{
"columnNames": ["character_id"],
"columnNames": [
"character_id"
],
"composite": false,
"keyName": "chat_character_id_index",
"constraint": false,
@ -1799,7 +1974,9 @@
"unique": false
},
{
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"composite": false,
"keyName": "chat_map_id_index",
"constraint": false,
@ -1808,7 +1985,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1819,18 +1998,26 @@
"foreignKeys": {
"chat_character_id_foreign": {
"constraintName": "chat_character_id_foreign",
"columnNames": ["character_id"],
"columnNames": [
"character_id"
],
"localTableName": "chat",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "character",
"deleteRule": "cascade",
"updateRule": "cascade"
},
"chat_map_id_foreign": {
"constraintName": "chat_map_id_foreign",
"columnNames": ["map_id"],
"columnNames": [
"map_id"
],
"localTableName": "chat",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "map",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -1884,7 +2071,9 @@
"name": "character_item",
"indexes": [
{
"columnNames": ["character_id"],
"columnNames": [
"character_id"
],
"composite": false,
"keyName": "character_item_character_id_index",
"constraint": false,
@ -1892,7 +2081,9 @@
"unique": false
},
{
"columnNames": ["item_id"],
"columnNames": [
"item_id"
],
"composite": false,
"keyName": "character_item_item_id_index",
"constraint": false,
@ -1901,7 +2092,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -1912,18 +2105,26 @@
"foreignKeys": {
"character_item_character_id_foreign": {
"constraintName": "character_item_character_id_foreign",
"columnNames": ["character_id"],
"columnNames": [
"character_id"
],
"localTableName": "character_item",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "character",
"deleteRule": "cascade",
"updateRule": "cascade"
},
"character_item_item_id_foreign": {
"constraintName": "character_item_item_id_foreign",
"columnNames": ["item_id"],
"columnNames": [
"item_id"
],
"localTableName": "character_item",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "item",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -1950,7 +2151,14 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"enumItems": ["HEAD", "BODY", "ARMS", "LEGS", "NECK", "RING"],
"enumItems": [
"HEAD",
"BODY",
"ARMS",
"LEGS",
"NECK",
"RING"
],
"mappedType": "enum"
},
"character_id": {
@ -1977,7 +2185,9 @@
"name": "character_equipment",
"indexes": [
{
"columnNames": ["character_id"],
"columnNames": [
"character_id"
],
"composite": false,
"keyName": "character_equipment_character_id_index",
"constraint": false,
@ -1985,7 +2195,9 @@
"unique": false
},
{
"columnNames": ["character_item_id"],
"columnNames": [
"character_item_id"
],
"composite": false,
"keyName": "character_equipment_character_item_id_index",
"constraint": false,
@ -1994,7 +2206,9 @@
},
{
"keyName": "PRIMARY",
"columnNames": ["id"],
"columnNames": [
"id"
],
"composite": false,
"constraint": true,
"primary": true,
@ -2005,18 +2219,26 @@
"foreignKeys": {
"character_equipment_character_id_foreign": {
"constraintName": "character_equipment_character_id_foreign",
"columnNames": ["character_id"],
"columnNames": [
"character_id"
],
"localTableName": "character_equipment",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "character",
"deleteRule": "cascade",
"updateRule": "cascade"
},
"character_equipment_character_item_id_foreign": {
"constraintName": "character_equipment_character_item_id_foreign",
"columnNames": ["character_item_id"],
"columnNames": [
"character_item_id"
],
"localTableName": "character_equipment",
"referencedColumnNames": ["id"],
"referencedColumnNames": [
"id"
],
"referencedTableName": "character_item",
"deleteRule": "cascade",
"updateRule": "cascade"
@ -2063,7 +2285,9 @@
"indexes": [
{
"keyName": "PRIMARY",
"columnNames": ["date"],
"columnNames": [
"date"
],
"composite": false,
"constraint": true,
"primary": true,

View File

@ -1,126 +0,0 @@
import { Migration } from '@mikro-orm/migrations'
export class Migration20250207212301 extends Migration {
override async up(): Promise<void> {
this.addSql(
`create table \`map\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`width\` int not null default 10, \`height\` int not null default 10, \`tiles\` json null, \`pvp\` tinyint(1) not null default false, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`create table \`map_effect\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`effect\` varchar(255) not null, \`strength\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(`alter table \`map_effect\` add index \`map_effect_map_id_index\`(\`map_id\`);`)
this.addSql(
`create table \`map_event_tile\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`type\` enum('BLOCK', 'TELEPORT', 'NPC', 'ITEM') not null, \`position_x\` int not null, \`position_y\` int not null, \`teleport_id\` varchar(255) null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`map_event_tile\` add index \`map_event_tile_map_id_index\`(\`map_id\`);`)
this.addSql(`alter table \`map_event_tile\` add unique \`map_event_tile_teleport_id_unique\`(\`teleport_id\`);`)
this.addSql(
`create table \`map_event_tile_teleport\` (\`id\` varchar(255) not null, \`map_event_tile_id\` varchar(255) not null, \`to_map_id\` varchar(255) not null, \`to_rotation\` int not null, \`to_position_x\` int not null, \`to_position_y\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`map_event_tile_teleport\` add unique \`map_event_tile_teleport_map_event_tile_id_unique\`(\`map_event_tile_id\`);`)
this.addSql(`alter table \`map_event_tile_teleport\` add index \`map_event_tile_teleport_to_map_id_index\`(\`to_map_id\`);`)
this.addSql(
`create table \`map_object\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`tags\` json null, \`origin_x\` numeric(10,2) not null default 0, \`origin_y\` numeric(10,2) not null default 0, \`frame_rate\` int not null default 0, \`frame_width\` int not null default 0, \`frame_height\` int not null default 0, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(
`create table \`placed_map_object\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`map_object_id\` varchar(255) not null, \`is_rotated\` tinyint(1) not null default false, \`position_x\` int not null default 0, \`position_y\` int not null default 0, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`placed_map_object\` add index \`placed_map_object_map_id_index\`(\`map_id\`);`)
this.addSql(`alter table \`placed_map_object\` add index \`placed_map_object_map_object_id_index\`(\`map_object_id\`);`)
this.addSql(`create table \`sprite\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(
`create table \`item\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`description\` varchar(255) not null default '', \`item_type\` enum('WEAPON', 'HELMET', 'CHEST', 'LEGS', 'BOOTS', 'GLOVES', 'RING', 'NECKLACE') not null, \`stackable\` tinyint(1) not null default false, \`rarity\` enum('COMMON', 'UNCOMMON', 'RARE', 'EPIC', 'LEGENDARY') not null default 'COMMON', \`sprite_id\` varchar(255) null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`item\` add index \`item_sprite_id_index\`(\`sprite_id\`);`)
this.addSql(
`create table \`character_type\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`gender\` enum('MALE', 'FEMALE') not null, \`race\` enum('HUMAN', 'ELF', 'DWARF', 'ORC', 'GOBLIN') not null, \`is_selectable\` tinyint(1) not null default false, \`sprite_id\` varchar(255) null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`character_type\` add index \`character_type_sprite_id_index\`(\`sprite_id\`);`)
this.addSql(
`create table \`character_hair\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`gender\` varchar(255) not null default 'MALE', \`is_selectable\` tinyint(1) not null default false, \`sprite_id\` varchar(255) null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`character_hair\` add index \`character_hair_sprite_id_index\`(\`sprite_id\`);`)
this.addSql(
`create table \`sprite_action\` (\`id\` varchar(255) not null, \`sprite_id\` varchar(255) not null, \`action\` varchar(255) not null, \`sprites\` json null, \`origin_x\` numeric(5,2) not null default 0, \`origin_y\` numeric(5,2) not null default 0, \`frame_width\` int not null default 0, \`frame_height\` int not null default 0, \`frame_rate\` int not null default 0, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`sprite_action\` add index \`sprite_action_sprite_id_index\`(\`sprite_id\`);`)
this.addSql(`create table \`tile\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`tags\` json null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(`create table \`user\` (\`id\` varchar(255) not null, \`username\` varchar(255) not null, \`email\` varchar(255) not null, \`password\` varchar(255) not null, \`online\` tinyint(1) not null default false, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(`alter table \`user\` add unique \`user_username_unique\`(\`username\`);`)
this.addSql(`alter table \`user\` add unique \`user_email_unique\`(\`email\`);`)
this.addSql(`create table \`password_reset_token\` (\`id\` varchar(255) not null, \`user_id\` varchar(255) not null, \`token\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(`alter table \`password_reset_token\` add index \`password_reset_token_user_id_index\`(\`user_id\`);`)
this.addSql(`alter table \`password_reset_token\` add unique \`password_reset_token_token_unique\`(\`token\`);`)
this.addSql(
`create table \`character\` (\`id\` varchar(255) not null, \`user_id\` varchar(255) not null, \`name\` varchar(255) not null, \`online\` tinyint(1) not null default false, \`role\` varchar(255) not null default 'player', \`map_id\` varchar(255) not null, \`position_x\` int not null default 0, \`position_y\` int not null default 0, \`rotation\` int not null default 0, \`character_type_id\` varchar(255) null, \`character_hair_id\` varchar(255) null, \`alignment\` int not null default 50, \`hitpoints\` int not null default 100, \`mana\` int not null default 100, \`level\` int not null default 1, \`experience\` int not null default 0, \`strength\` int not null default 10, \`dexterity\` int not null default 10, \`intelligence\` int not null default 10, \`wisdom\` int not null default 10, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`character\` add index \`character_user_id_index\`(\`user_id\`);`)
this.addSql(`alter table \`character\` add unique \`character_name_unique\`(\`name\`);`)
this.addSql(`alter table \`character\` add index \`character_map_id_index\`(\`map_id\`);`)
this.addSql(`alter table \`character\` add index \`character_character_type_id_index\`(\`character_type_id\`);`)
this.addSql(`alter table \`character\` add index \`character_character_hair_id_index\`(\`character_hair_id\`);`)
this.addSql(`create table \`chat\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`message\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(`alter table \`chat\` add index \`chat_character_id_index\`(\`character_id\`);`)
this.addSql(`alter table \`chat\` add index \`chat_map_id_index\`(\`map_id\`);`)
this.addSql(`create table \`character_item\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`item_id\` varchar(255) not null, \`quantity\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(`alter table \`character_item\` add index \`character_item_character_id_index\`(\`character_id\`);`)
this.addSql(`alter table \`character_item\` add index \`character_item_item_id_index\`(\`item_id\`);`)
this.addSql(
`create table \`character_equipment\` (\`id\` varchar(255) not null, \`slot\` enum('HEAD', 'BODY', 'ARMS', 'LEGS', 'NECK', 'RING') not null, \`character_id\` varchar(255) not null, \`character_item_id\` varchar(255) not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`
)
this.addSql(`alter table \`character_equipment\` add index \`character_equipment_character_id_index\`(\`character_id\`);`)
this.addSql(`alter table \`character_equipment\` add index \`character_equipment_character_item_id_index\`(\`character_item_id\`);`)
this.addSql(`create table \`world\` (\`date\` datetime not null, \`rain_percentage\` int not null default 0, \`fog_density\` int not null default 0, primary key (\`date\`)) default character set utf8mb4 engine = InnoDB;`)
this.addSql(`alter table \`map_effect\` add constraint \`map_effect_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_teleport_id_foreign\` foreign key (\`teleport_id\`) references \`map_event_tile_teleport\` (\`id\`) on update cascade on delete set null;`)
this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_map_event_tile_id_foreign\` foreign key (\`map_event_tile_id\`) references \`map_event_tile\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_to_map_id_foreign\` foreign key (\`to_map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`placed_map_object\` add constraint \`placed_map_object_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`placed_map_object\` add constraint \`placed_map_object_map_object_id_foreign\` foreign key (\`map_object_id\`) references \`map_object\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`item\` add constraint \`item_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete set null;`)
this.addSql(`alter table \`character_type\` add constraint \`character_type_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete set null;`)
this.addSql(`alter table \`character_hair\` add constraint \`character_hair_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete set null;`)
this.addSql(`alter table \`sprite_action\` add constraint \`sprite_action_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`password_reset_token\` add constraint \`password_reset_token_user_id_foreign\` foreign key (\`user_id\`) references \`user\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`character\` add constraint \`character_user_id_foreign\` foreign key (\`user_id\`) references \`user\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`character\` add constraint \`character_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade;`)
this.addSql(`alter table \`character\` add constraint \`character_character_type_id_foreign\` foreign key (\`character_type_id\`) references \`character_type\` (\`id\`) on update cascade on delete set null;`)
this.addSql(`alter table \`character\` add constraint \`character_character_hair_id_foreign\` foreign key (\`character_hair_id\`) references \`character_hair\` (\`id\`) on update cascade on delete set null;`)
this.addSql(`alter table \`chat\` add constraint \`chat_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`chat\` add constraint \`chat_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`character_item\` add constraint \`character_item_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`character_item\` add constraint \`character_item_item_id_foreign\` foreign key (\`item_id\`) references \`item\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`character_equipment\` add constraint \`character_equipment_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`)
this.addSql(`alter table \`character_equipment\` add constraint \`character_equipment_character_item_id_foreign\` foreign key (\`character_item_id\`) references \`character_item\` (\`id\`) on update cascade on delete cascade;`)
}
}

View File

@ -0,0 +1,190 @@
import { Migration } from '@mikro-orm/migrations';
export class Migration20250215152716 extends Migration {
override async up(): Promise<void> {
this.addSql(`create table \`map\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`width\` int not null default 10, \`height\` int not null default 10, \`tiles\` json null, \`pvp\` tinyint(1) not null default false, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`create table \`map_effect\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`effect\` varchar(255) not null, \`strength\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`map_effect\` add index \`map_effect_map_id_index\`(\`map_id\`);`);
this.addSql(`create table \`map_event_tile\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`type\` enum('BLOCK', 'TELEPORT', 'NPC', 'ITEM') not null, \`position_x\` int not null, \`position_y\` int not null, \`teleport_id\` varchar(255) null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`map_event_tile\` add index \`map_event_tile_map_id_index\`(\`map_id\`);`);
this.addSql(`alter table \`map_event_tile\` add unique \`map_event_tile_teleport_id_unique\`(\`teleport_id\`);`);
this.addSql(`create table \`map_event_tile_teleport\` (\`id\` varchar(255) not null, \`map_event_tile_id\` varchar(255) not null, \`to_map_id\` varchar(255) not null, \`to_rotation\` int not null, \`to_position_x\` int not null, \`to_position_y\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`map_event_tile_teleport\` add unique \`map_event_tile_teleport_map_event_tile_id_unique\`(\`map_event_tile_id\`);`);
this.addSql(`alter table \`map_event_tile_teleport\` add index \`map_event_tile_teleport_to_map_id_index\`(\`to_map_id\`);`);
this.addSql(`create table \`map_object\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`tags\` json not null, \`pivot_points\` json not null, \`origin_x\` numeric(10,2) not null default 0, \`origin_y\` numeric(10,2) not null default 0, \`frame_rate\` int not null default 0, \`frame_width\` int not null default 0, \`frame_height\` int not null default 0, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`create table \`placed_map_object\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`map_object_id\` varchar(255) not null, \`is_rotated\` tinyint(1) not null default false, \`position_x\` int not null default 0, \`position_y\` int not null default 0, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`placed_map_object\` add index \`placed_map_object_map_id_index\`(\`map_id\`);`);
this.addSql(`alter table \`placed_map_object\` add index \`placed_map_object_map_object_id_index\`(\`map_object_id\`);`);
this.addSql(`create table \`sprite\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`create table \`item\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`description\` varchar(255) not null default '', \`item_type\` enum('WEAPON', 'HELMET', 'CHEST', 'LEGS', 'BOOTS', 'GLOVES', 'RING', 'NECKLACE') not null, \`stackable\` tinyint(1) not null default false, \`rarity\` enum('COMMON', 'UNCOMMON', 'RARE', 'EPIC', 'LEGENDARY') not null default 'COMMON', \`sprite_id\` varchar(255) null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`item\` add index \`item_sprite_id_index\`(\`sprite_id\`);`);
this.addSql(`create table \`character_type\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`gender\` enum('MALE', 'FEMALE') not null, \`race\` enum('HUMAN', 'ELF', 'DWARF', 'ORC', 'GOBLIN') not null, \`is_selectable\` tinyint(1) not null default false, \`sprite_id\` varchar(255) null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`character_type\` add index \`character_type_sprite_id_index\`(\`sprite_id\`);`);
this.addSql(`create table \`character_hair\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`gender\` varchar(255) not null default 'MALE', \`is_selectable\` tinyint(1) not null default false, \`sprite_id\` varchar(255) null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`character_hair\` add index \`character_hair_sprite_id_index\`(\`sprite_id\`);`);
this.addSql(`create table \`sprite_action\` (\`id\` varchar(255) not null, \`sprite_id\` varchar(255) not null, \`action\` varchar(255) not null, \`sprites\` json null, \`origin_x\` numeric(5,2) not null default 0, \`origin_y\` numeric(5,2) not null default 0, \`frame_width\` int not null default 0, \`frame_height\` int not null default 0, \`frame_rate\` int not null default 0, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`sprite_action\` add index \`sprite_action_sprite_id_index\`(\`sprite_id\`);`);
this.addSql(`create table \`tile\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`tags\` json null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`create table \`user\` (\`id\` varchar(255) not null, \`username\` varchar(255) not null, \`email\` varchar(255) not null, \`password\` varchar(255) not null, \`online\` tinyint(1) not null default false, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`user\` add unique \`user_username_unique\`(\`username\`);`);
this.addSql(`alter table \`user\` add unique \`user_email_unique\`(\`email\`);`);
this.addSql(`create table \`password_reset_token\` (\`id\` varchar(255) not null, \`user_id\` varchar(255) not null, \`token\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`password_reset_token\` add index \`password_reset_token_user_id_index\`(\`user_id\`);`);
this.addSql(`alter table \`password_reset_token\` add unique \`password_reset_token_token_unique\`(\`token\`);`);
this.addSql(`create table \`character\` (\`id\` varchar(255) not null, \`user_id\` varchar(255) not null, \`name\` varchar(255) not null, \`online\` tinyint(1) not null default false, \`role\` varchar(255) not null default 'player', \`map_id\` varchar(255) not null, \`position_x\` int not null default 0, \`position_y\` int not null default 0, \`rotation\` int not null default 0, \`character_type_id\` varchar(255) null, \`character_hair_id\` varchar(255) null, \`alignment\` int not null default 50, \`hitpoints\` int not null default 100, \`mana\` int not null default 100, \`level\` int not null default 1, \`experience\` int not null default 0, \`strength\` int not null default 10, \`dexterity\` int not null default 10, \`intelligence\` int not null default 10, \`wisdom\` int not null default 10, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`character\` add index \`character_user_id_index\`(\`user_id\`);`);
this.addSql(`alter table \`character\` add unique \`character_name_unique\`(\`name\`);`);
this.addSql(`alter table \`character\` add index \`character_map_id_index\`(\`map_id\`);`);
this.addSql(`alter table \`character\` add index \`character_character_type_id_index\`(\`character_type_id\`);`);
this.addSql(`alter table \`character\` add index \`character_character_hair_id_index\`(\`character_hair_id\`);`);
this.addSql(`create table \`chat\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`message\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`chat\` add index \`chat_character_id_index\`(\`character_id\`);`);
this.addSql(`alter table \`chat\` add index \`chat_map_id_index\`(\`map_id\`);`);
this.addSql(`create table \`character_item\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`item_id\` varchar(255) not null, \`quantity\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`character_item\` add index \`character_item_character_id_index\`(\`character_id\`);`);
this.addSql(`alter table \`character_item\` add index \`character_item_item_id_index\`(\`item_id\`);`);
this.addSql(`create table \`character_equipment\` (\`id\` varchar(255) not null, \`slot\` enum('HEAD', 'BODY', 'ARMS', 'LEGS', 'NECK', 'RING') not null, \`character_id\` varchar(255) not null, \`character_item_id\` varchar(255) not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`character_equipment\` add index \`character_equipment_character_id_index\`(\`character_id\`);`);
this.addSql(`alter table \`character_equipment\` add index \`character_equipment_character_item_id_index\`(\`character_item_id\`);`);
this.addSql(`create table \`world\` (\`date\` datetime not null, \`rain_percentage\` int not null default 0, \`fog_density\` int not null default 0, primary key (\`date\`)) default character set utf8mb4 engine = InnoDB;`);
this.addSql(`alter table \`map_effect\` add constraint \`map_effect_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_teleport_id_foreign\` foreign key (\`teleport_id\`) references \`map_event_tile_teleport\` (\`id\`) on update cascade on delete set null;`);
this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_map_event_tile_id_foreign\` foreign key (\`map_event_tile_id\`) references \`map_event_tile\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_to_map_id_foreign\` foreign key (\`to_map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`placed_map_object\` add constraint \`placed_map_object_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`placed_map_object\` add constraint \`placed_map_object_map_object_id_foreign\` foreign key (\`map_object_id\`) references \`map_object\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`item\` add constraint \`item_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete set null;`);
this.addSql(`alter table \`character_type\` add constraint \`character_type_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete set null;`);
this.addSql(`alter table \`character_hair\` add constraint \`character_hair_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete set null;`);
this.addSql(`alter table \`sprite_action\` add constraint \`sprite_action_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`password_reset_token\` add constraint \`password_reset_token_user_id_foreign\` foreign key (\`user_id\`) references \`user\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`character\` add constraint \`character_user_id_foreign\` foreign key (\`user_id\`) references \`user\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`character\` add constraint \`character_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade;`);
this.addSql(`alter table \`character\` add constraint \`character_character_type_id_foreign\` foreign key (\`character_type_id\`) references \`character_type\` (\`id\`) on update cascade on delete set null;`);
this.addSql(`alter table \`character\` add constraint \`character_character_hair_id_foreign\` foreign key (\`character_hair_id\`) references \`character_hair\` (\`id\`) on update cascade on delete set null;`);
this.addSql(`alter table \`chat\` add constraint \`chat_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`chat\` add constraint \`chat_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`character_item\` add constraint \`character_item_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`character_item\` add constraint \`character_item_item_id_foreign\` foreign key (\`item_id\`) references \`item\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`character_equipment\` add constraint \`character_equipment_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`);
this.addSql(`alter table \`character_equipment\` add constraint \`character_equipment_character_item_id_foreign\` foreign key (\`character_item_id\`) references \`character_item\` (\`id\`) on update cascade on delete cascade;`);
}
override async down(): Promise<void> {
this.addSql(`alter table \`map_effect\` drop foreign key \`map_effect_map_id_foreign\`;`);
this.addSql(`alter table \`map_event_tile\` drop foreign key \`map_event_tile_map_id_foreign\`;`);
this.addSql(`alter table \`map_event_tile_teleport\` drop foreign key \`map_event_tile_teleport_to_map_id_foreign\`;`);
this.addSql(`alter table \`placed_map_object\` drop foreign key \`placed_map_object_map_id_foreign\`;`);
this.addSql(`alter table \`character\` drop foreign key \`character_map_id_foreign\`;`);
this.addSql(`alter table \`chat\` drop foreign key \`chat_map_id_foreign\`;`);
this.addSql(`alter table \`map_event_tile_teleport\` drop foreign key \`map_event_tile_teleport_map_event_tile_id_foreign\`;`);
this.addSql(`alter table \`map_event_tile\` drop foreign key \`map_event_tile_teleport_id_foreign\`;`);
this.addSql(`alter table \`placed_map_object\` drop foreign key \`placed_map_object_map_object_id_foreign\`;`);
this.addSql(`alter table \`item\` drop foreign key \`item_sprite_id_foreign\`;`);
this.addSql(`alter table \`character_type\` drop foreign key \`character_type_sprite_id_foreign\`;`);
this.addSql(`alter table \`character_hair\` drop foreign key \`character_hair_sprite_id_foreign\`;`);
this.addSql(`alter table \`sprite_action\` drop foreign key \`sprite_action_sprite_id_foreign\`;`);
this.addSql(`alter table \`character_item\` drop foreign key \`character_item_item_id_foreign\`;`);
this.addSql(`alter table \`character\` drop foreign key \`character_character_type_id_foreign\`;`);
this.addSql(`alter table \`character\` drop foreign key \`character_character_hair_id_foreign\`;`);
this.addSql(`alter table \`password_reset_token\` drop foreign key \`password_reset_token_user_id_foreign\`;`);
this.addSql(`alter table \`character\` drop foreign key \`character_user_id_foreign\`;`);
this.addSql(`alter table \`chat\` drop foreign key \`chat_character_id_foreign\`;`);
this.addSql(`alter table \`character_item\` drop foreign key \`character_item_character_id_foreign\`;`);
this.addSql(`alter table \`character_equipment\` drop foreign key \`character_equipment_character_id_foreign\`;`);
this.addSql(`alter table \`character_equipment\` drop foreign key \`character_equipment_character_item_id_foreign\`;`);
this.addSql(`drop table if exists \`map\`;`);
this.addSql(`drop table if exists \`map_effect\`;`);
this.addSql(`drop table if exists \`map_event_tile\`;`);
this.addSql(`drop table if exists \`map_event_tile_teleport\`;`);
this.addSql(`drop table if exists \`map_object\`;`);
this.addSql(`drop table if exists \`placed_map_object\`;`);
this.addSql(`drop table if exists \`sprite\`;`);
this.addSql(`drop table if exists \`item\`;`);
this.addSql(`drop table if exists \`character_type\`;`);
this.addSql(`drop table if exists \`character_hair\`;`);
this.addSql(`drop table if exists \`sprite_action\`;`);
this.addSql(`drop table if exists \`tile\`;`);
this.addSql(`drop table if exists \`user\`;`);
this.addSql(`drop table if exists \`password_reset_token\`;`);
this.addSql(`drop table if exists \`character\`;`);
this.addSql(`drop table if exists \`chat\`;`);
this.addSql(`drop table if exists \`character_item\`;`);
this.addSql(`drop table if exists \`character_equipment\`;`);
this.addSql(`drop table if exists \`world\`;`);
}
}

View File

@ -10,7 +10,7 @@
"verbatimModuleSyntax": true,
"lib": ["ESNext"],
"target": "es2022",
"moduleResolution": "NodeNext",
"moduleResolution": "bundler",
// Strictness
"strict": true,