interface EngineSnapshot {
    board: Engine.BoardSquare[][];
    connectedBoard: ConnectedBoardSquare[][];
    currentSpike: number;
    falling: TetrominoSnapshot;
    frame: number;
    garbage: GarbageQueueSnapshot;
    glock: number;
    hold: null | Engine.Mino;
    holdLocked: boolean;
    ige: IGEHandlerSnapshot;
    input: {
        firstInputTime: number;
        keys: {
            hold: boolean;
            rotate180: boolean;
            rotateCCW: boolean;
            rotateCW: boolean;
            softDrop: boolean;
        };
        lastPieceTime: number;
        lastShift: number;
        lShift: {
            arr: number;
            das: number;
            dir: -1;
            held: boolean;
        };
        rShift: {
            arr: number;
            das: number;
            dir: 1;
            held: boolean;
        };
        time: {
            frameoffset: number;
            locked: boolean;
            prev: number;
            start: number;
            zero: boolean;
        };
    };
    lastSpin: null | {
        piece: Engine.Mino;
        type: SpinType;
    };
    lastWasClear: boolean;
    queue: number;
    resCache: {
        garbage: {
            received: OutgoingGarbage[];
            sent: number[];
        };
        keys: Key[];
        lastLock: number;
        pieces: number;
    };
    state: number;
    stats: {
        b2b: number;
        combo: number;
        garbage: {
            attack: number;
            cleared: number;
            receive: number;
            sent: number;
        };
        lines: number;
        pieces: number;
    };
    subframe: number;
    targets?: number[];
}

Properties

board: Engine.BoardSquare[][]
connectedBoard: ConnectedBoardSquare[][]
currentSpike: number
frame: number
glock: number
hold: null | Engine.Mino
holdLocked: boolean
input: {
    firstInputTime: number;
    keys: {
        hold: boolean;
        rotate180: boolean;
        rotateCCW: boolean;
        rotateCW: boolean;
        softDrop: boolean;
    };
    lastPieceTime: number;
    lastShift: number;
    lShift: {
        arr: number;
        das: number;
        dir: -1;
        held: boolean;
    };
    rShift: {
        arr: number;
        das: number;
        dir: 1;
        held: boolean;
    };
    time: {
        frameoffset: number;
        locked: boolean;
        prev: number;
        start: number;
        zero: boolean;
    };
}
lastSpin: null | {
    piece: Engine.Mino;
    type: SpinType;
}
lastWasClear: boolean
queue: number
resCache: {
    garbage: {
        received: OutgoingGarbage[];
        sent: number[];
    };
    keys: Key[];
    lastLock: number;
    pieces: number;
}
state: number
stats: {
    b2b: number;
    combo: number;
    garbage: {
        attack: number;
        cleared: number;
        receive: number;
        sent: number;
    };
    lines: number;
    pieces: number;
}
subframe: number
targets?: number[]