Push full navmesh/threatzone info in the event stream.

https://github.com/dcs-liberation/dcs_liberation/issues/2253
https://github.com/dcs-liberation/dcs_liberation/issues/2263
This commit is contained in:
Raffson
2022-07-06 22:27:06 +02:00
committed by GitHub
parent a20b95bb26
commit 9823f7b96f
6 changed files with 59 additions and 41 deletions

View File

@@ -10,8 +10,10 @@ from dcs.mapping import LatLng
if TYPE_CHECKING:
from game import Game
from game.ato import Flight, Package
from game.navmesh import NavMesh
from game.sim.combat import FrozenCombat
from game.theater import ControlPoint, FrontLine, TheaterGroundObject
from game.threatzones import ThreatZones
from game.theater.iadsnetwork.iadsnetwork import IadsNetworkNode
@@ -22,9 +24,9 @@ class GameUpdateEvents:
updated_combats: list[FrozenCombat] = field(default_factory=list)
ended_combats: list[FrozenCombat] = field(default_factory=list)
updated_flight_positions: list[tuple[Flight, Point]] = field(default_factory=list)
navmesh_updates: set[bool] = field(default_factory=set)
navmesh_updates: dict[bool, NavMesh] = field(default_factory=dict)
unculled_zones_updated: list[Point] = field(default_factory=list)
threat_zones_updated: bool = False
threat_zones_updated: dict[bool, ThreatZones] = field(default_factory=dict)
new_flights: set[Flight] = field(default_factory=set)
updated_flights: set[Flight] = field(default_factory=set)
deleted_flights: set[UUID] = field(default_factory=set)
@@ -67,16 +69,16 @@ class GameUpdateEvents:
self.updated_flight_positions.append((flight, new_position))
return self
def update_navmesh(self, player: bool) -> GameUpdateEvents:
self.navmesh_updates.add(player)
def update_navmesh(self, player: bool, navmesh: NavMesh) -> GameUpdateEvents:
self.navmesh_updates[player] = navmesh
return self
def update_unculled_zones(self, zones: list[Point]) -> GameUpdateEvents:
self.unculled_zones_updated = zones
return self
def update_threat_zones(self) -> GameUpdateEvents:
self.threat_zones_updated = True
def update_threat_zones(self, player: bool, zones: ThreatZones) -> GameUpdateEvents:
self.threat_zones_updated[player] = zones
return self
def new_flight(self, flight: Flight) -> GameUpdateEvents: