UNPKG

@haelp/teto

Version:

A typescript-based controllable TETR.IO client.

82 lines 2.45 kB
import type { AdapterKey } from "."; import type { BoardSquare, Engine, Mino } from "../../../engine"; import type { KickTableName } from "../../../engine/utils/kicks/data"; import type { Game } from "../../../types"; export interface CustomMessageData { info: void; move: void; config: void; state: void; pieces: void; play: void; } export declare namespace Incoming { interface Info<Data extends CustomMessageData> { type: "info"; name: string; version: string; author: string; data: Data["info"]; } interface Move<Data extends CustomMessageData> { type: "move"; keys: AdapterKey[]; data: Data["move"]; } type all<Data extends CustomMessageData> = Info<Data> | Move<Data>; type EventMap<Data extends CustomMessageData> = { [key in all<Data>["type"]]: Extract<all<Data>, { type: key; }>; }; } export declare namespace Outgoing { interface Config<Data extends CustomMessageData> { type: "config"; boardWidth: number; boardHeight: number; kicks: KickTableName; spins: Game.SpinBonuses; comboTable: Game.ComboTable; b2bCharing: boolean; b2bChargeAt: number; b2bChargeBase: number; b2bChaining: boolean; garbageMultiplier: number; garbageCap: number; garbageSpecialBonus: boolean; pcB2b: number; pcGarbage: number; queue: Engine["queue"]["value"]; data: Data["config"]; } interface State<Data extends CustomMessageData> { type: "state"; board: BoardSquare[][]; current: Mino; hold: Mino | null; queue: Mino[]; garbage: number[]; combo: number; b2b: number; data: Data["state"]; } interface Pieces<Data extends CustomMessageData> { type: "pieces"; pieces: Mino[]; data: Data["pieces"]; } interface Play<Data extends CustomMessageData> { type: "play"; garbageMultiplier: number; garbageCap: number; data: Data["play"]; } type all<Data extends CustomMessageData> = Config<Data> | State<Data> | Pieces<Data> | Play<Data>; type EventMap<Data extends CustomMessageData> = { [key in all<Data>["type"]]: Extract<all<Data>, { type: key; }>; }; } //# sourceMappingURL=messages.d.ts.map