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:
@@ -1,11 +1,12 @@
|
||||
from fastapi import Depends, FastAPI
|
||||
|
||||
from . import debuggeometries, eventstream, flights, navmesh, waypoints
|
||||
from . import debuggeometries, eventstream, flights, mapzones, navmesh, waypoints
|
||||
from .security import ApiKeyManager
|
||||
|
||||
app = FastAPI(dependencies=[Depends(ApiKeyManager.verify)])
|
||||
app.include_router(debuggeometries.router)
|
||||
app.include_router(eventstream.router)
|
||||
app.include_router(flights.router)
|
||||
app.include_router(mapzones.router)
|
||||
app.include_router(navmesh.router)
|
||||
app.include_router(waypoints.router)
|
||||
|
||||
1
game/server/mapzones/__init__.py
Normal file
1
game/server/mapzones/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .routes import router
|
||||
11
game/server/mapzones/models.py
Normal file
11
game/server/mapzones/models.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from game.server.leaflet import LeafletPoly
|
||||
|
||||
|
||||
class MapZonesJs(BaseModel):
|
||||
inclusion: list[LeafletPoly]
|
||||
exclusion: list[LeafletPoly]
|
||||
sea: list[LeafletPoly]
|
||||
21
game/server/mapzones/routes.py
Normal file
21
game/server/mapzones/routes.py
Normal file
@@ -0,0 +1,21 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
|
||||
from game import Game
|
||||
from game.server import GameContext
|
||||
from .models import MapZonesJs
|
||||
from ..leaflet import ShapelyUtil
|
||||
|
||||
router: APIRouter = APIRouter(prefix="/map-zones")
|
||||
|
||||
|
||||
@router.get("/")
|
||||
def get(game: Game = Depends(GameContext.get)) -> MapZonesJs:
|
||||
zones = game.theater.landmap
|
||||
if zones is None:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
return MapZonesJs(
|
||||
inclusion=ShapelyUtil.polys_to_leaflet(zones.inclusion_zones, game.theater),
|
||||
exclusion=ShapelyUtil.polys_to_leaflet(zones.exclusion_zones, game.theater),
|
||||
sea=ShapelyUtil.polys_to_leaflet(zones.sea_zones, game.theater),
|
||||
)
|
||||
Reference in New Issue
Block a user