From 02e52ea98ac983a5ce94e7531984c8096eb57f1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20Schr=C3=B6der?=
 <fschroeder@techfak.uni-bielefeld.de>
Date: Mon, 19 Aug 2024 15:22:20 +0200
Subject: [PATCH] Update `get_state_image` to handle controlled players list

Enhanced `get_state_image` to accept a list of controlled players, defaulting to a single player if not provided. This change ensures that the drawing function correctly interprets the input for controlled players, improving the function's flexibility and usability.
---
 cooperative_cuisine/pygame_2d_vis/drawing.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/cooperative_cuisine/pygame_2d_vis/drawing.py b/cooperative_cuisine/pygame_2d_vis/drawing.py
index 45112949..88442ea8 100644
--- a/cooperative_cuisine/pygame_2d_vis/drawing.py
+++ b/cooperative_cuisine/pygame_2d_vis/drawing.py
@@ -937,8 +937,10 @@ class Visualizer:
         pygame.image.save(screen, filename)
 
     def get_state_image(self, state: dict,
-                        cache_flags: CacheFlags = CacheFlags.COUNTERS | CacheFlags.BACKGROUND) -> npt.NDArray[np.uint8]:
-        screen = self.draw_gamescreen(state, [0 for _ in state["players"]], cache_flags=cache_flags)
+                        cache_flags: CacheFlags = CacheFlags.COUNTERS | CacheFlags.BACKGROUND,
+                        controlled_players: list[int] = None,
+                        ) -> npt.NDArray[np.uint8]:
+        screen = self.draw_gamescreen(state, [0] if controlled_players is None else controlled_players, cache_flags=cache_flags)
         return pygame.surfarray.pixels3d(screen)
 
     def draw_recipe_image(
-- 
GitLab