From 199467f31bdb3cfb8c3cb4cdfce066684c9edc2c Mon Sep 17 00:00:00 2001 From: Raffson Date: Mon, 1 May 2023 17:52:19 +0200 Subject: [PATCH] Export txt version of kneeboard pages --- changelog.md | 1 + game/missiongenerator/kneeboard.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/changelog.md b/changelog.md index 6bb31469..4a8b1678 100644 --- a/changelog.md +++ b/changelog.md @@ -10,6 +10,7 @@ * **[Modding]** Support for A-7E Corsair II (presumed latest available version) * **[Squadrons]** Added many new squadron's by Adecarcer * **[Plugins]** Updated 'expl_table' in Splash Damage script. +* **[Mission Generation]** Also save kneeboards in txt-format, found under "kneeboards" within Retribution's installation folder after pressing take-off. ## Fixes * **[New Game Wizard]** Settings would not persist when going back to a previous page. diff --git a/game/missiongenerator/kneeboard.py b/game/missiongenerator/kneeboard.py index 63dfc78c..a1fd2c5c 100644 --- a/game/missiongenerator/kneeboard.py +++ b/game/missiongenerator/kneeboard.py @@ -89,6 +89,7 @@ class KneeboardPageWriter: self.x = page_margin self.y = page_margin self.line_spacing = line_spacing + self.text_buffer: List[str] = [] @property def position(self) -> Tuple[int, int]: @@ -117,6 +118,13 @@ class KneeboardPageWriter: self.draw.text(self.position, text, font=font, fill=fill) width, height = self.draw.textsize(text, font=font) self.y += height + self.line_spacing + self.text_buffer.append(text) + + def flush_text_buffer(self) -> None: + self.text_buffer = [] + + def get_text_string(self) -> str: + return "\n".join(x for x in self.text_buffer) def title(self, title: str) -> None: self.text(title, font=self.title_font, fill=self.foreground_fill) @@ -139,6 +147,8 @@ class KneeboardPageWriter: def write(self, path: Path) -> None: self.image.save(path) + print(path.with_suffix(".txt")) + path.with_suffix(".txt").write_text(self.get_text_string()) @staticmethod def wrap_line(inputstr: str, max_length: int) -> str: