Move pydcs helper function out of db.

This commit is contained in:
Dan Albert 2022-02-18 18:10:02 -08:00
parent b4742ad54c
commit 4f64329f25
8 changed files with 32 additions and 34 deletions

View File

@ -1,16 +1,10 @@
from datetime import datetime
from enum import Enum
from typing import Optional, Type
from typing import Type
from dcs.countries import country_dict
from dcs.helicopters import (
helicopter_map,
)
# mypy can't resolve these if they're wildcard imports for some reason.
from dcs.planes import (
plane_map,
)
from dcs.ships import (
CVN_71,
CVN_72,
@ -19,12 +13,8 @@ from dcs.ships import (
CV_1143_5,
KUZNECOW,
Stennis,
ship_map,
)
from dcs.unittype import ShipType, UnitType
from dcs.vehicles import (
vehicle_map,
)
from dcs.unittype import ShipType
# PATCH pydcs data with MODS
@ -141,19 +131,6 @@ def upgrade_to_supercarrier(unit: Type[ShipType], name: str) -> Type[ShipType]:
return unit
def unit_type_from_name(name: str) -> Optional[Type[UnitType]]:
if name in vehicle_map:
return vehicle_map[name]
elif name in plane_map:
return plane_map[name]
elif name in ship_map:
return ship_map[name]
if name in helicopter_map:
return helicopter_map[name]
else:
return None
def country_id_from_name(name: str) -> int:
for k, v in country_dict.items():
if v.name == name:

0
game/dcs/__init__.py Normal file
View File

20
game/dcs/helpers.py Normal file
View File

@ -0,0 +1,20 @@
from typing import Optional, Type
from dcs.helicopters import helicopter_map
from dcs.planes import plane_map
from dcs.ships import ship_map
from dcs.unittype import UnitType
from dcs.vehicles import vehicle_map
def unit_type_from_name(name: str) -> Optional[Type[UnitType]]:
if name in vehicle_map:
return vehicle_map[name]
elif name in plane_map:
return plane_map[name]
elif name in ship_map:
return ship_map[name]
if name in helicopter_map:
return helicopter_map[name]
else:
return None

View File

@ -39,7 +39,6 @@ from game.ato.flighttype import FlightType
from game.ato.flightwaypoint import FlightWaypoint
from game.ato.flightwaypointtype import FlightWaypointType
from game.data.alic import AlicCodes
from game.db import unit_type_from_name
from game.dcs.aircrafttype import AircraftType
from game.radio.radios import RadioFrequency
from game.theater import ConflictTheater, LatLon, TheaterGroundObject
@ -50,6 +49,7 @@ from gen.runways import RunwayData
from .aircraft.flightdata import FlightData
from .airsupportgenerator import AwacsInfo, TankerInfo
from .briefinggenerator import CommInfo, JtacInfo, MissionInfoGenerator
from ..dcs.helpers import unit_type_from_name
if TYPE_CHECKING:
from game import Game

View File

@ -11,6 +11,7 @@ from dcs.coalition import Coalition
from dcs.countries import country_dict
from game import db
from game.dcs.helpers import unit_type_from_name
from game.missiongenerator.aircraft.aircraftgenerator import (
AircraftGenerator,
)
@ -283,7 +284,7 @@ class MissionGenerator:
raise TypeError(
"Expected the type of the destroyed static to be a string"
)
utype = db.unit_type_from_name(type_name)
utype = unit_type_from_name(type_name)
except KeyError:
logging.warning(f"Destroyed unit has no type: {d}")
continue

View File

@ -46,7 +46,7 @@ from dcs.vehicles import vehicle_map
from game import db
from game.data.building_data import FORTIFICATION_UNITS, FORTIFICATION_UNITS_ID
from game.db import unit_type_from_name
from game.dcs.helpers import unit_type_from_name
from game.radio.radios import RadioFrequency, RadioRegistry
from game.radio.tacan import TacanBand, TacanChannel, TacanRegistry, TacanUsage
from game.theater import ControlPoint, TheaterGroundObject

View File

@ -29,7 +29,7 @@ from dcs.terrain.terrain import Airport, ParkingSlot
from dcs.unit import Unit
from dcs.unitgroup import ShipGroup, StaticGroup
from game import db
from game.dcs.helpers import unit_type_from_name
from game.point_with_heading import PointWithHeading
from game.scenery_group import SceneryGroup
from game.utils import Heading
@ -520,7 +520,7 @@ class ControlPoint(MissionTarget, ABC):
if g.dcs_identifier == "CARRIER":
for group in g.groups:
for u in group.units:
if db.unit_type_from_name(u.type) in [
if unit_type_from_name(u.type) in [
Forrestal,
Stennis,
KUZNECOW,
@ -529,7 +529,7 @@ class ControlPoint(MissionTarget, ABC):
elif g.dcs_identifier == "LHA":
for group in g.groups:
for u in group.units:
if db.unit_type_from_name(u.type) in [LHA_Tarawa]:
if unit_type_from_name(u.type) in [LHA_Tarawa]:
return group.name
return None
@ -1012,7 +1012,7 @@ class NavalControlPoint(ControlPoint, ABC):
# while its escorts are still alive.
for group in self.find_main_tgo().groups:
for u in group.units:
if db.unit_type_from_name(u.type) in [
if unit_type_from_name(u.type) in [
Forrestal,
Stennis,
LHA_Tarawa,

View File

@ -12,7 +12,7 @@ from dcs.unit import Unit
from dcs.unitgroup import ShipGroup, VehicleGroup
from dcs.vehicles import vehicle_map
from .. import db
from game.dcs.helpers import unit_type_from_name
from ..data.radar_db import LAUNCHER_TRACKER_PAIRS, TELARS, TRACK_RADARS
from ..utils import Distance, Heading, meters
@ -155,7 +155,7 @@ class TheaterGroundObject(MissionTarget, Generic[GroupT]):
max_range = meters(0)
for u in group.units:
unit = db.unit_type_from_name(u.type)
unit = unit_type_from_name(u.type)
if unit is None:
logging.error(f"Unknown unit type {u.type}")
continue