mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
33 lines
1012 B
Python
33 lines
1012 B
Python
from __future__ import annotations
|
|
|
|
from typing import List
|
|
|
|
from PySide2.QtCore import Property, QObject, Signal, Slot
|
|
|
|
from game.server.leaflet import LeafletLatLon
|
|
from game.theater import FrontLine
|
|
from game.utils import nautical_miles
|
|
from qt_ui.dialogs import Dialog
|
|
|
|
|
|
class FrontLineJs(QObject):
|
|
extentsChanged = Signal()
|
|
|
|
def __init__(self, front_line: FrontLine) -> None:
|
|
super().__init__()
|
|
self.front_line = front_line
|
|
|
|
@Property(list, notify=extentsChanged)
|
|
def extents(self) -> List[LeafletLatLon]:
|
|
a = self.front_line.position.point_from_heading(
|
|
self.front_line.attack_heading.right.degrees, nautical_miles(2).meters
|
|
).latlng()
|
|
b = self.front_line.position.point_from_heading(
|
|
self.front_line.attack_heading.left.degrees, nautical_miles(2).meters
|
|
).latlng()
|
|
return [a.as_list(), b.as_list()]
|
|
|
|
@Slot()
|
|
def showPackageDialog(self) -> None:
|
|
Dialog.open_new_package_dialog(self.front_line)
|