Spaces:
Sleeping
Sleeping
import type { Integratable } from "pocket-physics"; | |
export const ballsPositionsUpdatesPerSecond = 8; | |
export const ballRadius = 14; | |
export const squareCanvasSizeInPixels = 680; | |
export type Ball = Integratable & { | |
id: number; | |
radius: number; | |
mass: number; | |
value: number; | |
label: string; | |
color: string; | |
lastTouchedTimestamp: number; | |
lastTouchedBySocketId?: string; | |
ownerSocketId?: string; | |
}; | |
export type BallsPositions = [objectId: number, x: number, y: number][]; | |
export type Scoreboard = [nick: string, score: number, tableId: number][]; | |
export enum ServerToClientEventName { | |
Message = "A", | |
Objects = "B", | |
Creation = "C", | |
Deletion = "D", | |
Scored = "E", | |
Positions = "F", | |
Scoreboard = "G", | |
} | |
export enum ClientToServerEventName { | |
Message = "A", | |
Click = "B", | |
} | |
export interface ServerToClientEvents { | |
[ServerToClientEventName.Message]: (message: string) => void; | |
[ServerToClientEventName.Objects]: (objects: Ball[]) => void; | |
[ServerToClientEventName.Creation]: (object: Ball) => void; | |
[ServerToClientEventName.Deletion]: (id: number) => void; | |
[ServerToClientEventName.Scored]: (value: number, positionX: number, positionY: number) => void; | |
[ServerToClientEventName.Positions]: (ballsPositions: BallsPositions) => void; | |
[ServerToClientEventName.Scoreboard]: (overallScoreboard: Scoreboard, tableScoreboard: Scoreboard) => void; | |
} | |
export interface ClientToServerEvents { | |
[ClientToServerEventName.Message]: (message: string) => void; | |
[ClientToServerEventName.Click]: (positionX: number, positionY: number) => void; | |
} | |