55import json
66import sys
77from abc import ABCMeta
8+ from functools import lru_cache
89from os import path
910from typing import Any , Callable , Dict , List , Optional , Sequence , Set , Tuple , cast
1011
@@ -78,17 +79,23 @@ class EnabledSaveType(enum.Enum):
7879class Game (enum .Flag ):
7980 BL2 = enum .auto ()
8081 TPS = enum .auto ()
82+ AoDK = enum .auto ()
8183
8284 @staticmethod
85+ @lru_cache (None )
8386 def GetCurrent () -> Game :
8487 """ Gets the current game. """
88+ lower_exe_names : Dict [str , Game ] = {
89+ "borderlands2.exe" : Game .BL2 ,
90+ "borderlandspresequel.exe" : Game .TPS ,
91+ "tinytina.exe" : Game .AoDK ,
92+ }
93+
8594 exe = path .basename (sys .executable )
8695 exe_lower = exe .lower ()
87- if exe_lower == "borderlands2.exe" :
88- return Game .BL2
89- elif exe_lower == "borderlandspresequel.exe" :
90- return Game .TPS
91- raise RuntimeError (f"Unknown executable name '{ exe } '!" )
96+ if exe_lower not in lower_exe_names :
97+ raise RuntimeError (f"Unknown executable name '{ exe } '!" )
98+ return lower_exe_names [exe_lower ]
9299
93100
94101class _ModMeta (ABCMeta ):
@@ -172,7 +179,7 @@ class SDKMod(metaclass=_ModMeta):
172179 Description : str = ""
173180 Version : str = "Unknown Version"
174181
175- SupportedGames : Game = Game .BL2 | Game .TPS
182+ SupportedGames : Game = Game .BL2 | Game .TPS | Game . AoDK
176183 Types : ModTypes = ModTypes .NONE
177184 Priority : int = ModPriorities .Standard
178185 SaveEnabledState : EnabledSaveType = EnabledSaveType .NotSaved
@@ -228,7 +235,6 @@ def Enable(self) -> None:
228235 """
229236 HookManager .RegisterHooks (self )
230237 NetworkManager .RegisterNetworkMethods (self )
231- pass
232238
233239 def Disable (self ) -> None :
234240 """
@@ -237,7 +243,6 @@ def Disable(self) -> None:
237243 """
238244 HookManager .RemoveHooks (self )
239245 NetworkManager .UnregisterNetworkMethods (self )
240- pass
241246
242247 def SettingsInputPressed (self , action : str ) -> None :
243248 """
0 commit comments