@amarillion/helixgraph
Version:
A collection of graph algorithms for game development
31 lines (30 loc) • 1.08 kB
TypeScript
export type DirectionType = 1 | 2 | 4 | 8;
export declare const NORTH: DirectionType;
export declare const EAST: DirectionType;
export declare const SOUTH: DirectionType;
export declare const WEST: DirectionType;
export declare class TemplateGrid<T> {
cellFactory: (x: number, y: number, parent: unknown) => T;
width: number;
height: number;
_data: T[];
constructor(width: number, height: number, cellFactory: (x: number, y: number, parent: unknown) => T);
applyMask(mask: string[]): this;
_prepareGrid(): any[];
randomCell(prng?: () => number): T;
_index(x: number, y: number): number;
remove(x: number, y: number): void;
get(x: number, y: number): T;
inRange(x: number, y: number): boolean;
eachNode(): Generator<T, void, unknown>;
getAdjacent(n: {
x: number;
y: number;
}): Generator<[DirectionType, T]>;
}
export declare class BaseGrid extends TemplateGrid<unknown> {
constructor(width: number, height: number, cellFactory?: (x: number, y: number) => {
x: number;
y: number;
});
}