File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66
77import mobase
88
9- from ..basic_features import BasicModDataChecker , GlobPatterns
109from ..basic_features .basic_save_game_info import BasicGameSaveGame
1110from ..basic_game import BasicGame
1211from ..steam_utils import find_steam_path
1312
1413
15- class SlayTheSpire2ModDataChecker (BasicModDataChecker ):
16- def __init__ (self ):
17- super ().__init__ (
18- GlobPatterns (
19- valid = [
20- "*.pck" ,
21- "*.dll" ,
22- "*.json" ,
23- ],
24- move = {
25- "*/*.pck" : "" ,
26- "*/*.dll" : "" ,
27- "*/*.json" : "" ,
28- },
29- )
14+ class SlayTheSpire2ModDataChecker (mobase .ModDataChecker ):
15+ _VALID_EXTENSIONS = (".pck" , ".dll" , ".json" )
16+
17+ def _has_mod_files (self , filetree : mobase .FileTreeEntry ) -> bool :
18+ return any (
19+ entry .isFile () and entry .name ().endswith (self ._VALID_EXTENSIONS )
20+ for entry in filetree
3021 )
3122
23+ def dataLooksValid (self , filetree : mobase .IFileTree ) -> mobase .ModDataChecker .CheckReturn :
24+ if self ._has_mod_files (filetree ):
25+ return mobase .ModDataChecker .VALID
26+ if any (entry .isDir () and self ._has_mod_files (entry ) for entry in filetree ):
27+ return mobase .ModDataChecker .FIXABLE
28+ return mobase .ModDataChecker .INVALID
29+
30+ def fix (self , filetree : mobase .IFileTree ) -> mobase .IFileTree :
31+ for entry in list (filetree ):
32+ if entry .isDir () and self ._has_mod_files (entry ):
33+ filetree .merge (entry )
34+ entry .detach ()
35+ return filetree
36+
3237
3338class SlayTheSpire2Game (BasicGame ):
3439 Name = "Slay the Spire 2 Support Plugin"
You can’t perform that action at this time.
0 commit comments