mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Doesn't allow helos or harriers to do it either even though they should be able to because we don't currently support ground spawns, which would be needed to prevent those aircraft from using the runway. Even then, I don't know if they can be forced to *land* vertically. Fixes https://github.com/Khopa/dcs_liberation/issues/432
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
"""Combo box for selecting a departure airfield."""
|
|
from typing import Iterable, Type
|
|
|
|
from PySide2.QtWidgets import QComboBox
|
|
from dcs.unittype import FlyingType
|
|
|
|
from game.theater.controlpoint import ControlPoint
|
|
|
|
|
|
class QArrivalAirfieldSelector(QComboBox):
|
|
"""A combo box for selecting a flight's arrival or divert airfield.
|
|
|
|
The combo box will automatically be populated with all airfields the given
|
|
aircraft type is able to land at.
|
|
"""
|
|
|
|
def __init__(self, destinations: Iterable[ControlPoint],
|
|
aircraft: Type[FlyingType], optional_text: str) -> None:
|
|
super().__init__()
|
|
self.destinations = list(destinations)
|
|
self.aircraft = aircraft
|
|
self.optional_text = optional_text
|
|
self.rebuild_selector()
|
|
self.setCurrentIndex(0)
|
|
|
|
def change_aircraft(self, aircraft: FlyingType) -> None:
|
|
if self.aircraft == aircraft:
|
|
return
|
|
self.aircraft = aircraft
|
|
self.rebuild_selector()
|
|
|
|
def rebuild_selector(self) -> None:
|
|
self.clear()
|
|
for destination in self.destinations:
|
|
if destination.can_operate(self.aircraft):
|
|
self.addItem(destination.name, destination)
|
|
self.model().sort(0)
|
|
self.insertItem(0, self.optional_text, None)
|
|
self.setCurrentIndex(0)
|