Node Radar - by ThPi
What's new
v1.1.0
Changed
- Scanning is driven by what can have changed, not by a clock. There is no scan interval any more. Four times a second the addon works out which candidates are due: a spot never asked about, a node already found whose recheck is up, or a spot that read empty and has since either sat out a 15-second cooldown or come 15 yards closer. Closer matters because the client's blip range is an assumption taken from GatherMate's setting, so a candidate that read empty from far away deserves a second look from nearby. Only due candidates enter a pass, rechecks first, so a node already on the radar is never crowded out by a spot that read empty. Standing among candidates already read costs no samples at all, and two seconds of quiet follow every pass so that riding into a dense area cannot hold the minimap under the cursor continuously.
- Only spawn points the client draws blips for become candidates. With Find Minerals up, herb positions are no longer aimed at — the client draws no herb blips, so those samples could never be answered, and each unconfirmed cluster was costing five probe points per pass that crowded real candidates out of the burst. With no tracking active, nothing is scanned at all rather than scanned in vain.
Seconds between scansis nowRecheck a found node every, because that is the only thing still on a clock: how quickly a gathered node disappears from the radar. The stored value is carried over. A harvested node now lingers for that interval plus two seconds.- One source decides why nothing is being scanned, asked in the order that matters: a tracking type the client does not draw, then nothing in range, then whether looking is possible at all. The debug log carries one line per change of reason instead of a line per pass, and it names the real cause — a missing tracking ability used to be reported as an empty neighbourhood. Having nothing to aim at outranks every other reason, so a held mouse button is no longer reported while there is nothing to scan anyway.
/nr debugopens a window instead of only writing to disk. The whole snapshot arrives selected, so Ctrl+C copies it into a bug report with no reload — which matters because almost everything it records is gone the moment the client reloads. The last six snapshots are still saved as well.
Fixed
- Scanning now pauses for any held mouse button, not only mouselook. A button held on a frame — dragging a slider or a window — binds the client's mouse focus to that frame, so every sample read empty while the radar quietly expired what it had found. Mouselook, which both buttons enter, was already covered; a bound focus is what actually matters, whichever button caused it.
- Party and raid blips are hidden during a pass, like the tracking blips and the player arrow already were. They are drawn from their own texture sheet, which the scan did not swap out.
- The hit clock no longer runs while a blip measurement is in progress, so confirmed nodes outlive it instead of expiring mid-measurement.
Added
- Passive diagnostics for problems that do not last long enough to ask about. Every pass records nodes that appear to be drawn twice, tooltips that named a node no candidate could claim, tooltips another frame took before the scan could read them, and which probe ring answered for each candidate. None of it costs extra samples.
/nr blipmeasures where the client actually draws a blip. A grid of sample points is walked across a confirmed node, three pixels apart, and separate patches of hits are reported separately — so a database coordinate that is simply wrong is told apart from a second node of the same kind nearby. The first sighting of a node drawn twice starts this measurement by itself, limited to the pair in question and at most once a minute./nr minimaplists which minimap textures this client exposes and which child frames stay visible during a pass./nr cleardrops the stored snapshots, measurements and counters. Snapshots from an older format are discarded automatically, since readings taken under different rules do not compare.
Performance
- An idle radar costs almost nothing. The candidate list, the hold reason and the due check now share a quarter-second tick instead of running every frame; asking the client whether scanning is possible alone was seven API calls sixty times a second. With nothing to draw and nothing coming, the frame handler returns before rendering.
- The per-frame allocations are gone. Radar entries are pooled rather than rebuilt each frame, which was the addon's largest source of garbage, and the scanner no longer allocates a table per sample point.
- Fewer redundant client calls: the player position is read once per frame instead of twice, the player facing once per pass instead of once per candidate, and the tracking spell names are resolved once instead of on every check.
This mod has no additional files