Made it possible to toggle 'flight paths' visibility.

This commit is contained in:
Khopa 2019-12-14 20:32:39 +01:00
parent 074ea5c719
commit 5884d9d120
2 changed files with 19 additions and 11 deletions

View File

@ -28,6 +28,7 @@ class QLiberationMap(QGraphicsView):
"lines": True, "lines": True,
"events": True, "events": True,
"sam": True, "sam": True,
"flight_paths": False
} }
def __init__(self, game: Game): def __init__(self, game: Game):
@ -120,17 +121,18 @@ class QLiberationMap(QGraphicsView):
if self.get_display_rule("lines"): if self.get_display_rule("lines"):
self.scene_create_lines_for_cp(cp) self.scene_create_lines_for_cp(cp)
if cp.id in self.game.planners.keys(): if self.get_display_rule("flight_paths"):
planner = self.game.planners[cp.id] if cp.id in self.game.planners.keys():
for flight in planner.flights: planner = self.game.planners[cp.id]
scene.addEllipse(pos[0], pos[1], 4, 4) for flight in planner.flights:
prev_pos = list(pos) scene.addEllipse(pos[0], pos[1], 4, 4)
for point in flight.points: prev_pos = list(pos)
new_pos = self._transform_point(Point(point.x, point.y)) for point in flight.points:
scene.addLine(prev_pos[0]+2, prev_pos[1]+2, new_pos[0]+2, new_pos[1]+2, flight_path_pen) new_pos = self._transform_point(Point(point.x, point.y))
scene.addEllipse(new_pos[0], new_pos[1], 4, 4, pen, brush) scene.addLine(prev_pos[0]+2, prev_pos[1]+2, new_pos[0]+2, new_pos[1]+2, flight_path_pen)
prev_pos = list(new_pos) scene.addEllipse(new_pos[0], new_pos[1], 4, 4, pen, brush)
scene.addLine(prev_pos[0] + 2, prev_pos[1] + 2, pos[0] + 2, pos[1] + 2, flight_path_pen) prev_pos = list(new_pos)
scene.addLine(prev_pos[0] + 2, prev_pos[1] + 2, pos[0] + 2, pos[1] + 2, flight_path_pen)
def scene_create_lines_for_cp(self, cp: ControlPoint): def scene_create_lines_for_cp(self, cp: ControlPoint):
scene = self.scene() scene = self.scene()

View File

@ -124,11 +124,17 @@ class QLiberationWindow(QMainWindow):
tg_sam_visibility.setChecked(True) tg_sam_visibility.setChecked(True)
tg_sam_visibility.toggled.connect(lambda: QLiberationMap.set_display_rule("sam", tg_sam_visibility.isChecked())) tg_sam_visibility.toggled.connect(lambda: QLiberationMap.set_display_rule("sam", tg_sam_visibility.isChecked()))
tg_flight_path_visibility = QAction('Flight Paths', displayMenu)
tg_flight_path_visibility.setCheckable(True)
tg_flight_path_visibility.setChecked(False)
tg_flight_path_visibility.toggled.connect(lambda: QLiberationMap.set_display_rule("flight_paths", tg_flight_path_visibility.isChecked()))
displayMenu.addAction(tg_go_visibility) displayMenu.addAction(tg_go_visibility)
displayMenu.addAction(tg_cp_visibility) displayMenu.addAction(tg_cp_visibility)
displayMenu.addAction(tg_line_visibility) displayMenu.addAction(tg_line_visibility)
displayMenu.addAction(tg_event_visibility) displayMenu.addAction(tg_event_visibility)
displayMenu.addAction(tg_sam_visibility) displayMenu.addAction(tg_sam_visibility)
displayMenu.addAction(tg_flight_path_visibility)
def newGame(self): def newGame(self):
wizard = NewGameWizard(self) wizard = NewGameWizard(self)