Allow radio-presets to be defined in squadron files

This commit is contained in:
Raffson
2023-08-13 13:16:30 +02:00
parent 95f169bb58
commit 7baba78bca
7 changed files with 40 additions and 1 deletions

View File

@@ -46,6 +46,9 @@ class CommonRadioChannelAllocator(RadioChannelAllocator):
def assign_channels_for_flight(
self, flight: FlightData, mission_data: MissionData
) -> None:
if flight.client_units and flight.squadron.radio_presets:
return self.assign_from_squadron_presets(flight)
if self.intra_flight_radio_index is not None:
flight.assign_channel(
self.intra_flight_radio_index, 1, flight.intra_flight_channel
@@ -105,6 +108,17 @@ class CommonRadioChannelAllocator(RadioChannelAllocator):
def name(cls) -> str:
return "common"
def assign_from_squadron_presets(self, flight: FlightData) -> None:
presets = flight.squadron.radio_presets
for radio in presets:
radio_id = 1
if self.intra_flight_radio_index and radio == "intra_flight":
radio_id = self.intra_flight_radio_index
elif self.inter_flight_radio_index and radio == "inter_flight":
radio_id = self.inter_flight_radio_index
for channel, freq in enumerate(presets[radio], start=1):
flight.assign_channel(radio_id, channel, freq)
@dataclass(frozen=True)
class NoOpChannelAllocator(RadioChannelAllocator):