Datalink support + pydcs update

Support for 2.9.10.4160, though without Iraq, but finally there's some basic support for datalink...
This commit is contained in:
Raffson
2024-12-16 03:07:26 +01:00
parent 0eb06f9af5
commit 64d60e5ccf
13 changed files with 415 additions and 36 deletions

View File

@@ -28,6 +28,7 @@ from game.pretense.pretenseflightgroupconfigurator import (
PretenseFlightGroupConfigurator,
)
from game.pretense.pretenseflightgroupspawner import PretenseNameGenerator
from game.radio.datalink import DataLinkRegistry
from game.radio.radios import RadioRegistry
from game.radio.tacan import TacanRegistry
from game.runways import RunwayData
@@ -64,6 +65,7 @@ class PretenseAircraftGenerator:
time: datetime,
radio_registry: RadioRegistry,
tacan_registry: TacanRegistry,
datalink_registry: DataLinkRegistry,
laser_code_registry: LaserCodeRegistry,
unit_map: UnitMap,
mission_data: MissionData,
@@ -78,6 +80,7 @@ class PretenseAircraftGenerator:
self.time = time
self.radio_registry = radio_registry
self.tacan_registy = tacan_registry
self.datalink_registry = datalink_registry
self.laser_code_registry = laser_code_registry
self.unit_map = unit_map
self.flights: List[FlightData] = []
@@ -1032,6 +1035,7 @@ class PretenseAircraftGenerator:
self.time,
self.radio_registry,
self.tacan_registy,
self.datalink_registry,
self.mission_data,
dynamic_runways,
self.use_client,

View File

@@ -12,7 +12,6 @@ from game.ato.flightmember import FlightMember
from game.ato.flightwaypoint import FlightWaypoint
from game.ato.flightwaypointtype import FlightWaypointType
from game.data.weapons import Pylon
from game.lasercodes.lasercoderegistry import LaserCodeRegistry
from game.missiongenerator.aircraft.aircraftbehavior import AircraftBehavior
from game.missiongenerator.aircraft.aircraftpainter import AircraftPainter
from game.missiongenerator.aircraft.bingoestimator import BingoEstimator
@@ -25,6 +24,7 @@ from game.missiongenerator.aircraft.waypoints.pydcswaypointbuilder import (
PydcsWaypointBuilder,
)
from game.missiongenerator.missiondata import MissionData
from game.radio.datalink import DataLinkRegistry
from game.radio.radios import RadioRegistry
from game.radio.tacan import (
TacanRegistry,
@@ -45,6 +45,7 @@ class PretenseFlightGroupConfigurator(FlightGroupConfigurator):
time: datetime,
radio_registry: RadioRegistry,
tacan_registry: TacanRegistry,
datalink_registry: DataLinkRegistry,
mission_data: MissionData,
dynamic_runways: dict[str, RunwayData],
use_client: bool,
@@ -57,6 +58,7 @@ class PretenseFlightGroupConfigurator(FlightGroupConfigurator):
time,
radio_registry,
tacan_registry,
datalink_registry,
mission_data,
dynamic_runways,
use_client,
@@ -69,6 +71,7 @@ class PretenseFlightGroupConfigurator(FlightGroupConfigurator):
self.time = time
self.radio_registry = radio_registry
self.tacan_registry = tacan_registry
self.datalink_registry = datalink_registry
self.mission_data = mission_data
self.dynamic_runways = dynamic_runways
self.use_client = use_client

View File

@@ -7,7 +7,7 @@ from pathlib import Path
from typing import TYPE_CHECKING
import dcs.lua
from dcs import Mission, Point
from dcs import Point
from dcs.coalition import Coalition
from dcs.countries import (
country_dict,
@@ -16,21 +16,18 @@ from dcs.countries import (
)
from dcs.task import AFAC, FAC, SetInvisibleCommand, SetImmortalCommand, OrbitAction
from game.lasercodes.lasercoderegistry import LaserCodeRegistry
from game.missiongenerator.convoygenerator import ConvoyGenerator
from game.missiongenerator.environmentgenerator import EnvironmentGenerator
from game.missiongenerator.forcedoptionsgenerator import ForcedOptionsGenerator
from game.missiongenerator.frontlineconflictdescription import (
FrontLineConflictDescription,
)
from game.missiongenerator.missiondata import MissionData, JtacInfo
from game.missiongenerator.missiondata import JtacInfo
from game.missiongenerator.tgogenerator import TgoGenerator
from game.missiongenerator.visualsgenerator import VisualsGenerator
from game.naming import namegen
from game.persistency import pre_pretense_backups_dir
from game.pretense.pretenseaircraftgenerator import PretenseAircraftGenerator
from game.radio.radios import RadioRegistry
from game.radio.tacan import TacanRegistry
from game.theater.bullseye import Bullseye
from game.unitmap import UnitMap
from qt_ui.windows.GameUpdateSignal import GameUpdateSignal
@@ -40,6 +37,7 @@ from .pretensetriggergenerator import PretenseTriggerGenerator
from ..ato.airtaaskingorder import AirTaskingOrder
from ..callsigns import callsign_for_support_unit
from ..dcs.aircrafttype import AircraftType
from ..lasercodes import LaserCodeRegistry
from ..missiongenerator import MissionGenerator
from ..theater import Airfield
@@ -50,21 +48,8 @@ if TYPE_CHECKING:
class PretenseMissionGenerator(MissionGenerator):
def __init__(self, game: Game, time: datetime) -> None:
super().__init__(game, time)
self.game = game
self.time = time
self.mission = Mission(game.theater.terrain)
self.unit_map = UnitMap()
self.mission_data = MissionData()
self.laser_code_registry = LaserCodeRegistry()
self.radio_registry = RadioRegistry()
self.tacan_registry = TacanRegistry()
self.generation_started = False
self.p_country = country_dict[self.game.blue.faction.country.id]()
self.e_country = country_dict[self.game.red.faction.country.id]()
with open("resources/default_options.lua", "r", encoding="utf-8") as f:
options = dcs.lua.loads(f.read())["options"]
@@ -262,6 +247,7 @@ class PretenseMissionGenerator(MissionGenerator):
self.time,
self.radio_registry,
self.tacan_registry,
self.datalink_registry,
self.laser_code_registry,
self.unit_map,
mission_data=self.mission_data,