Total Complexity | 0 |
Total Lines | 101 |
Duplicated Lines | 0 % |
Coverage | 71.43% |
Changes | 0 |
1 | """ |
||
2 | Primitive actor data structures. |
||
3 | |||
4 | """ |
||
5 | from dataclasses import dataclass |
||
6 | 1 | ||
7 | from .structures import PrimitiveDataclassMixin |
||
8 | |||
9 | 1 | from ._utils import export |
|
10 | |||
11 | |||
12 | @export |
||
13 | @dataclass(frozen=True) |
||
14 | class Actor(PrimitiveDataclassMixin): |
||
15 | 1 | ... |
|
16 | 1 | ||
17 | |||
18 | 1 | @export |
|
19 | @dataclass(frozen=True) |
||
20 | class Human(Actor): |
||
21 | __slots__ = ["callsign", ] |
||
22 | |||
23 | callsign: str |
||
24 | |||
25 | 1 | ||
26 | 1 | @export |
|
27 | @dataclass(frozen=True) |
||
28 | 1 | class HumanAircraft(Human): |
|
29 | __slots__ = Human.__slots__ + ["aircraft", ] |
||
30 | |||
31 | aircraft: str |
||
32 | |||
33 | |||
34 | @export |
||
35 | @dataclass(frozen=True) |
||
36 | 1 | class HumanAircraftCrewMember(HumanAircraft): |
|
37 | 1 | __slots__ = HumanAircraft.__slots__ + ["index", ] |
|
38 | |||
39 | 1 | index: int |
|
40 | |||
41 | |||
42 | @export |
||
43 | @dataclass(frozen=True) |
||
44 | class AIAircraft(Actor): |
||
45 | __slots__ = ["flight_id", "aircraft", ] |
||
46 | |||
47 | flight_id: str |
||
48 | aircraft: str |
||
49 | |||
50 | 1 | ||
51 | 1 | @export |
|
52 | @dataclass(frozen=True) |
||
53 | 1 | class AIAircraftCrewMember(AIAircraft): |
|
54 | __slots__ = AIAircraft.__slots__ + ["index", ] |
||
55 | |||
56 | index: int |
||
57 | |||
58 | |||
59 | @export |
||
60 | @dataclass(frozen=True) |
||
61 | 1 | class Unit(Actor): |
|
62 | 1 | __slots__ = ["id", ] |
|
63 | |||
64 | 1 | id: str |
|
65 | |||
66 | |||
67 | @export |
||
68 | @dataclass(frozen=True) |
||
69 | class StationaryUnit(Unit): |
||
70 | ... |
||
71 | |||
72 | |||
73 | @export |
||
74 | @dataclass(frozen=True) |
||
75 | 1 | class MovingUnit(Unit): |
|
76 | 1 | ... |
|
77 | |||
78 | 1 | ||
79 | @export |
||
80 | @dataclass(frozen=True) |
||
81 | class MovingUnitMember(MovingUnit): |
||
82 | __slots__ = MovingUnit.__slots__ + ["index", ] |
||
83 | |||
84 | index: int |
||
85 | 1 | ||
86 | |||
87 | @export |
||
88 | @dataclass(frozen=True) |
||
89 | class Building(Actor): |
||
90 | __slots__ = ["name", ] |
||
91 | 1 | ||
92 | name: str |
||
93 | |||
94 | |||
95 | @export |
||
96 | @dataclass(frozen=True) |
||
97 | 1 | class Bridge(Actor): |
|
98 | 1 | __slots__ = ["id", ] |
|
99 | |||
100 | id: str |
||
101 |