Allow user-made custom injected weapons setup

This commit is contained in:
Raffson 2023-07-22 23:41:42 +02:00
parent da75f41b01
commit 53122ff149
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
2 changed files with 15 additions and 0 deletions

View File

@ -17,6 +17,7 @@ from dcs.weapons_data import weapon_ids
from game.data.units import UnitClass
from game.dcs.unitproperty import UnitProperty
from game.dcs.unittype import UnitType
from game.persistency import user_custom_weapon_injections_dir
from game.radio.channels import (
ApacheChannelNamer,
ChannelNamer,
@ -465,6 +466,7 @@ class AircraftType(UnitType[Type[FlyingType]]):
task_priorities[FlightType.SEAD_SWEEP] = task_priorities[FlightType.SEAD]
cls._custom_weapon_injections(aircraft, data)
cls._user_weapon_injections(aircraft)
for variant in data.get("variants", [aircraft.id]):
yield AircraftType(
@ -522,5 +524,14 @@ class AircraftType(UnitType[Type[FlyingType]]):
][0]
setattr(pylon, w, (pylon_number, weapon))
@staticmethod
def _user_weapon_injections(aircraft):
data_path = user_custom_weapon_injections_dir() / f"{aircraft.id}.yaml"
if not data_path.exists():
return
with data_path.open(encoding="utf-8") as data_file:
data = yaml.safe_load(data_file)
AircraftType._custom_weapon_injections(aircraft, data)
def __hash__(self) -> int:
return hash(self.name)

View File

@ -87,6 +87,10 @@ def payloads_dir(backup: bool = False) -> Path:
return payloads
def user_custom_weapon_injections_dir() -> Path:
return base_path() / "Retribution" / "WeaponInjections"
def save_dir() -> Path:
return base_path() / "Retribution" / "Saves"