@arcia125/pather
TypeScript icon, indicating that this package has built-in type declarations

1.3.3 • Public • Published

alt text

Pather

Pather is a versatile and typed pathfinding library designed for 2D games, offering the convenience of pathfinding without the need for a matrix or grid input.

Table of Contents

Demo

Explore the interactive demo on the Pather Demo Page or run the following command to experience it locally:

npm run dev

Installation

To integrate Pather into your project, install it via npm:

npm install @arcia125/pather

Usage

import { findPath } from '@arcia125/pather';

const grid = [
  [0, 0, 0, 0, 0],
  [0, 0, 1, 0, 0],
  [0, 0, 1, 0, 0],
  [0, 0, 1, 0, 0],
  [0, 0, 0, 0, 0],
];

findPath({
  startPos: { x: 0, y: 0 },
  endPos: { x: 4, y: 4 },
  // diagonal?: true,
  // heuristic?: (node, endNode) => number,
  // isDone?: (node, endNode) => boolean,
  wouldCollide: (node) => grid[node.y][node.x] === 1,
  isOutOfBounds: (node) => typeof (grid?.[node.y]?.[node.x]) === 'undefined',
});

Features

  • Matrix-Free Pathfinding: Pather simplifies pathfinding in 2D games by eliminating the need for a matrix or grid input.
  • Interactive Demo: Visualize and experiment with Pather's capabilities through the online demo.

API

findPath(options: PathOptions): Position[] | undefined

Finds the path between the start and end positions based on the specified options.

Parameters

  • options: PathOptions - Configuration options for pathfinding.
    • startPos: Initial position on the grid.
    • endPos: Target position on the grid.
    • diagonal: (Optional) Whether diagonal movement is allowed.
    • wouldCollide: Function to check if a node would collide with obstacles.
    • isOutOfBounds: Function to check if a node is out of bounds.
    • heuristic: (Optional) Custom heuristic function for path evaluation.
    • isDone: (Optional) Custom function to check if the destination is reached.

Returns

  • An array of Position representing the path if found.
  • undefined if no path is found.

License

Pather is open-source software licensed under the MIT License. Refer to the LICENSE file for details.

Package Sidebar

Install

npm i @arcia125/pather

Weekly Downloads

0

Version

1.3.3

License

MIT

Unpacked Size

46.4 kB

Total Files

33

Last publish

Collaborators

  • arcia125