From cd9806f4066289a140d68764f111d7d0cc950d8e Mon Sep 17 00:00:00 2001 From: Homer Simpleton Date: Sun, 1 Aug 2021 19:58:08 -0400 Subject: [PATCH 1/3] Add support for Daggerfall Unity. --- games/game_daggerfallunity.py | 51 +++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 games/game_daggerfallunity.py diff --git a/games/game_daggerfallunity.py b/games/game_daggerfallunity.py new file mode 100644 index 0000000..a8bfc9a --- /dev/null +++ b/games/game_daggerfallunity.py @@ -0,0 +1,51 @@ +from ..basic_game import BasicGame + +import mobase + +class DaggerfallUnityModDataChecker(mobase.ModDataChecker): + def __init__(self): + super().__init__() + self.validDirNames = [ + "biogs", + "docs", + "factions", + "fonts", + "mods", + "questpacks", + "quests", + "soundfonts", + "spellicons", + "tables", + "text", + "textures", + "worlddata", + "aa" + ] + + def dataLooksValid( + self, tree: mobase.IFileTree + ) -> mobase.ModDataChecker.CheckReturn: + for entry in tree: + 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._featureMap[mobase.ModDataChecker] = 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" + From ed1bf7aefc10b8a6017c5ee15c75137efc382d5c Mon Sep 17 00:00:00 2001 From: Homer Simpleton Date: Sun, 1 Aug 2021 21:22:55 -0400 Subject: [PATCH 2/3] add "sound" to the list of valid subdirs. --- games/game_daggerfallunity.py | 1 + 1 file changed, 1 insertion(+) diff --git a/games/game_daggerfallunity.py b/games/game_daggerfallunity.py index a8bfc9a..afb5f79 100644 --- a/games/game_daggerfallunity.py +++ b/games/game_daggerfallunity.py @@ -13,6 +13,7 @@ class DaggerfallUnityModDataChecker(mobase.ModDataChecker): "mods", "questpacks", "quests", + "sound", "soundfonts", "spellicons", "tables", From d4fc47e2f46f7def4e5b3a05834ef4d31e4329b6 Mon Sep 17 00:00:00 2001 From: Homer Simpleton Date: Mon, 2 Aug 2021 14:30:41 -0400 Subject: [PATCH 3/3] Fix linter errors. --- games/game_daggerfallunity.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/games/game_daggerfallunity.py b/games/game_daggerfallunity.py index afb5f79..dc8f9cc 100644 --- a/games/game_daggerfallunity.py +++ b/games/game_daggerfallunity.py @@ -2,6 +2,7 @@ from ..basic_game import BasicGame import mobase + class DaggerfallUnityModDataChecker(mobase.ModDataChecker): def __init__(self): super().__init__() @@ -20,7 +21,7 @@ class DaggerfallUnityModDataChecker(mobase.ModDataChecker): "text", "textures", "worlddata", - "aa" + "aa", ] def dataLooksValid( @@ -36,9 +37,9 @@ class DaggerfallUnityModDataChecker(mobase.ModDataChecker): class DaggerfallUnityGame(BasicGame): def init(self, organizer: mobase.IOrganizer) -> bool: - super().init(organizer) - self._featureMap[mobase.ModDataChecker] = DaggerfallUnityModDataChecker() - return True + super().init(organizer) + self._featureMap[mobase.ModDataChecker] = DaggerfallUnityModDataChecker() + return True Name = "Daggerfall Unity Support Plugin" Author = "HomerSimpleton" @@ -49,4 +50,3 @@ class DaggerfallUnityGame(BasicGame): GameBinary = "DaggerfallUnity.exe" GameLauncher = "DaggerfallUnity.exe" GameDataPath = "%GAME_PATH%/DaggerfallUnity_Data/StreamingAssets" -