import { SimpleVector2 } from "../../../../math"; import { GridBlockItemFilter } from "../grid-filters"; export interface Grid2Block { readonly item: T; readonly coordinates: SimpleVector2; } export interface Grid2Holder { readonly length: number; get(x: number, y: number): T | undefined; set(x: number, y: number, value: T): void; /** * Iterate over all elements. If callback returns false, iteration will breaks and function returns false. * If any callback call returns false, function returns false otherwise function returns true * * @param callback - function to be executed on each element */ forEach(callback: (block: T, x: number, y: number) => boolean): boolean; transform?(x: number, y: number, transformer: (value: T) => T): void; fill?>(value: R | ((x: number, y: number) => R)): void; setHolder?(holder: Grid2Block): void; swap?(ax: number, ay: number, bx: number, by: number): void; mirrorX?(): void; mirrorY?(): void; rotateCW?(): void; rotateCCW?(): void; clear(): void; getAroundData(x: number, y: number, size?: number): Grid2Block[]; getRandomBlock(filter?: GridBlockItemFilter): Grid2Block | undefined; getArea(position: SimpleVector2, size: SimpleVector2): T[]; } //# sourceMappingURL=grid2-holder.d.ts.map