GameStatetype
The immutable authoritative native game state, including its board, random state and recording.
Import it
import type { GameState } from "@johnmorrisdotca/houseki/magnetic-blocks";
Definition
interface GameState {
readonly game: 'magnetic-blocks';
readonly rules: 'magnetic-blocks-1';
readonly settings: Settings;
readonly board: readonly (Gem | null)[];
readonly bonds: readonly Bond[];
readonly active: Block | null;
readonly queue: readonly (readonly [
Colour,
Colour,
Colour,
Colour
])[];
readonly randomState: number;
readonly nextId: number;
readonly phase: Phase;
readonly pausedPhase?: Exclude<Phase, 'paused'>;
readonly score: number;
readonly moves: number;
readonly placements: number;
readonly chain: number;
readonly maxChain: number;
readonly floor: Floor;
readonly nextFloor: Floor;
readonly floorSwitchCharges: 0 | 1;
readonly pendingFloorOverride: Floor | null;
readonly pendingClear: readonly number[];
readonly gravityBoard: readonly (Gem | null)[] | null;
readonly resolutionTick: number;
readonly impactRemovedIds: readonly number[];
readonly elapsedTicks: number;
readonly recording: readonly RecordedAction[];
readonly reason?: string;
}
Members
| Name | Type | Description |
|---|---|---|
game | "magnetic-blocks" | |
rules | "magnetic-blocks-1" | |
settings | Settings | |
board | readonly (Gem | null)[] | |
bonds | readonly Bond[] | |
active | Block | null | |
queue | readonly (readonly [Colour, Colour, Colour, Colour])[] | |
randomState | number | |
nextId | number | |
phase | Phase | |
pausedPhase (optional) | "falling" | "clear-mark" | "clear-remove" | "gravity" | "won" | "lost" | "finished" | undefined | |
score | number | |
moves | number | |
placements | number | |
chain | number | |
maxChain | number | |
floor | Floor | |
nextFloor | Floor | |
floorSwitchCharges | 0 | 1 | |
pendingFloorOverride | Floor | null | |
pendingClear | readonly number[] | |
gravityBoard | readonly (Gem | null)[] | null | |
resolutionTick | number | |
impactRemovedIds | readonly number[] | |
elapsedTicks | number | |
recording | readonly RecordedAction[] | |
reason (optional) | string | undefined |
Examples
import { createGame } from "@johnmorrisdotca/houseki/magnetic-blocks";
import type { GameState } from "@johnmorrisdotca/houseki/magnetic-blocks";
const state=createGame({seed:"docs"});
const value: GameState = state;
console.log(value == null ? value : typeof value === "object" ? Object.keys(value).slice(0,6) : value);[ 'game', 'rules', 'settings', 'board', 'bonds', 'active' ]What it prints (run when this page was built)