mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
26 lines
810 B
Python
26 lines
810 B
Python
from __future__ import annotations
|
|
|
|
from collections import defaultdict
|
|
from dataclasses import dataclass
|
|
from typing import Iterator, Optional
|
|
|
|
from game.armedforces.forcegroup import ForceGroup
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class TgoConfig:
|
|
by_original_name: dict[str, ForceGroup]
|
|
|
|
def __iter__(self) -> Iterator[str]:
|
|
return self.by_original_name.__iter__()
|
|
|
|
def __getitem__(self, name: str) -> Optional[ForceGroup]:
|
|
return self.by_original_name.get(name)
|
|
|
|
@classmethod
|
|
def from_campaign_data(cls, data: dict[str, str]) -> TgoConfig:
|
|
by_original_name: dict[str, ForceGroup] = defaultdict()
|
|
for tgo_name, force_group in data.items():
|
|
by_original_name[tgo_name] = ForceGroup.from_preset_group(force_group)
|
|
return TgoConfig(by_original_name)
|