66 lines
1.3 KiB
TypeScript
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
|
|
// }
|