got detection somewhat working
This commit is contained in:
parent
40d30115bf
commit
c75b2b27f0
10 changed files with 500 additions and 56 deletions
|
|
@ -185,6 +185,7 @@ public sealed class D2dOverlay
|
|||
return new OverlayState(
|
||||
Enemies: detection.Enemies,
|
||||
Bosses: bossDetection.Bosses,
|
||||
BossTimestampMs: bossDetection.Timestamp,
|
||||
InferenceMs: detection.InferenceMs,
|
||||
Hud: _bot.HudReader.Current,
|
||||
NavState: _bot.Navigation.State,
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ namespace Poe2Trade.Ui.Overlay;
|
|||
public record OverlayState(
|
||||
IReadOnlyList<DetectedEnemy> Enemies,
|
||||
IReadOnlyList<DetectedBoss> Bosses,
|
||||
long BossTimestampMs,
|
||||
float InferenceMs,
|
||||
HudSnapshot? Hud,
|
||||
NavigationState NavState,
|
||||
|
|
|
|||
|
|
@ -53,10 +53,15 @@ internal sealed class D2dEnemyBoxLayer : ID2dOverlayLayer, IDisposable
|
|||
rt.DrawTextLayout(new System.Numerics.Vector2(labelX, labelY), layout, textBrush);
|
||||
}
|
||||
|
||||
// Boss bounding boxes (cyan)
|
||||
// Boss bounding boxes (cyan) — extrapolate position to compensate for inference delay
|
||||
var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
||||
var ageMs = (float)Math.Clamp(now - state.BossTimestampMs, 0, 60);
|
||||
|
||||
foreach (var boss in state.Bosses)
|
||||
{
|
||||
var rect = new RectangleF(boss.X, boss.Y, boss.Width, boss.Height);
|
||||
float dx = boss.VxPerMs * ageMs;
|
||||
float dy = boss.VyPerMs * ageMs;
|
||||
var rect = new RectangleF(boss.X + dx, boss.Y + dy, boss.Width, boss.Height);
|
||||
rt.DrawRectangle(rect, ctx.Cyan, 3f);
|
||||
|
||||
var pct = Math.Clamp((int)(boss.Confidence * 100), 0, 100);
|
||||
|
|
@ -68,8 +73,8 @@ internal sealed class D2dEnemyBoxLayer : ID2dOverlayLayer, IDisposable
|
|||
}
|
||||
|
||||
var m = layout.Metrics;
|
||||
var labelX = boss.X;
|
||||
var labelY = boss.Y - m.Height - 2;
|
||||
var labelX = boss.X + dx;
|
||||
var labelY = boss.Y + dy - m.Height - 2;
|
||||
|
||||
rt.FillRectangle(
|
||||
new RectangleF(labelX - 1, labelY - 1, m.Width + 2, m.Height + 2),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue