mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Move threat zones out of MapModel.
This commit is contained in:
@@ -3,7 +3,9 @@ from __future__ import annotations
|
||||
from dcs.mapping import LatLng
|
||||
from pydantic import BaseModel
|
||||
|
||||
from game.server.leaflet import LeafletPoly
|
||||
from game.server.leaflet import LeafletPoly, ShapelyUtil
|
||||
from game.theater import ConflictTheater
|
||||
from game.threatzones import ThreatZones
|
||||
|
||||
|
||||
class MapZonesJs(BaseModel):
|
||||
@@ -15,3 +17,24 @@ class MapZonesJs(BaseModel):
|
||||
class UnculledZoneJs(BaseModel):
|
||||
position: LatLng
|
||||
radius: float
|
||||
|
||||
|
||||
class ThreatZonesJs(BaseModel):
|
||||
full: list[LeafletPoly]
|
||||
aircraft: list[LeafletPoly]
|
||||
air_defenses: list[LeafletPoly]
|
||||
radar_sams: list[LeafletPoly]
|
||||
|
||||
@classmethod
|
||||
def from_zones(cls, zones: ThreatZones, theater: ConflictTheater) -> ThreatZonesJs:
|
||||
return ThreatZonesJs(
|
||||
full=ShapelyUtil.polys_to_leaflet(zones.all, theater),
|
||||
aircraft=ShapelyUtil.polys_to_leaflet(zones.airbases, theater),
|
||||
air_defenses=ShapelyUtil.polys_to_leaflet(zones.air_defenses, theater),
|
||||
radar_sams=ShapelyUtil.polys_to_leaflet(zones.radar_sam_threats, theater),
|
||||
)
|
||||
|
||||
|
||||
class ThreatZoneContainerJs(BaseModel):
|
||||
blue: ThreatZonesJs
|
||||
red: ThreatZonesJs
|
||||
|
||||
Reference in New Issue
Block a user