puzzlescript
Version:
Play PuzzleScript games in your terminal!
52 lines (51 loc) • 2.25 kB
TypeScript
import { CellSaveState } from '../engine';
import { GameData } from '../models/game';
import { A11Y_MESSAGE } from '../models/rule';
import { GameSprite } from '../models/tile';
import { Soundish } from '../parser/astTypes';
import { Cellish, GameEngineHandler, GameEngineHandlerOptional, INPUT_BUTTON, Optional } from '../util';
import BaseUI from './base';
declare class TableUI extends BaseUI implements GameEngineHandler {
private readonly table;
private readonly liveLog;
private inputsProcessed;
private tableCells;
private handler;
private interactsWithPlayer;
private usedInMessages;
private didPressCauseTick;
private silencedOutput;
private messagesSincePress;
private isCollecting;
private collectedSprites;
private collectingTickCount;
constructor(table: HTMLElement, handler?: GameEngineHandlerOptional);
onPause(): void;
onResume(): void;
onGameChange(gameData: GameData): void;
onPress(dir: INPUT_BUTTON): void;
onLevelLoad(level: number, newLevelSize: Optional<{
rows: number;
cols: number;
}>): void;
onLevelChange(levelNum: number, cells: Optional<Cellish[][]>, message: Optional<string>): void;
onMessage(msg: string): Promise<void>;
onWin(): void;
onSound(sound: Soundish): Promise<void>;
onTick(changedCells: Set<Cellish>, checkpoint: Optional<CellSaveState>, hasAgain: boolean, a11yMessages: Array<A11Y_MESSAGE<Cellish, GameSprite>>): void;
willAllLevelsFitOnScreen(gameData: GameData): boolean;
_drawPixel(x: number, y: number, fgHex: string, bgHex: Optional<string>, chars: string): void;
clearScreen(): void;
protected renderLevelScreen(levelRows: Cellish[][], renderScreenDepth: number): void;
protected setPixel(x: number, y: number, hex: string, fgHex: Optional<string>, chars: string): void;
protected drawCellsAfterRecentering(cells: Iterable<Cellish>, renderScreenDepth: number): void;
protected checkIfCellCanBeDrawnOnScreen(cellStartX: number, cellStartY: number): boolean;
protected getMaxSize(): {
columns: number;
rows: number;
};
private printMessageLog;
private markAcceptingInput;
private _drawCell;
}
export default TableUI;