mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
97 lines
2.2 KiB
Python
97 lines
2.2 KiB
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from datetime import datetime
|
|
from typing import Optional, TYPE_CHECKING
|
|
|
|
from game.dcs.aircrafttype import AircraftType
|
|
from game.missiongenerator.aircraft.flightdata import FlightData
|
|
from game.runways import RunwayData
|
|
|
|
if TYPE_CHECKING:
|
|
from game.radio.radios import RadioFrequency
|
|
from game.radio.tacan import TacanChannel
|
|
|
|
|
|
@dataclass
|
|
class GroupInfo:
|
|
group_name: str
|
|
callsign: str
|
|
freq: RadioFrequency
|
|
blue: bool
|
|
|
|
|
|
@dataclass
|
|
class UnitInfo(GroupInfo):
|
|
unit_name: str
|
|
|
|
|
|
@dataclass
|
|
class AwacsInfo(GroupInfo):
|
|
"""AWACS information for the kneeboard."""
|
|
|
|
depature_location: Optional[str]
|
|
start_time: datetime | None
|
|
end_time: datetime | None
|
|
|
|
|
|
@dataclass
|
|
class TankerInfo(GroupInfo):
|
|
"""Tanker information for the kneeboard."""
|
|
|
|
variant: str
|
|
tacan: TacanChannel
|
|
start_time: datetime | None
|
|
end_time: datetime | None
|
|
|
|
|
|
@dataclass
|
|
class CarrierInfo(UnitInfo):
|
|
"""Carrier information."""
|
|
|
|
tacan: TacanChannel
|
|
|
|
|
|
@dataclass
|
|
class JtacInfo(UnitInfo):
|
|
"""JTAC information."""
|
|
|
|
region: str
|
|
code: str
|
|
|
|
|
|
@dataclass
|
|
class CargoInfo:
|
|
"""Cargo information."""
|
|
|
|
unit_type: str = field(default_factory=str)
|
|
spawn_zone: str = field(default_factory=str)
|
|
amount: int = field(default=1)
|
|
|
|
|
|
@dataclass
|
|
class LogisticsInfo:
|
|
"""Logistics information."""
|
|
|
|
pilot_names: list[str]
|
|
transport: AircraftType
|
|
blue: bool
|
|
|
|
logistic_unit: str = field(default_factory=str)
|
|
pickup_zone: str = field(default_factory=str)
|
|
drop_off_zone: str = field(default_factory=str)
|
|
target_zone: str = field(default_factory=str)
|
|
cargo: list[CargoInfo] = field(default_factory=list)
|
|
preload: bool = field(default=False)
|
|
|
|
|
|
@dataclass
|
|
class MissionData:
|
|
awacs: list[AwacsInfo] = field(default_factory=list)
|
|
runways: list[RunwayData] = field(default_factory=list)
|
|
carriers: list[CarrierInfo] = field(default_factory=list)
|
|
flights: list[FlightData] = field(default_factory=list)
|
|
tankers: list[TankerInfo] = field(default_factory=list)
|
|
jtacs: list[JtacInfo] = field(default_factory=list)
|
|
logistics: list[LogisticsInfo] = field(default_factory=list)
|