-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaircraft_parser.py
More file actions
64 lines (50 loc) · 2.22 KB
/
aircraft_parser.py
File metadata and controls
64 lines (50 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"""This file contains the code used to parse all the aircraft
in campaign_data and give it back to the campaign_data object
Imports From:
aircraft.py
Functions:
aircraft_parser()
"""
from aircraft import Aircraft
def aircraft_parser(campaign_directory: str) -> list[Aircraft]:
"""Generate a list of Aircraft given a read campaign data file
Parameters:
campaign_data_file: io.TextIOWrapper | A read campaign data file containing Aircraft
Returns:
list[Aircraft] | A list of parsed Aircraft
"""
aircraft_list: list[Aircraft] = []
reading_aircraft = False
# Done to appease MyPy
current_aircraft: Aircraft = Aircraft()
try:
with open(
f"{campaign_directory}\\campaign_data.txt", mode="r", encoding="utf-8"
) as campaign_data:
for line in campaign_data:
if line.strip() == "[Aircraft]":
reading_aircraft = True
continue
if not reading_aircraft:
continue
if line.strip() == "[Satellites]":
reading_aircraft = False
if current_aircraft.name != "":
aircraft_list.append(current_aircraft)
continue
if line.strip().startswith("AircraftName"):
if current_aircraft.name != "":
aircraft_list.append(current_aircraft)
current_aircraft = Aircraft()
current_aircraft.name = line.strip().split("=")[1]
if line.strip().startswith("AircraftFaction"):
current_aircraft.faction = line.strip().split("=")[1]
if line.strip().startswith("AircraftPatrolSpeed"):
current_aircraft.patrol_speed = int(line.strip().split("=")[1])
if line.strip().startswith("AircraftPatrolRange"):
current_aircraft.patrol_range = int(line.strip().split("=")[1])
if line.strip().startswith("AircraftDetectionRange"):
current_aircraft.detection_range = int(line.strip().split("=")[1])
return aircraft_list
except FileNotFoundError:
return []