66 lines
1.3 KiB
TypeScript

import { Server, Socket } from 'socket.io'
import { Character } from'@/entities/character'
import { MapEventTile } from'@/entities/mapEventTile'
import { MapEventTileTeleport } from'@/entities/mapEventTileTeleport'
export type UUID = `${string}-${string}-${string}-${string}-${string}`
export type TSocket = Socket & {
userId?: UUID
characterId?: UUID
handshake?: {
query?: {
token?: any
}
}
request?: {
headers?: {
cookie?: any
}
}
}
export type ExtendedCharacter = Character & {
isMoving?: boolean
resetMovement?: boolean
}
export type MapEventTileWithTeleport = MapEventTile & {
teleport: MapEventTileTeleport
}
export type AssetData = {
key: string
data: string
group: 'tiles' | 'objects' | 'sprites' | 'sprite_animations' | 'sound' | 'music' | 'ui' | 'font' | 'other'
updatedAt: Date
originX?: number
originY?: number
frameRate?: number
frameWidth?: number
frameHeight?: number
frameCount?: number
}
export type WorldSettings = {
date: Date
weatherState: WeatherState
}
export type WeatherState = {
rainPercentage: number
fogDensity: number
}
export interface Command {
new (io: Server): {
execute(args: string[]): Promise<void>
}
}
// export type TCharacter = Socket & {
// user?: User
// character?: Character
// }