dcs-retribution/pydcs_extensions/weapon_injector.py
bgreman c163e2c981
Inject mod plane weapons into pydcs.
Adds a simple injector that iterates over attrs of an input class and
injects things that look like custom weapons into pydcs's weapons
classes.

Also updated all current mod aircraft configs to perform the injection.
2021-05-26 12:49:49 -07:00

18 lines
590 B
Python

from typing import List, Any
from dcs.weapons_data import Weapons, weapon_ids
def inject_weapons(weapon_class: Any) -> None:
"""
Inject custom weapons from mods into pydcs weapons databases via introspection
:param weapon_class: The custom weapons class containing dictionaries with weapon info
:return: None
"""
for key, value in weapon_class.__dict__.items():
if key.startswith("__"):
continue
if isinstance(value, dict) and value.get("clsid"):
setattr(Weapons, key, value)
weapon_ids[value["clsid"]] = value