Skip to content

Packages

Alexander Parent edited this page Jul 31, 2026 · 1 revision

Packages

module-info.java exports these; internal carries no compatibility promise.

Package Contents
ca.atlasengine.pathfinding NavigationSystem, EntityNavigationController, the async service, plans, options, debug renderer
.profile what a mob is: NavigationProfile, capabilities, built-in profiles, modifiers
.search what you ask for: requests, limits, cancellation, the pathfinders
.result what you get back: PathResult, PathStatus, PathStop, PathNode
.event the event node and its events
.metrics NavigationMetrics, snapshots, latency distributions
.terrain TerrainType, block classification, block tags, mob traversal profiles
.influence request-scoped influences and navigation areas
.adaptive the opt-in shared mesh
.internal.* not exported: A* driver, node evaluators, movement executors, mesh coordinator

How it fits together

PathSearch owns the single weighted-A* loop, the open and closed bookkeeping, and the budget, deadline and cancellation checks; it never reads a block. A NodeEvaluator owns one search's node map, terrain classification and movement model, so the ground, amphibious, swim and fly graphs differ only in their evaluator.

Following is split the same way: EntityNavigationController owns the tick-thread state machine, while a MovementExecutor turns one waypoint into entity motion for one navigation mode.

Built-in controllers use MovementExecutionMode.PHYSICS_VELOCITY: the controller supplies velocity and facing while the normal Minestom entity tick applies collision, gravity, drag and grounded state. DIRECT_COLLISION is available for integrations that own the physics step.

Clone this wiki locally