mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Move MapZones out of MapModel.
This commit is contained in:
@@ -20,7 +20,6 @@ from .controlpointjs import ControlPointJs
|
||||
from .flightjs import FlightJs
|
||||
from .frontlinejs import FrontLineJs
|
||||
from .groundobjectjs import GroundObjectJs
|
||||
from .mapzonesjs import MapZonesJs
|
||||
from .supplyroutejs import SupplyRouteJs
|
||||
from .threatzonecontainerjs import ThreatZoneContainerJs
|
||||
from .threatzonesjs import ThreatZonesJs
|
||||
@@ -54,7 +53,6 @@ class MapModel(QObject):
|
||||
flightsChanged = Signal()
|
||||
frontLinesChanged = Signal()
|
||||
threatZonesChanged = Signal()
|
||||
mapZonesChanged = Signal()
|
||||
unculledZonesChanged = Signal()
|
||||
selectedFlightChanged = Signal(str)
|
||||
|
||||
@@ -70,7 +68,6 @@ class MapModel(QObject):
|
||||
self._threat_zones = ThreatZoneContainerJs(
|
||||
ThreatZonesJs.empty(), ThreatZonesJs.empty()
|
||||
)
|
||||
self._map_zones = MapZonesJs([], [], [])
|
||||
self._unculled_zones = []
|
||||
self._selected_flight_index: Optional[Tuple[int, int]] = None
|
||||
|
||||
@@ -99,7 +96,6 @@ class MapModel(QObject):
|
||||
self._threat_zones = ThreatZoneContainerJs(
|
||||
ThreatZonesJs.empty(), ThreatZonesJs.empty()
|
||||
)
|
||||
self._map_zones = MapZonesJs([], [], [])
|
||||
self._unculled_zones = []
|
||||
self.cleared.emit()
|
||||
|
||||
@@ -164,7 +160,6 @@ class MapModel(QObject):
|
||||
self.reset_atos()
|
||||
self.reset_front_lines()
|
||||
self.reset_threat_zones()
|
||||
self.reset_map_zones()
|
||||
self.reset_unculled_zones()
|
||||
|
||||
def on_game_load(self, game: Optional[Game]) -> None:
|
||||
@@ -297,14 +292,6 @@ class MapModel(QObject):
|
||||
def threatZones(self) -> ThreatZoneContainerJs:
|
||||
return self._threat_zones
|
||||
|
||||
def reset_map_zones(self) -> None:
|
||||
self._map_zones = MapZonesJs.from_game(self.game)
|
||||
self.mapZonesChanged.emit()
|
||||
|
||||
@Property(MapZonesJs, notify=mapZonesChanged)
|
||||
def mapZones(self) -> MapZonesJs:
|
||||
return self._map_zones
|
||||
|
||||
def on_package_change(self) -> None:
|
||||
self.reset_unculled_zones()
|
||||
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from PySide2.QtCore import Property, QObject, Signal
|
||||
|
||||
from game import Game
|
||||
from game.server.leaflet import LeafletPoly, ShapelyUtil
|
||||
|
||||
|
||||
class MapZonesJs(QObject):
|
||||
inclusionZonesChanged = Signal()
|
||||
exclusionZonesChanged = Signal()
|
||||
seaZonesChanged = Signal()
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
inclusion_zones: list[LeafletPoly],
|
||||
exclusion_zones: list[LeafletPoly],
|
||||
sea_zones: list[LeafletPoly],
|
||||
) -> None:
|
||||
super().__init__()
|
||||
self._inclusion_zones = inclusion_zones
|
||||
self._exclusion_zones = exclusion_zones
|
||||
self._sea_zones = sea_zones
|
||||
|
||||
@Property(list, notify=inclusionZonesChanged)
|
||||
def inclusionZones(self) -> list[LeafletPoly]:
|
||||
return self._inclusion_zones
|
||||
|
||||
@Property(list, notify=exclusionZonesChanged)
|
||||
def exclusionZones(self) -> list[LeafletPoly]:
|
||||
return self._exclusion_zones
|
||||
|
||||
@Property(list, notify=seaZonesChanged)
|
||||
def seaZones(self) -> list[LeafletPoly]:
|
||||
return self._sea_zones
|
||||
|
||||
@classmethod
|
||||
def from_game(cls, game: Game) -> MapZonesJs:
|
||||
zones = game.theater.landmap
|
||||
return MapZonesJs(
|
||||
ShapelyUtil.polys_to_leaflet(zones.inclusion_zones, game.theater),
|
||||
ShapelyUtil.polys_to_leaflet(zones.exclusion_zones, game.theater),
|
||||
ShapelyUtil.polys_to_leaflet(zones.sea_zones, game.theater),
|
||||
)
|
||||
Reference in New Issue
Block a user