From 50ddd677308a112e21d01eb8e4fbdd71ebec9221 Mon Sep 17 00:00:00 2001 From: Sage Vaillancourt Date: Sun, 9 Feb 2025 00:04:59 -0500 Subject: [PATCH] Start drawing fielders in minimap --- src/draw/overlay.lua | 8 +++++++- src/field.lua | 8 ++++---- src/main.lua | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/draw/overlay.lua b/src/draw/overlay.lua index 5e7df6f..c9fbd6c 100644 --- a/src/draw/overlay.lua +++ b/src/draw/overlay.lua @@ -11,7 +11,7 @@ local MinimapOffsetX = MinimapPosX + 5 local MinimapMultY = 0.70 * MinimapSizeY / C.FieldHeight local MinimapOffsetY = MinimapPosY - 15 -function drawMinimap(runners) +function drawMinimap(runners, fielders) Minimap:draw(MinimapPosX, MinimapPosY) gfx.setColor(gfx.kColorBlack) for _, runner in pairs(runners) do @@ -19,6 +19,12 @@ function drawMinimap(runners) local y = (MinimapMultY * runner.y) + MinimapOffsetY gfx.fillRect(x, y, 8, 8) end + -- TODO: Don't draw when out of bounds + for _, fielder in pairs(fielders) do + local x = (MinimapMultX * fielder.x) + MinimapOffsetX + local y = (MinimapMultY * fielder.y) + MinimapOffsetY + gfx.drawCircleAtPoint(x, y, 4) + end end local BallStrikeMarginY = 4 diff --git a/src/field.lua b/src/field.lua index d01746d..3e7cb8d 100644 --- a/src/field.lua +++ b/src/field.lua @@ -88,15 +88,15 @@ end ---@param ball XYPair ---@return Fielder | nil fielderTouchingBall nil if no fielder is currently touching the ball function Field.updateFielderPositions(self, ball, deltaSeconds) - local fielderTouchingBallLocal = nil + local fielderTouchingBall = nil for _, fielder in pairs(self.fielders) do local isTouchingBall = updateFielderPosition(deltaSeconds, fielder, ball) if isTouchingBall then - fielderTouchingBallLocal = fielder + fielderTouchingBall = fielder end end - self.fielderTouchingBall = fielderTouchingBallLocal - return fielderTouchingBallLocal + self.fielderTouchingBall = fielderTouchingBall + return fielderTouchingBall end -- TODO? Start moving target fielders close sooner? diff --git a/src/main.lua b/src/main.lua index 3240bfb..a5e0b2d 100644 --- a/src/main.lua +++ b/src/main.lua @@ -687,7 +687,7 @@ function playdate.update() gfx.setDrawOffset(0, 0) if math.abs(offsetX) > 10 or math.abs(offsetY) > 10 then - drawMinimap(runners) + drawMinimap(runners, Field.fielders) end drawScoreboard(0, C.Screen.H * 0.77, teams, outs, battingTeam, inning) drawBallsAndStrikes(290, C.Screen.H - 20, pitchTracker.balls, pitchTracker.strikes)