From bf7838e6cc00dd19862a3ffec32137fe472898e3 Mon Sep 17 00:00:00 2001 From: MetalStormGhost Date: Sat, 30 Apr 2022 22:40:37 +0300 Subject: [PATCH] Removed /MissionEditor/UnitPayloads/ from mod_payloads paths. Implemented a separate inject_mod_payloads method to support it. --- pydcs_extensions/f16i_idf/f16i_idf.py | 4 ++-- qt_ui/main.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pydcs_extensions/f16i_idf/f16i_idf.py b/pydcs_extensions/f16i_idf/f16i_idf.py index 3d779587..10c9c72b 100644 --- a/pydcs_extensions/f16i_idf/f16i_idf.py +++ b/pydcs_extensions/f16i_idf/f16i_idf.py @@ -278,7 +278,7 @@ inject_weapons(WeaponsF16I) def inject_F16I() -> None: - from qt_ui.main import inject_custom_payloads, THIS_DIR + from qt_ui.main import inject_mod_payloads, THIS_DIR AIRCRAFT_ICONS["F-16C_50"] = QPixmap( os.path.join("./resources/ui/units/aircrafts/icons/", "F-16I_24.jpg") @@ -312,7 +312,7 @@ def inject_F16I() -> None: F_16C_50.Pylon15 = Pylon15 F_16C_50.Pylon16 = Pylon16 - inject_custom_payloads(Path(THIS_DIR.parent / "resources/mod_payloads/f16i_idf")) + inject_mod_payloads(Path(THIS_DIR.parent / "resources/mod_payloads/f16i_idf")) @planemod diff --git a/qt_ui/main.py b/qt_ui/main.py index 722b6998..0e0708d0 100644 --- a/qt_ui/main.py +++ b/qt_ui/main.py @@ -58,6 +58,18 @@ def inject_custom_payloads(user_path: Path) -> None: PayloadDirectories.set_preferred(user_path / "MissionEditor" / "UnitPayloads") +def inject_mod_payloads(mod_path: Path) -> None: + if mod_path.exists(): + payloads = mod_path + else: + raise RuntimeError( + f"Could not find mod payloads at {mod_path}." + f"Aircraft will have no payloads." + ) + # We configure these as preferred so the mod's loadouts override the stock ones. + PayloadDirectories.set_preferred(payloads) + + def on_game_load(game: Game | None) -> None: EventStream.drain() EventStream.put_nowait(GameUpdateEvents().game_loaded(game))