aboutsummaryrefslogtreecommitdiff
path: root/libs/basic_games/games/game_msfs2020.py
diff options
context:
space:
mode:
Diffstat (limited to 'libs/basic_games/games/game_msfs2020.py')
-rw-r--r--libs/basic_games/games/game_msfs2020.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/libs/basic_games/games/game_msfs2020.py b/libs/basic_games/games/game_msfs2020.py
new file mode 100644
index 0000000..d0c91ba
--- /dev/null
+++ b/libs/basic_games/games/game_msfs2020.py
@@ -0,0 +1,34 @@
+import os
+import re
+
+from PyQt6.QtCore import QDir
+
+from ..basic_game import BasicGame
+
+
+class MSFS2020Game(BasicGame):
+ Name = "Microsoft Flight Simulator 2020 Support Plugin"
+ Author = "Deorder"
+ Version = "0.0.1"
+
+ GameName = "Microsoft Flight Simulator 2020"
+ GameShortName = "msfs2020"
+ GameBinary = r"FlightSimulator.exe"
+ GameSteamId = [1250410]
+ GameSupportURL = (
+ r"https://github.com/ModOrganizer2/modorganizer-basic_games/wiki/"
+ "Game:-Microsoft-Flight-Simulator-(2020)"
+ )
+
+ def dataDirectory(self) -> QDir:
+ # Find and use package path specified in Asobo engine options
+ AppDataPath = os.path.expandvars(r"%APPDATA%\Microsoft Flight Simulator")
+ UserCfgPath = os.path.join(AppDataPath, "UserCfg.opt")
+ InstalledPackagesPathPattern = re.compile(
+ r'InstalledPackagesPath\s*=\s*"(.*)"', re.IGNORECASE
+ )
+ with open(UserCfgPath, newline="") as f:
+ for _, line in enumerate(f):
+ for match in re.finditer(InstalledPackagesPathPattern, line):
+ return QDir(os.path.join(match.group(), "Community"))
+ return QDir(os.path.join(AppDataPath, "Packages", "Community"))