mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Get rid of all pydcs' PayloadDirectories usages
This commit is contained in:
parent
57319bd78b
commit
0e5df2fd21
@ -1,8 +1,7 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from shutil import copyfile
|
||||||
from typing import Dict, Union
|
from typing import Dict, Union
|
||||||
|
|
||||||
import dcs.lua
|
|
||||||
import dcs.payloads
|
|
||||||
from PySide2.QtCore import Signal
|
from PySide2.QtCore import Signal
|
||||||
from PySide2.QtWidgets import (
|
from PySide2.QtWidgets import (
|
||||||
QGridLayout,
|
QGridLayout,
|
||||||
@ -13,6 +12,7 @@ from PySide2.QtWidgets import (
|
|||||||
QPushButton,
|
QPushButton,
|
||||||
QInputDialog,
|
QInputDialog,
|
||||||
)
|
)
|
||||||
|
from dcs import lua
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
@ -20,7 +20,8 @@ from game.data.weapons import Pylon
|
|||||||
from game.persistency import base_path
|
from game.persistency import base_path
|
||||||
from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor
|
from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor
|
||||||
|
|
||||||
BACKUP_FOLDER = dcs.payloads.PayloadDirectories.user() / "_retribution_backups"
|
PAYLOADS_FOLDER = ""
|
||||||
|
BACKUP_FOLDER = ""
|
||||||
|
|
||||||
|
|
||||||
class QLoadoutEditor(QGroupBox):
|
class QLoadoutEditor(QGroupBox):
|
||||||
@ -33,6 +34,11 @@ 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)
|
||||||
|
|
||||||
@ -65,15 +71,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 = dcs.payloads.PayloadDirectories.user() / f"{ac_id}.lua"
|
payload_file = PAYLOADS_FOLDER / 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_file = BACKUP_FOLDER / f"{ac_id}.lua"
|
||||||
if not BACKUP_FOLDER.exists():
|
if not BACKUP_FOLDER.exists():
|
||||||
BACKUP_FOLDER.mkdir()
|
BACKUP_FOLDER.mkdir()
|
||||||
with backup_file.open("w", encoding="utf-8") as f:
|
copyfile(payload_file, backup_file)
|
||||||
with payload_file.open("r", encoding="utf-8") as g:
|
|
||||||
f.write(g.read())
|
|
||||||
|
|
||||||
def _save_payload(self) -> None:
|
def _save_payload(self) -> None:
|
||||||
payload_name_input = self._create_input_dialog()
|
payload_name_input = self._create_input_dialog()
|
||||||
@ -89,7 +93,7 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
if payload_file.exists():
|
if payload_file.exists():
|
||||||
self._create_backup_if_needed(ac_id)
|
self._create_backup_if_needed(ac_id)
|
||||||
with payload_file.open("r", encoding="utf-8") as f:
|
with payload_file.open("r", encoding="utf-8") as f:
|
||||||
payloads = dcs.lua.loads(f.read())
|
payloads = lua.loads(f.read())
|
||||||
if payloads:
|
if payloads:
|
||||||
pdict = payloads["unitPayloads"]["payloads"]
|
pdict = payloads["unitPayloads"]["payloads"]
|
||||||
next_key = len(pdict) + 1
|
next_key = len(pdict) + 1
|
||||||
@ -101,7 +105,7 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
).to_dict()
|
).to_dict()
|
||||||
with payload_file.open("w", encoding="utf-8") as f:
|
with payload_file.open("w", encoding="utf-8") as f:
|
||||||
f.write("local unitPayloads = ")
|
f.write("local unitPayloads = ")
|
||||||
f.write(dcs.lua.dumps(payloads["unitPayloads"], indent=1))
|
f.write(lua.dumps(payloads["unitPayloads"], indent=1))
|
||||||
f.write("\nreturn unitPayloads")
|
f.write("\nreturn unitPayloads")
|
||||||
else:
|
else:
|
||||||
with payload_file.open("w", encoding="utf-8") as f:
|
with payload_file.open("w", encoding="utf-8") as f:
|
||||||
@ -113,7 +117,7 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
"unitType": f"{self.flight.unit_type.dcs_unit_type.id}",
|
"unitType": f"{self.flight.unit_type.dcs_unit_type.id}",
|
||||||
}
|
}
|
||||||
f.write("local unitPayloads = ")
|
f.write("local unitPayloads = ")
|
||||||
f.write(dcs.lua.dumps(payloads, indent=1))
|
f.write(lua.dumps(payloads, indent=1))
|
||||||
f.write("\nreturn unitPayloads")
|
f.write("\nreturn unitPayloads")
|
||||||
self.saved.emit(payload_name)
|
self.saved.emit(payload_name)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user