Enhance base display visibility: - Increase base size and spacing - Add thicker diamond outline - Improve occupied base contrast - Add visible outlines for empty bases

This commit is contained in:
ChuckBuilds
2025-04-24 14:31:05 -05:00
parent feb9289285
commit 0b50594db6

View File

@@ -63,24 +63,37 @@ class BaseMLBManager:
def _draw_base_indicators(self, draw: ImageDraw.Draw, bases_occupied: List[bool], center_x: int, y: int) -> None: def _draw_base_indicators(self, draw: ImageDraw.Draw, bases_occupied: List[bool], center_x: int, y: int) -> None:
"""Draw base indicators on the display.""" """Draw base indicators on the display."""
base_size = 6 # Increased from 4 to 6 base_size = 8 # Increased from 6 to 8 for better visibility
base_spacing = 8 # Increased from 6 to 8 base_spacing = 10 # Increased from 8 to 10 for better spacing
# Draw diamond outline # Draw diamond outline with thicker lines
diamond_points = [ diamond_points = [
(center_x, y), # Home (center_x, y), # Home
(center_x - base_spacing, y - base_spacing), # First (center_x - base_spacing, y - base_spacing), # First
(center_x, y - 2 * base_spacing), # Second (center_x, y - 2 * base_spacing), # Second
(center_x + base_spacing, y - base_spacing) # Third (center_x + base_spacing, y - base_spacing) # Third
] ]
draw.polygon(diamond_points, outline=(255, 255, 255))
# Draw occupied bases # Draw thicker diamond outline
for i in range(len(diamond_points)):
start = diamond_points[i]
end = diamond_points[(i + 1) % len(diamond_points)]
draw.line([start, end], fill=(255, 255, 255), width=2) # Added width parameter for thicker lines
# Draw occupied bases with larger circles and outline
for i, occupied in enumerate(bases_occupied): for i, occupied in enumerate(bases_occupied):
x = diamond_points[i+1][0] - base_size//2
y = diamond_points[i+1][1] - base_size//2
# Draw base circle with outline
if occupied: if occupied:
x = diamond_points[i+1][0] - base_size//2 # Draw white outline
y = diamond_points[i+1][1] - base_size//2 draw.ellipse([x-1, y-1, x + base_size+1, y + base_size+1], fill=(255, 255, 255))
draw.ellipse([x, y, x + base_size, y + base_size], fill=(255, 255, 255)) # Draw filled circle
draw.ellipse([x+1, y+1, x + base_size-1, y + base_size-1], fill=(0, 0, 0))
else:
# Draw empty base with outline
draw.ellipse([x, y, x + base_size, y + base_size], outline=(255, 255, 255), width=1)
def _create_game_display(self, game_data: Dict[str, Any]) -> Image.Image: def _create_game_display(self, game_data: Dict[str, Any]) -> Image.Image:
"""Create a display image for an MLB game with team logos, score, and game state.""" """Create a display image for an MLB game with team logos, score, and game state."""