mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Refactor payloads folder logic
This commit is contained in:
parent
63e65744f1
commit
da75f41b01
@ -80,6 +80,13 @@ def settings_dir() -> Path:
|
|||||||
return base_path() / "Retribution" / "Settings"
|
return base_path() / "Retribution" / "Settings"
|
||||||
|
|
||||||
|
|
||||||
|
def payloads_dir(backup: bool = False) -> Path:
|
||||||
|
payloads = base_path() / "MissionEditor" / "UnitPayloads"
|
||||||
|
if backup:
|
||||||
|
return payloads / "_retribution_backups"
|
||||||
|
return payloads
|
||||||
|
|
||||||
|
|
||||||
def save_dir() -> Path:
|
def save_dir() -> Path:
|
||||||
return base_path() / "Retribution" / "Saves"
|
return base_path() / "Retribution" / "Saves"
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from pathlib import Path
|
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
from typing import Dict, Union
|
from typing import Dict, Union
|
||||||
|
|
||||||
@ -20,12 +19,9 @@ from dcs import lua
|
|||||||
from game import Game
|
from game import Game
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
from game.data.weapons import Pylon
|
from game.data.weapons import Pylon
|
||||||
from game.persistency import base_path
|
from game.persistency import payloads_dir
|
||||||
from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor
|
from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor
|
||||||
|
|
||||||
PAYLOADS_FOLDER = Path()
|
|
||||||
BACKUP_FOLDER = Path()
|
|
||||||
|
|
||||||
|
|
||||||
class QLoadoutEditor(QGroupBox):
|
class QLoadoutEditor(QGroupBox):
|
||||||
saved = Signal(str)
|
saved = Signal(str)
|
||||||
@ -37,11 +33,6 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
self.setCheckable(True)
|
self.setCheckable(True)
|
||||||
self.setChecked(flight.loadout.is_custom)
|
self.setChecked(flight.loadout.is_custom)
|
||||||
|
|
||||||
global PAYLOADS_FOLDER
|
|
||||||
PAYLOADS_FOLDER = base_path() / "MissionEditor" / "UnitPayloads"
|
|
||||||
global BACKUP_FOLDER
|
|
||||||
BACKUP_FOLDER = PAYLOADS_FOLDER / "_retribution_backups"
|
|
||||||
|
|
||||||
vbox = QVBoxLayout(self)
|
vbox = QVBoxLayout(self)
|
||||||
layout = QGridLayout(self)
|
layout = QGridLayout(self)
|
||||||
|
|
||||||
@ -74,12 +65,13 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
|
|
||||||
def _backup_payloads(self) -> None:
|
def _backup_payloads(self) -> None:
|
||||||
ac_id = self.flight.unit_type.dcs_unit_type.id
|
ac_id = self.flight.unit_type.dcs_unit_type.id
|
||||||
payload_file = PAYLOADS_FOLDER / f"{ac_id}.lua"
|
payload_file = payloads_dir() / f"{ac_id}.lua"
|
||||||
if not payload_file.exists():
|
if not payload_file.exists():
|
||||||
return
|
return
|
||||||
backup_file = BACKUP_FOLDER / f"{ac_id}.lua"
|
backup_folder = payloads_dir(backup=True)
|
||||||
if not BACKUP_FOLDER.exists():
|
backup_file = backup_folder / f"{ac_id}.lua"
|
||||||
BACKUP_FOLDER.mkdir()
|
if not backup_folder.exists():
|
||||||
|
backup_folder.mkdir()
|
||||||
copyfile(payload_file, backup_file)
|
copyfile(payload_file, backup_file)
|
||||||
QMessageBox.information(
|
QMessageBox.information(
|
||||||
QWidget(),
|
QWidget(),
|
||||||
@ -95,7 +87,7 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
payload_name = payload_name_input.textValue()
|
payload_name = payload_name_input.textValue()
|
||||||
ac_type = self.flight.unit_type.dcs_unit_type
|
ac_type = self.flight.unit_type.dcs_unit_type
|
||||||
ac_id = ac_type.id
|
ac_id = ac_type.id
|
||||||
payload_file = base_path() / "MissionEditor" / "UnitPayloads" / f"{ac_id}.lua"
|
payload_file = payloads_dir() / f"{ac_id}.lua"
|
||||||
ac_type.payloads[payload_name] = DcsPayload.from_flight(
|
ac_type.payloads[payload_name] = DcsPayload.from_flight(
|
||||||
self.flight, payload_name
|
self.flight, payload_name
|
||||||
).to_dict()
|
).to_dict()
|
||||||
@ -137,7 +129,7 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def _create_backup_if_needed(self, ac_id):
|
def _create_backup_if_needed(self, ac_id):
|
||||||
backup_file = BACKUP_FOLDER / f"{ac_id}.lua"
|
backup_file = payloads_dir(backup=True) / f"{ac_id}.lua"
|
||||||
if not backup_file.exists():
|
if not backup_file.exists():
|
||||||
self._backup_payloads()
|
self._backup_payloads()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user