@@ -50,24 +50,25 @@ def walkContent(self, path: str, entry: mobase.FileTreeEntry):
5050 if entry .isFile ():
5151 match entry .suffix ().casefold ():
5252 case "texture" :
53- self .content .append (Content .TEXTURE )
53+ self .contents .append (Content .TEXTURE )
5454 case "model" :
55- self .content .append (Content .MESH )
55+ self .contents .append (Content .MESH )
5656 case "lua" :
57- self .content .append (Content .SCRIPT )
57+ self .contents .append (Content .SCRIPT )
5858 case "stream" :
59- self .content .append (Content .SOUND )
59+ self .contents .append (Content .SOUND )
6060 case "txt" :
61- self .content .append (Content .STRING )
61+ self .contents .append (Content .STRING )
6262 case "json" :
63- self .content .append (Content .CONFIG )
63+ self .contents .append (Content .CONFIG )
6464 case _:
6565 pass
6666 return mobase .IFileTree .WalkReturn .CONTINUE
6767
6868 def getContentsFor (self , filetree : mobase .IFileTree ) -> list [int ]:
69+ self .contents : list [int ] = []
6970 filetree .walk (self .walkContent , "/" )
70- return list (self .content )
71+ return list (self .contents )
7172
7273
7374class ModDetectionCandidate (TypedDict ):
@@ -179,6 +180,10 @@ def dataLooksValid(
179180 return mobase .ModDataChecker .VALID
180181 if filetree .exists ("WSOCK32.dll" , mobase .IFileTree .FILE ):
181182 return mobase .ModDataChecker .VALID
183+ if filetree .exists ("DINPUT8.dll" , mobase .IFileTree .FILE ):
184+ return mobase .ModDataChecker .VALID
185+ if filetree .exists ("PDTHModOverrides.dll" , mobase .IFileTree .FILE ):
186+ return mobase .ModDataChecker .VALID
182187 return mobase .ModDataChecker .FIXABLE
183188
184189 def moveTreeContent (
@@ -356,6 +361,7 @@ def fix(self, filetree: mobase.IFileTree) -> mobase.IFileTree | None:
356361class Payday1Game (BasicGame ):
357362 Name = "Payday 1 Support Plugin"
358363 Author = "ModWorkshop"
364+ CategorySource = "modworkshop"
359365 Version = "1"
360366 GameName = "Payday: The Heist"
361367 GameShortName = "pdth"
0 commit comments