/// import { Point, PolyPoints } from "navmesh/src"; import Phaser from "phaser"; import PhaserNavMeshPlugin from "./phaser-navmesh-plugin"; /** * A wrapper around {@link NavMesh} for Phaser 3. Create instances of this class from * {@link PhaserNavMeshPlugin}. This is the workhorse that represents a navigation mesh built from a * series of polygons. Once built, the mesh can be asked for a path from one point to another point. * * Compared to {@link NavMesh}, this adds visual debugging capabilities and converts paths to * Phaser-compatible point instances. * * @export * @class PhaserNavMesh */ export default class PhaserNavMesh { private key; private plugin; private scene; private debugGraphics; private navMesh; /** * Creates an instance of PhaserNavMesh. * @param plugin The plugin that owns this mesh. * @param scene * @param key The key the mesh is stored under within the plugin. * @param meshPolygonPoints Array where each element is an array of point-like objects that * defines a polygon. * @param meshShrinkAmount The amount (in pixels) that the navmesh has been shrunk around * obstacles (a.k.a the amount obstacles have been expanded) */ constructor(plugin: PhaserNavMeshPlugin, scene: Phaser.Scene, key: string, meshPolygonPoints: PolyPoints[], meshShrinkAmount?: number); /** * Find if the given point is within any of the polygons in the mesh. * @param point */ isPointInMesh(point: Point): boolean; /** * See {@link NavMesh#findPath}. This implements the same functionality, except that the returned * path is converted to Phaser-compatible points. * @param startPoint A point-like object * @param endPoint A point-like object * @param PointClass The class used to represent points in the final path * @returns An array of points if a path is found, or null if no path */ findPath(startPoint: Point, endPoint: Point, PointClass?: typeof Phaser.Geom.Point): Phaser.Geom.Point[] | null; /** * Enable the debug drawing graphics. If no graphics object is provided, a new instance will be * created. * @param graphics An optional graphics object for the mesh to use for debug drawing. Note, the * mesh will destroy this graphics object when the mesh is destroyed. * @returns The graphics object this mesh uses. */ enableDebug(graphics: Phaser.GameObjects.Graphics): Phaser.GameObjects.Graphics | null; /** Hide the debug graphics, but don't destroy it. */ disableDebug(): void; /** Returns true if the debug graphics object is enabled and visible. */ isDebugEnabled(): boolean | null; /** Clear the debug graphics. */ debugDrawClear(): void; /** * Visualize the polygons in the navmesh by drawing them to the debug graphics. * @param options * @param [options.drawCentroid=true] For each polygon, show the approx centroid * @param [options.drawBounds=false] For each polygon, show the bounding radius * @param [options.drawNeighbors=true] For each polygon, show the connections to neighbors * @param [options.drawPortals=true] For each polygon, show the portal edges * @param [options.palette=[0x00a0b0, 0x6a4a3c, 0xcc333f, 0xeb6841, 0xedc951]] An array of * Phaser-compatible format colors to use when drawing the individual polygons. The first poly * uses the first color, the second poly uses the second color, etc. */ debugDrawMesh({ drawCentroid, drawBounds, drawNeighbors, drawPortals, palette, }?: { drawCentroid?: boolean | undefined; drawBounds?: boolean | undefined; drawNeighbors?: boolean | undefined; drawPortals?: boolean | undefined; palette?: number[] | undefined; }): void; /** * Visualize a path (array of points) on the debug graphics. * @param path Array of point-like objects in the form {x, y} * @param color * @param thickness * @param alpha */ debugDrawPath(path: Point[], color?: number, thickness?: number, alpha?: number): void; /** Destroy the mesh, kill the debug graphic and unregister itself with the plugin. */ destroy(): void; } //# sourceMappingURL=phaser-navmesh.d.ts.map