Streamlining

This commit is contained in:
Raffson 2023-10-07 18:13:55 +02:00
parent a2630fc75f
commit 03d8448def
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
4 changed files with 16 additions and 11 deletions

View File

@ -3,7 +3,7 @@ from __future__ import annotations
from collections.abc import Iterator
from dataclasses import dataclass
from datetime import timedelta
from typing import TYPE_CHECKING, Type
from typing import TYPE_CHECKING, Type, Optional
from game.theater import FrontLine
from game.utils import Distance, Speed, kph, dcs_to_shapely_point
@ -15,7 +15,7 @@ from .uizonedisplay import UiZone, UiZoneDisplay
from .waypointbuilder import WaypointBuilder
from ..flightwaypointtype import FlightWaypointType
from ...flightplan.ipsolver import IpSolver
from ...persistence.paths import waypoint_debug_directory
from ...persistency import waypoint_debug_directory
if TYPE_CHECKING:
from ..flightwaypoint import FlightWaypoint
@ -23,11 +23,12 @@ if TYPE_CHECKING:
@dataclass
class CasLayout(PatrollingLayout):
ingress: FlightWaypoint
ingress: Optional[FlightWaypoint]
def iter_waypoints(self) -> Iterator[FlightWaypoint]:
yield self.departure
yield from self.nav_to
if self.ingress:
yield self.ingress
yield self.patrol_start
yield self.patrol_end
@ -154,13 +155,13 @@ class Builder(IBuilder[CasFlightPlan, CasLayout]):
nav_to=builder.nav_path(
self.flight.departure.position,
ingress_point,
patrol_altitude,
ingress_egress_altitude,
use_agl_patrol_altitude,
),
nav_from=builder.nav_path(
patrol_end,
egress,
self.flight.arrival.position,
patrol_altitude,
ingress_egress_altitude,
use_agl_patrol_altitude,
),
ingress=ingress,

View File

@ -10,7 +10,7 @@ from game.ato.flightplans.waypointbuilder import WaypointBuilder
from game.flightplan import JoinZoneGeometry
from game.flightplan.ipsolver import IpSolver
from game.flightplan.refuelzonegeometry import RefuelZoneGeometry
from game.persistency import debug_dir
from game.persistency import waypoint_debug_directory
from game.utils import dcs_to_shapely_point
from game.utils import nautical_miles
@ -33,8 +33,6 @@ class PackageWaypoints:
) -> PackageWaypoints:
origin = package.departure_closest_to_target()
waypoint_debug_directory = debug_dir() / "Waypoints"
# Start by picking the best IP for the attack.
ip_solver = IpSolver(
dcs_to_shapely_point(origin.position),
@ -43,7 +41,7 @@ class PackageWaypoints:
coalition.opponent.threat_zone.all,
)
ip_solver.set_debug_properties(
waypoint_debug_directory / "IP", coalition.game.theater.terrain
waypoint_debug_directory() / "IP", coalition.game.theater.terrain
)
ingress_point_shapely = ip_solver.solve()
if dump_debug_info:

View File

@ -97,6 +97,8 @@ class Migrator:
layout = f.flight_plan.layout
try_set_attr(layout, "nav_to", [])
try_set_attr(layout, "nav_from", [])
if f.flight_type == FlightType.CAS:
try_set_attr(layout, "ingress", None)
def _update_flights(self) -> None:
to_remove = []

View File

@ -80,6 +80,10 @@ def debug_dir() -> Path:
return base_path() / "Retribution" / "Debug"
def waypoint_debug_directory() -> Path:
return debug_dir() / "Waypoints"
def settings_dir() -> Path:
return base_path() / "Retribution" / "Settings"