flatland-pathfinding 0.2.67

Shared grid A* pathfinding for Flatland3 clients and sim
Documentation
# flatland-pathfinding

Shared grid A* pathfinding used by Flatland3 clients (auto-nav) and the region sim (NPC / worker movement).

Depends on [`flatland-protocol`](https://crates.io/crates/flatland-protocol) for world coordinates and view types.

## Path modes

| Mode | Behavior |
|------|----------|
| **Fastest** (default) | Cell cost ∝ `1 / move_speed_mult` from content (`terrain-kinds.yaml`) |
| **Direct** | Uniform cost on all walkable cells — shortest geometry |

`NavWorld.kind_nav` carries per-kind speed / impassable flags from the terrain kind catalog (no hardcoded speeds in production). Impassable kinds (e.g. rock, deep water) are authored with `impassable: true` in World → Terrain kinds.

Player auto-nav mode is set in `ClientConfig.auto_nav_mode` (F2 → Auto-nav). Server agents always use Fastest.

Building footprints use the same pad as runtime collision (`PLAYER_RADIUS_M` only). Extra clearance used to seal road cells beside buildings while the player could still walk them.

## Debug

```bash
FLATLAND_NAV_DEBUG=1 make dev-play-gfx
```

On each auto-nav plan, stderr prints start/goal kinds, straight-line blocked cells (and which building/circle sealed them), and path deviation from the chord.