-
Notifications
You must be signed in to change notification settings - Fork 0
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 |
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.
Start here
Shaping behaviour
Going deeper
Reference