aboutsummaryrefslogtreecommitdiff
path: root/libs/basic_games/games/game_msfs2020.py
blob: d0c91ba5dfbba972ab9c86ea996a9b9e919942c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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"))