Appearance
sdk.navigator
Stateful one-tile movement controller. Prevents walk queue flooding, remembers temporarily blocked tiles, and suppresses immediate direction reversals that cause left/right oscillation.
lua
local M = require("sdk.navigator")Constants
Lua 5.4 has no enums — these are integer (or string) fields on the module.
| Name | Value | Summary |
|---|---|---|
opposite | OPPOSITE | Map of each direction to its opposite. |
new
function · new(opts)
Returns Navigator.
Parameters
| Name | Type | Summary |
|---|---|---|
opts | table|nil | timeout_ms=1400, block_ms=3500, reverse_guard_ms=900 |
Returns
| Type | Summary |
|---|---|
Navigator | — |
reset
method · reset()
Forget pending walk, blockers, and last direction.
observe
method · observe(here, now)
Call every tick before step(). Returns "moved" | "diverted" | "blocked" | "moving".
Parameters
| Name | Type | Summary |
|---|---|---|
here | Pos | — |
now | number | epoch ms |
is_moving
method · is_moving()
True while a sent step has not been observed yet.
last_direction
method · last_direction()
Last direction this navigator sent.
is_blocked
method · is_blocked(p, now)
True when a tile is in the temporary block set.
blocked
method · blocked(now)
Current temporary blocked tiles.
step
method · step(me, here, dir, now, context)
Sends at most one pending walk. Same-context reverse within reverse_guard_ms is "reverse".
Parameters
| Name | Type | Summary |
|---|---|---|
me | LocalPlayer | — |
here | Pos | — |
dir | string|integer | — |
now | number | — |
context | string|nil | hunt/loot/search/... — reverse guard is per context |
Returns
| Type | Summary |
|---|---|
boolean|nil | ok |
string|nil | err one of: no player, stop, moving, blocked, reverse, walk failed |