Add package frequency

Part of #70
This commit is contained in:
Raffson
2023-01-13 20:27:13 +01:00
parent e8151678dd
commit 7bae6cd562
5 changed files with 111 additions and 21 deletions

View File

@@ -104,6 +104,12 @@ class AircraftGenerator:
ato: The ATO to spawn aircraft for.
dynamic_runways: Runway data for carriers and FARPs.
"""
for package in reversed(sorted(ato.packages, key=lambda x: x.time_over_target)):
if package.frequency is None:
continue
if package.frequency not in self.radio_registry.allocated_channels:
self.radio_registry.reserve(package.frequency)
for package in reversed(sorted(ato.packages, key=lambda x: x.time_over_target)):
if not package.flights:
continue

View File

@@ -133,18 +133,19 @@ class FlightGroupConfigurator:
laser_codes.append(None)
def setup_radios(self) -> RadioFrequency:
if self.flight.flight_type in {FlightType.AEWC, FlightType.REFUELING}:
channel = self.radio_registry.alloc_uhf()
self.register_air_support(channel)
else:
if (channel := self.flight.package.frequency) is None:
channel = self.radio_registry.alloc_uhf()
self.flight.package.frequency = channel
if self.flight.client_count:
channel = self.flight.unit_type.alloc_flight_radio(self.radio_registry)
if (freq := self.flight.package.frequency) is None:
freq = self.radio_registry.alloc_uhf()
self.flight.package.frequency = freq
elif freq not in self.radio_registry.allocated_channels:
self.radio_registry.reserve(freq)
self.group.set_frequency(channel.mhz)
return channel
if self.flight.flight_type in {FlightType.AEWC, FlightType.REFUELING}:
self.register_air_support(freq)
elif self.flight.client_count:
freq = self.flight.unit_type.alloc_flight_radio(self.radio_registry)
self.group.set_frequency(freq.mhz)
return freq
def register_air_support(self, channel: RadioFrequency) -> None:
callsign = callsign_for_support_unit(self.group)