@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
TypeScript
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