aboutsummaryrefslogtreecommitdiff
path: root/libs/basic_games/games/game_daggerfallunity.py
blob: 6c170f1a36dac6e1170e99c4e551b728213f7e1a (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import mobase

from ..basic_game import BasicGame


class DaggerfallUnityModDataChecker(mobase.ModDataChecker):
    def __init__(self):
        super().__init__()
        self.validDirNames = [
            "biogs",
            "docs",
            "factions",
            "fonts",
            "mods",
            "questpacks",
            "quests",
            "sound",
            "soundfonts",
            "spellicons",
            "tables",
            "text",
            "textures",
            "worlddata",
            "aa",
        ]

    def dataLooksValid(
        self, filetree: mobase.IFileTree
    ) -> mobase.ModDataChecker.CheckReturn:
        for entry in filetree:
            if not entry.isDir():
                continue
            if entry.name().casefold() in self.validDirNames:
                return mobase.ModDataChecker.VALID
        return mobase.ModDataChecker.INVALID


class DaggerfallUnityGame(BasicGame):
    def init(self, organizer: mobase.IOrganizer) -> bool:
        super().init(organizer)
        self._register_feature(DaggerfallUnityModDataChecker())
        return True

    Name = "Daggerfall Unity Support Plugin"
    Author = "HomerSimpleton"
    Version = "1.0.0"

    GameName = "Daggerfall Unity"
    GameShortName = "daggerfallunity"
    GameBinary = "DaggerfallUnity.exe"
    GameLauncher = "DaggerfallUnity.exe"
    GameDataPath = "%GAME_PATH%/DaggerfallUnity_Data/StreamingAssets"
    GameSupportURL = (
        r"https://github.com/ModOrganizer2/modorganizer-basic_games/wiki/"
        "Game:-Daggerfall-Unity"
    )