UNPKG

@excaliburjs/plugin-pathfinding

Version:

excalibur-pathfinding provides ability to use A* and Dijkstra's Algorithm for pathfinding and with Excalibur.js

92 lines 2.78 kB
import { TileMap } from "excalibur"; export declare type GraphNode = { id: number | string; value?: any; }; export declare type aStarNode = { id: number | string; collider: boolean; gCost: number; hCost: number; fCost: number; x: number; y: number; checked: boolean; parent: aStarNode | null; }; export declare type Edge = { name: string; from: GraphNode; to: GraphNode; value?: number; }; export declare type GraphTile = { name?: string; index?: number; coordinates?: { x: number; y: number; }; data?: any; collider?: boolean; }; export declare type GraphTileMap = { name: string; tiles: Array<GraphTile>; rows: number; cols: number; }; export declare class ExcaliburGraph { duration: number; starttime: number; endtime: number; key: boolean; nodes: Map<string, GraphNode>; edges: Map<string, Edge>; addNode(node: GraphNode): void; addEdge(edge: Edge, bidirectional?: boolean): void; resetGraph(): void; addTileMap(tilemap: GraphTileMap, diagonal?: boolean): void; getNodes(): Map<string, GraphNode>; getEdges(): Map<string, Edge>; getAdjacentNodes(node: GraphNode): GraphNode[]; getAdjacentEdges(node: GraphNode): Edge[]; getAdjacentEdgesTo(node: GraphNode): Edge[]; bfs(startnode: GraphNode, endnode: GraphNode): boolean; dfs(startnode: GraphNode, endnode: GraphNode, visited?: Set<unknown>): boolean; dijkstra(sourcenode: GraphNode): Array<{ node: GraphNode; distance: number; previous: GraphNode | null; }>; shortestPath(startnode: GraphNode, endnode: GraphNode): GraphNode[]; } export declare class ExcaliburAStar { tilemap: { cols: number; rows: number; }; grid: aStarNode[]; currentNode: aStarNode | null; currentIndex: number; checkedNodes: aStarNode[]; openNodes: aStarNode[]; startnode: aStarNode | null; endnode: aStarNode | null; goalReached: boolean; path: aStarNode[]; duration: number; starttime: number; endtime: number; constructor(tilemap: TileMap | GraphTileMap); setCost(): void; astar(sourcenode: aStarNode, endnode: aStarNode, diagonal?: boolean): aStarNode[]; getNeighbors(node: aStarNode, diagonal: boolean): aStarNode[]; getNodeByIndex(index: number): aStarNode; getNodeByCoord(x: number, y: number): aStarNode; getGCost(node: aStarNode, startnode: aStarNode): number; getHCost(node: aStarNode, endnode: aStarNode): number; getFCost(node: aStarNode): number; resetGrid(): void; } //# sourceMappingURL=excalibur-pathfinding.d.ts.map