mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Add UI for acquiring/releasing TGP laser codes.
This commit is contained in:
parent
177f357492
commit
17e539e524
@ -18,6 +18,7 @@ from game.ato.flightmember import FlightMember
|
||||
from game.ato.loadouts import Loadout
|
||||
from qt_ui.widgets.QLabeledWidget import QLabeledWidget
|
||||
from .QLoadoutEditor import QLoadoutEditor
|
||||
from .ownlasercodeinfo import OwnLaserCodeInfo
|
||||
from .propertyeditor import PropertyEditor
|
||||
|
||||
|
||||
@ -149,6 +150,11 @@ class QFlightPayloadTab(QFrame):
|
||||
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||
layout.addWidget(scroll, stretch=1)
|
||||
|
||||
self.own_laser_code_info = OwnLaserCodeInfo(
|
||||
game, self.member_selector.selected_member
|
||||
)
|
||||
scrolling_layout.addLayout(self.own_laser_code_info)
|
||||
|
||||
self.property_editor = PropertyEditor(
|
||||
self.flight, self.member_selector.selected_member
|
||||
)
|
||||
@ -188,6 +194,7 @@ class QFlightPayloadTab(QFrame):
|
||||
self.loadout_selector.setCurrentText(member.loadout.name)
|
||||
self.loadout_selector.setDisabled(member.loadout.is_custom)
|
||||
self.payload_editor.set_flight_member(member)
|
||||
self.own_laser_code_info.set_flight_member(member)
|
||||
if self.member_selector.value() != 0:
|
||||
self.loadout_selector.setDisabled(
|
||||
self.flight.use_same_loadout_for_all_members
|
||||
|
||||
56
qt_ui/windows/mission/flight/payload/ownlasercodeinfo.py
Normal file
56
qt_ui/windows/mission/flight/payload/ownlasercodeinfo.py
Normal file
@ -0,0 +1,56 @@
|
||||
from PySide6.QtCore import Signal
|
||||
from PySide6.QtWidgets import QWidget, QHBoxLayout, QLabel, QPushButton
|
||||
|
||||
from game import Game
|
||||
from game.ato.flightmember import FlightMember
|
||||
|
||||
|
||||
class OwnLaserCodeInfo(QHBoxLayout):
|
||||
assigned_laser_code_changed = Signal()
|
||||
|
||||
def __init__(
|
||||
self, game: Game, flight_member: FlightMember, parent: QWidget | None = None
|
||||
) -> None:
|
||||
super().__init__(parent)
|
||||
self.game = game
|
||||
self.flight_member = flight_member
|
||||
|
||||
self.addWidget(QLabel("Assigned laser code:"))
|
||||
self.addStretch()
|
||||
|
||||
self.code_display = QLabel()
|
||||
self.addWidget(self.code_display)
|
||||
|
||||
self.alloc_dealloc_button = QPushButton()
|
||||
self.alloc_dealloc_button.clicked.connect(self.on_alloc_dealloc_clicked)
|
||||
self.addWidget(self.alloc_dealloc_button)
|
||||
|
||||
self.bind_to_selected_member()
|
||||
|
||||
def set_flight_member(self, flight_member: FlightMember) -> None:
|
||||
self.flight_member = flight_member
|
||||
self.bind_to_selected_member()
|
||||
|
||||
def bind_to_selected_member(self) -> None:
|
||||
if (code := self.flight_member.tgp_laser_code) is not None:
|
||||
self.alloc_dealloc_button.setEnabled(True)
|
||||
self.alloc_dealloc_button.setText("Release")
|
||||
self.code_display.setText(f"{code}")
|
||||
elif self.flight_member.is_player:
|
||||
self.alloc_dealloc_button.setText("Assign")
|
||||
self.alloc_dealloc_button.setEnabled(True)
|
||||
self.code_display.setText("Not assigned")
|
||||
else:
|
||||
self.alloc_dealloc_button.setText("Assign")
|
||||
self.alloc_dealloc_button.setEnabled(False)
|
||||
self.code_display.setText("AI does not use laser codes")
|
||||
|
||||
def on_alloc_dealloc_clicked(self) -> None:
|
||||
if self.flight_member.tgp_laser_code is not None:
|
||||
self.flight_member.release_tgp_laser_code()
|
||||
else:
|
||||
self.flight_member.assign_tgp_laser_code(
|
||||
self.game.laser_code_registry.alloc_laser_code()
|
||||
)
|
||||
self.bind_to_selected_member()
|
||||
self.assigned_laser_code_changed.emit()
|
||||
Loading…
x
Reference in New Issue
Block a user