Add campaign support for ferry-only bases.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3170.
This commit is contained in:
Dan Albert
2023-09-21 21:08:42 -07:00
parent e43874e553
commit 2344fc0b5c
12 changed files with 256 additions and 45 deletions

View File

@@ -0,0 +1,21 @@
from __future__ import annotations
from collections.abc import Iterator
from dataclasses import dataclass
from typing import Any
@dataclass(frozen=True)
class ControlPointConfig:
ferry_only: bool
@staticmethod
def from_data(data: dict[str, Any]) -> ControlPointConfig:
return ControlPointConfig(ferry_only=data.get("ferry_only", False))
@staticmethod
def iter_from_data(
data: dict[str | int, Any]
) -> Iterator[tuple[str | int, ControlPointConfig]]:
for name_or_id, cp_data in data.items():
yield name_or_id, ControlPointConfig.from_data(cp_data)